https://wiki.thedarkmod.com/api.php?action=feedcontributions&user=Datiswous&feedformat=atomThe DarkMod Wiki - User contributions [en]2024-03-29T13:04:50ZUser contributionsMediaWiki 1.39.5https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&diff=31115Creating Automaps2024-03-04T10:23:46Z<p>Datiswous: /* Additions */ fixed link to Doom 3 iddevnet gui's page</p>
<hr />
<div>[[Category:Editing]]<br />
== Introduction ==<br />
<br />
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.<br />
<br />
On the other hand such thing can also add a lot to immersion. The player don't know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.<br />
<br />
The following article now describes how to set up such an item.<br />
<br />
== Preparations ==<br />
<br />
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have<br />
<br />
- one picture containing the parts of the map the player already know at mission start (called ''startmap'' furthermore)<br />
- several pictures of the rooms he can discover later on<br />
<br />
It is your choice if you want to put the ''startmap'' on the ''map_of_.tga'' file served with the '''startmap''' package or keep it seperate. However, for the tutorial let's just assume you have choosen the first possibility.<br />
<br />
Furthermore you should get familiar with the zone system as it is needed here.<br />
<br />
== Setting up the gui ==<br />
<br />
The gui looks like this:<br />
<br />
windowDef Desktop<br />
{<br />
rect 0,0,640,480<br />
nocursor 1<br />
<br />
windowDef background_map<br />
{<br />
rect 64,48, 512, 394<br />
background "guis/automap/map_of"<br />
visible 1<br />
}<br />
...<br />
// Required include for inventory map<br />
#include "guis/readables/inventory_map.guicode" <br />
}<br />
<br />
In our case ''guis/automap/map_of'' is the file that holds the startmap. Where the dots are you have to add the following code for '''each''' area visible on the map.<br />
windowDef ''nameOfArea''<br />
{<br />
rect 100,100,380,300<br />
background "''path_to_imagefile''"<br />
visible "gui::gui_XYZ"<br />
}<br />
<br />
- ''nameOFArea'' can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable<br />
<br />
- ''path_to_imagefile'' holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent<br />
<br />
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn't working this is the first place to check<br />
<br />
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.<br />
<br />
== The entity Definition ==<br />
<br />
entityDef atdm:automap<br />
{<br />
"inherit" "atdm:map_base"<br />
"editor_usage" "game map of terrain for player" // THIS ONLY SHOWS IN ENTITY INSPECTOR<br />
"inv_name" "Map" // SHOWS IN PLAYER'S INVENTORY.<br />
"inv_icon" "guis/assets/game_maps/map_of_icon.tga"<br />
"gui" "guis/automap/automap.gui"<br />
"scriptobject" "inventory_automap"<br />
}<br />
<br />
The important parts here are the ''gui'' spawnarg, letting it use the before mentioned gui, and the ''scriptobject'' spawnarg.<br />
<br />
== The script object ==<br />
<br />
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]<br />
<br />
The main difference to a ''normal'' map is the updateLoop, which gets executed every few milliseconds.<br />
<br />
void inventory_automap::updateLoop()<br />
{<br />
string loc;<br />
while(1)<br />
{<br />
loc=$player1.getLocation().getName();<br />
loc="gui_"+loc;<br />
setKey(loc,1);<br />
sys.wait(0.1);<br />
}<br />
}<br />
<br />
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.<br />
<br />
Example: The player is in a location which contains an info_location entity named ''kitchen''. This value gets read out and passed to the variable '''loc'''. Than the ''gui_'' string is added on front, so '''loc''' is now ''gui_kitchen''. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn't hurt either.<br />
<br />
== Conclusion ==<br />
<br />
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.<br />
<br />
== Additions ==<br />
<br />
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.<br />
<br />
You can setup Objectives where the player has to explore a certain percentage of the map (like in Mission #13 in Thief2: The Metal Age). This requires to set the percentage values you want each location to have on the respective location entities. You can than read them out in the update loop. To avoid the same values to be added up several times you would also need to keep track of which locations have already been counted. A global scripting variable keeps track of the percentage already discovered by the player and sets the respective mission objective to successful once it reaches the desired amount.<br />
<br />
You can have maps that mark areas where you already have been and were you currently are. This requires altering the gui, too, as you have to specify the colors to be used for hilighting depending on whether the player is still in an area or not.<br />
<br />
Similar to the images you can have text added to the map, like little notes that become visible once a condition is met (the player reads a note or similar). See [https://iddevnet.dhewm3.org/doom3/guis.html here] for more info on how to setup the gui.<br />
<br />
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]<br />
<br />
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)<br />
<br />
{{GUI|sort=Automaps}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Console_Useful_Controls&diff=30995Console Useful Controls2024-01-30T13:13:09Z<p>Datiswous: /* Notes */ Add link to Bindings and User Settings</p>
<hr />
<div>==Introduction==<br />
<br />
This is a list of common console commands and cvars that are of use to Dark Mod mappers and developers for testing etc. It is in order of key words and meaning. The console can be called by hitting "{{key|CTRL}}+{{key|ALT}}+{{key|~}}" ("{{key|CTRL}}+{{key|ALT}}+{{key|Key left of number 1}}" in general, e.g. "{{key|CTRL}}+{{key|ALT}}+{{key|^}}" on a German keyboard).<br />
<br />
This will open the console to cover the upper 50% of the screen. To cover more (80%), also hold down the {{key|SHIFT}} key.<br />
<br />
==Notes==<br />
<br />
* Where a cvar or command is followed by a 1 (parameter) it can be taken that it is enabled by 1 and disabled by 0 unless otherwise stated. '''N''' indicates a range of values.<br />
* The current value of a cvar can be shown by entering its name without a value.<br />
* Parameters can be toggled between values by preceding the control with 'toggle' and following it with eg, 1 0. Example : toggle r_showtris 3 0<br />
* Controls can be bound to keys to be used in-game, including the toggle command, eg, <tt>bind "v" "toggle r_showportals 1 0"</tt> . See also [[Bindings and User Settings]].<br />
* Many controls can be included in the file '''Doomconfig.cfg''' in the darkmod folder so they are automatically effective.<br />
* Some controls are disabled on exit from a map; others are permanent until manually changed.<br />
<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|noclip<br />
|Player flies through everything.<br />
<br />
|-<br />
!align=left|notarget<br />
|AI will not know the player is there.<br />
<br />
|-<br />
!align=left|invisible<br />
|AI will not see the player, but can still hear him.<br />
<br />
|-<br />
!align=left|inaudible<br />
|AI will not hear the player, but can still see him.<br />
<br />
|-<br />
!align=left|god<br />
|Player cannot be harmed.<br />
<br />
|-<br />
!align=left|killmonsters<br />
|Removes all AI from a map.<br />
<br />
|-<br />
!align=left|tdm_open_doors<br />
|Opens all doors on map: even locked and unpickable ones!<br />
<br />
|-<br />
!align=left|tdm_close_doors<br />
|Closes all doors on map<br />
<br />
|-<br />
!align=left|tdm_show_loot<br />
|Shows loot items through walls for a short time.<br />
<br />
|-<br />
!align=left|tdm_show_keys<br />
|Shows keys through walls for a short time.<br />
<br />
|-<br />
!align=left|g_dragentity 1<br />
|Aim at entity and hold attack control then pull back.<br />
<br />
|-<br />
!align=left|pm_noclipspeed N<br />
|Changes the speed of player noclip movement.<br />
<br />
|-<br />
!align=left|g_fov N<br />
|N=angle of field of view, eg, '''<code>g_fov 30</code>''' = zoom in to restrict field of view to 30 degrees. Default = 90.<br />
<br />
|-<br />
!align=left|g_showEntityInfo 1<br />
|Show info about near entities (as box with classname).<br />
<br />
|-<br />
!align=left|com_showfps 1<br />
|Show fps to test performance.<br />
<br />
|-<br />
!align=left|com_numQuickSaves N<br />
|How many quicksaves to retain. Reducing the number won't delete any that you already have.<br />
<br />
|-<br />
!align=left|g_frametime 1<br />
|Timing info for each frame, see [[Profiling#g_frametime|Profiling]].<br />
<br />
|-<br />
!align=left|r_showPrimitives 1<br />
|Show info about number of [[drawcalls]] and tris/shadow tris rendered.<br />
<br />
|-<br />
!align=left|con_noprint 0<br />
|Prints console messages to the screen as an overlay.<br />
<br />
|-<br />
!align=left|r_showSurfaceInfo 1<br />
|Show info about closest rendered surface under crosshair: model name, index of surface in model, material name<br />
<br />
|-<br />
!align=left|r_showskel 1<br />
|Shows skeleton in-game with joint names.<br />
<br />
|-<br />
!align=left|g_showCollisionModels 1<br />
|Shows collision models. Use '''g_maxShowDistance N''' to increase the distance where they are shown to.<br />
<br />
|-<br />
!align=left|r_showtris N<br />
|(1) Shows triangles being rendered directly.<br>(2) Shows overdrawn tri's.<br>(3) Shows all tri's in scene, direct and indirect.<br />
<br />
|-<br />
!align=left|r_showportals N<br />
|(1) Shows all portals in scene (red=closed, green=open). If your portals don't show up they are most likely not sealing. Yellow indicates a portal that is effectively closed but which connects to a visleaf visible through another portal.<br />
(2) Also prints area numbers, mainly where player's eye is right now.<br />
<br />
|-<br />
!align=left|r_showlightcount 1<br />
|Using colours, shows the number of lights hitting a surface, black = 0, red = 1, blue = 2... etc.<br />
<br />
|-<br />
!align=left|seta tdm_showsprop 1<br />
|Shows the volume of sounds heard by AI. <br />
<br />
|-<br />
!align=left|tdm_ai_showbark 1<br />
|Gives the def name (not the soundshader) of barks used by AI.<br />
<br />
|-<br />
!align=left|tdm_ai_showalert 1<br />
|Shows the AI's current alert total and alert state.<br />
<br />
|-<br />
!align=left|tdm_ai_showdest 1<br />
|Shows the AI's current path destination.<br />
<br />
|-<br />
!align=left|bind "f1" "_impulse27" <br />
|Pressing F1 shows the AAS regions.<br />
<br />
|-<br />
!align=left|timescale 2<br />
|Double speed, good for testing pathing, 1 = normal speed, 2 = double, 0.5 = half speed. To have an effect, the "Uncapped FPS" setting must be Off.<br />
<br />
|-<br />
!align=left|g_timeModifier 2<br />
|Same as timescale 2 but somewhat different<br />
<br />
|-<br />
!align=left|g_stopTime 1<br />
|Stops gameplay time, but player can move normally.<br />
<br />
|-<br />
!align=left|teleport "entity name"<br />
|teleports the player to the named entity<br />
<br />
|-<br />
!align=left|teleportArea N<br />
|teleports the player into the area with number N<br />
<br />
|-<br />
!align=left|getviewpos<br />
|get player's position and orientation [[Reporting_Problem#Coordinates|coordinates]]<br />
<br />
|-<br />
!align=left|setviewpos X Y Z [P Y R]<br />
|teleports the player to the coordinates and optionally sets camera orientation.<br />
<br />
|}<br />
<br />
== Spawning entities ==<br />
<br />
Spawns entity in front of the player. Look up if entity gets spawned under the floor. <br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_blackjack<br />
|Spawns blackjack.<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_shortsword<br />
|Spawns a sword.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead<br />
|Spawns one arrow.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead inv_ammo_amount 50<br />
|Spawns 50 arrows (one entity with 50 ammo). Similar technique can be used for other ammo types.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_firearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_gasarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_mossarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_noisemaker<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_ropearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_waterarrow<br />
|<br />
<br />
|}<br />
<br />
With the TDM console you can press tab after typing something to autocomplete. For example <tt>spawn atdm:<tab></tt> will cycle through the various spawnables. You can also add additional spawnargs using the following syntax: <tt>spawn classname [key value] [key value] ...</tt>.<br />
<br />
== Diagnostic information ==<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|listEntities<br />
|lists all current entities followed by a count.<br />
<br />
|-<br />
!align=left|listEntities GLOB<br />
|lists all alive entities whose names match given glob/wildcard (e.g. use asterisks like <tt>*func_static*</tt> to search for substring).<br />
<br />
|-<br />
!align=left|countEntities<br />
|displays a count of entities by class. ''TDM 2.03+''<br />
<br />
|-<br />
!align=left|listCvars GLOB<br />
|lists all cvars matching the given glob/wildcard (no argument = lists everything).<br />
<br />
|-<br />
!align=left|listCmds GLOB<br />
|lists all console commands matching the given glob/wildcard (no argument = lists everything).<br />
<br />
|-<br />
!align=left|condump [unwrap] ''filename.txt''<br />
|Writes the text content of the console to text file ''filename.txt'' (you can use any file name). If optional keyword ''unwrap'' is used, full lines from the console will be stitched together with the following line. Useful when exporting long file paths from the console, that have been broken up by its width limit. ''TDM 2.03+''<br />
<br />
|}<br />
<br />
==See Also==<br />
<br />
[[Cvars in The Dark Mod]]<br />
<br />
{{editing}}<br />
<br />
[[Category:CVARS]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Cvars_in_The_Dark_Mod&diff=30994Cvars in The Dark Mod2024-01-30T13:06:20Z<p>Datiswous: fixed external link</p>
<hr />
<div>A complete list of Doom 3 Cvars can be found here: [https://iddevnet.dhewm3.org/doom3/cvars.html iddevnet.dhewm3.org/doom3/cvars]<br />
<br />
This should be a list of Cvars that are currently available in the Dark Mod:<br />
<br />
<br />
== HUD ==<br />
* '''tdm_hud_opacity''' : Controls the opacity of the HUD elements. The range is anywhere from '''0''' to '''1''', where '''0''' makes it totally invisible and '''1''' makes it fully opaque. Defaults to 1.<br />
<br />
* '''tdm_hud_hide_lightgem''' : '''1''' = show and '''0''' = hide. This can also be set via Settings > Gameplay.<br />
<br />
* '''tdm_show_trainer_messages''' Only used for the training mission. Used to toggle the pop-up messages on and off.<br />
<br />
== Frobbing ==<br />
* '''tdm_frob_weapon_selects_weapon''' (default is "1"): Set this to 1 to have the weapons automatically selected when the respective arrows are frobbed.<br />
<br />
== Music ==<br />
<br />
* '''tdm_music_volume''' going from -40 (silence) to 0 (full volume) and changes the loudness of the ambience music in game.<br />
<br />
== Voice over ==<br />
<br />
* '''tdm_voice_player_volume''' going from 0 (silence) to 60 (full volume) and changes the loudness of the player voice. This mainly affects custom player voice texts spoken by a special speaker entity, but at the moment does not affect things like gasps, grunts, under water bubbling ec.<br />
* '''tdm_voice_from_off_volume''' going from 0 (silence) to 60 (full volume) and changes the loudness of the voice over speaker spoken by a special speaker entity.<br />
<br />
== AI ==<br />
Useful while mapping/testing/designing (at the moment, difficulty levels do not affect these values)<br />
* '''tdm_ai_sight_scale''' This is the distance that is multiplied by the lightquotient from the LAS and visual acuity of the AI scaled from 0 to 1, that indicates how far away the AI can be and see a location (default 1000.0)<br />
* '''tdm_ai_sight_thresh''' This is the minimum light per AI frame generated visual stimilus amount required for an AI to see the player or entity directly while searching (default 1.0)<br />
* '''tdm_ai_sightmin''' The distance which an AI has a 100% chance of seeing you with a fullbright light gem. Effects visibility in a complicated way (default 11.0)<br />
* '''tdm_ai_sightmax''' The distance (in meters) above which an AI will not see you even with a fullbright lightgem. Effects visibility in a complicated way (default 60.0)<br />
* '''tdm_ai_sight_mag''' Modifies the amount of visual alertthat gets added on when the sight probability check succeeds and the AI do see you (default 1.0)<br />
* '''tdm_ai_sight_prob''' Chance of AI seeing you. set to 0 to make AI blind (default 0.7 at time of this writing)<br />
* '''tdm_ai_sndvol''' set to a low negative value, e.g., -300, to make AI deaf (default 0)<br />
* '''tdm_ai_tact''' set to 0 to remove AI sense of touch (default 20)<br />
* '''tdm_ai_showtasks''' shows the current State and Tasks of the AI (see '''[[AI State]]''' and '''[[AI Task]]''').<br />
* '''tdm_ai_showalert''' shows the current alert index and alert level of the AI.<br />
* '''tdm_ai_show_enemy_visibility''' If set to 1, the visibility of the AI's enemy is drawn (red = obscured or hidden in darkness, green = the opposite)<br />
* '''tdm_ai_search_show''' If >= 1.0, this is the number of milliseconds for which a graphic showing search activity targets will be shown.<br />
* '''tdm_ai_showdoor''' Debug output during door handling. The goal standing positions for opening and closing the door will be displayed. At the side of the door where it swings towards, a test with different clipmodel positions is performed to detect whether the AI can stand at this position. A green box indicates that the AI can stand there, while a red box shows that something is in the way. Additionally, the current door handling state of the AI (e.g. MovingToFrontPos, OpeningDoor...) is shown. <br />
* '''tdm_ai_showelevator''' Debug output during operating elevators.<br />
* '''tdm_ai_showanimstate''' Shows the current anim states of the anim channels torso, legs and head, as well as their wait states.<br />
* '''tdm_ai_showbark''' Shows the name of the bark when the AI starts barking (the name in the def, not the sound shader or sound file)<br />
* '''tdm_ai_showdest''' If set to true, an arrow is drawn from every AI to its intended pathing destination.<br />
* '''tdm_ai_showgoalpos''' If set to true, the current goalpos (seekpos) is drawn in the world (!= move destination). The goalpos is used to lead the AI e.g. through door ways and around obstacles towards their pathing destination.<br />
* '''tdm_ai_showAASarea''' Shows the number and boundaries of the AAS area the AI is currently in.<br />
* '''tdm_ai_opt_interleavethinkmindist''' If nonzero, this will overwrite the minimum distance to the player where the [[Interleaved Thinking optimization]] will start. Set to 0 to switch the cvar off and use the spawnarg.<br />
* '''tdm_ai_opt_interleavethinkmaxdist''' If nonzero, this will be the distance where all AI will only think once in the number of frames specified by think_frames. Thinking frequency decreases linearly between min and max distance. Setting this to 0 will switch the cvar off and use the spawn arg value.<br />
* '''tdm_ai_opt_interleavethinkframes''' If nonzero, all AI will only think once in this number of frames if their distance to the player is larger than the max dist. Set to 1 to let all AI think every frame. Set to 0 to use the settings in the spawn arg.<br />
* '''tdm_ai_opt_interleavethinkskipPVS''' Set to 1 to skip the PVS check for interleaved thinking, so AI will also do interlaved thinking when in the player's view.<br />
<br />
<br />
<br />
<br />
<br />
* [[AI Attachment Ingame Editing]]<br />
<br />
== Attachment related ==<br />
The following attachment commands must be run while looking at the AI you want to modify, with nothing obstructing your view. I could have made people type in the full name of the AI, but I'd figure we'd see how it works when looking at them. Also, these are meant to be run after you have initially placed the attachments in the def file / spawnArgs of the AI. This step is still done the same as before.<br />
<br />
* '''tdm_attach_print:''' Print the attachment info for the given attachment on the AI you are looking at.<br />
* Usage: tdm_attach_print <attachment index><br />
<br />
* '''tdm_attach_offset''': Set the vector offset (x y z) for an attachment on an AI you are looking at.<br />
* Usage: tdm_attach_offset <attachment index> <x> <y> <z><br />
<br />
* '''tdm_attach_rot''': Set the rotation (pitch yaw roll) for an attachment on an AI you are looking at.<br />
* Usage: tdm_attach_rot <atachment index> <pitch> <yaw> <roll> (NOTE: Rotation is applied before translation, angles are relative to the joint orientation)<br />
<br />
* '''tdm_attach_joint''': Set the attachment joint name for an attachment on an AI you are looking at.<br />
Usage: tdm_attach_joint <attachment index> <string name of joint><br />
<br />
== See also ==<br />
<br />
* [[Console Useful Controls]]<br />
<br />
* [[Adding new Cvars]]<br />
<br />
Modwiki CVAR references:<br />
<br />
* https://modwiki.dhewm3.org/CVars_%28Doom_3%29<br />
<br />
{{scripting}} <br />
<br />
[[Category:SDK]]<br />
[[Category:CVARS]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Console_Useful_Controls&diff=30985Console Useful Controls2024-01-29T13:53:19Z<p>Datiswous: /* Spawning entities */</p>
<hr />
<div>==Introduction==<br />
<br />
This is a list of common console commands and cvars that are of use to Dark Mod mappers and developers for testing etc. It is in order of key words and meaning. The console can be called by hitting "{{key|CTRL}}+{{key|ALT}}+{{key|~}}" ("{{key|CTRL}}+{{key|ALT}}+{{key|Key left of number 1}}" in general, e.g. "{{key|CTRL}}+{{key|ALT}}+{{key|^}}" on a German keyboard).<br />
<br />
This will open the console to cover the upper 50% of the screen. To cover more (80%), also hold down the {{key|SHIFT}} key.<br />
<br />
==Notes==<br />
<br />
* Where a cvar or command is followed by a 1 (parameter) it can be taken that it is enabled by 1 and disabled by 0 unless otherwise stated. '''N''' indicates a range of values.<br />
* The current value of a cvar can be shown by entering its name without a value.<br />
* Parameters can be toggled between values by preceding the control with 'toggle' and following it with eg, 1 0. Example : toggle r_showtris 3 0<br />
* Controls can be bound to keys to be used in-game, including the toggle command, eg, <tt>bind "v" "toggle r_showportals 1 0"</tt><br />
* Many controls can be included in the file '''Doomconfig.cfg''' in the darkmod folder so they are automatically effective.<br />
* Some controls are disabled on exit from a map; others are permanent until manually changed.<br />
<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|noclip<br />
|Player flies through everything.<br />
<br />
|-<br />
!align=left|notarget<br />
|AI will not know the player is there.<br />
<br />
|-<br />
!align=left|invisible<br />
|AI will not see the player, but can still hear him.<br />
<br />
|-<br />
!align=left|inaudible<br />
|AI will not hear the player, but can still see him.<br />
<br />
|-<br />
!align=left|god<br />
|Player cannot be harmed.<br />
<br />
|-<br />
!align=left|killmonsters<br />
|Removes all AI from a map.<br />
<br />
|-<br />
!align=left|tdm_show_loot<br />
|Shows loot items through walls for a short time.<br />
<br />
|-<br />
!align=left|tdm_show_keys<br />
|Shows keys through walls for a short time.<br />
<br />
|-<br />
!align=left|g_dragentity 1<br />
|Aim at entity and hold attack control then pull back.<br />
<br />
|-<br />
!align=left|pm_noclipspeed N<br />
|Changes the speed of player noclip movement.<br />
<br />
|-<br />
!align=left|g_fov N<br />
|N=angle of field of view, eg, '''<code>g_fov 30</code>''' = zoom in to restrict field of view to 30 degrees. Default = 90.<br />
<br />
|-<br />
!align=left|g_showEntityInfo 1<br />
|Show info about near entities (as box with classname).<br />
<br />
|-<br />
!align=left|com_showfps 1<br />
|Show fps to test performance.<br />
<br />
|-<br />
!align=left|com_numQuickSaves N<br />
|How many quicksaves to retain. Reducing the number won't delete any that you already have.<br />
<br />
|-<br />
!align=left|g_frametime 1<br />
|Timing info for each frame, see [[Profiling#g_frametime|Profiling]].<br />
<br />
|-<br />
!align=left|r_showPrimitives 1<br />
|Show info about number of [[drawcalls]] and tris/shadow tris rendered.<br />
<br />
|-<br />
!align=left|con_noprint 0<br />
|Prints console messages to the screen as an overlay.<br />
<br />
|-<br />
!align=left|r_showskel 1<br />
|Shows skeleton in-game with joint names.<br />
<br />
|-<br />
!align=left|g_showCollisionModels 1<br />
|Shows collision models. Use '''g_maxShowDistance N''' to increase the distance where they are shown to.<br />
<br />
|-<br />
!align=left|r_showtris N<br />
|(1) Shows triangles being rendered directly.<br>(2) Shows overdrawn tri's.<br>(3) Shows all tri's in scene, direct and indirect.<br />
<br />
|-<br />
!align=left|r_showportals 1<br />
|Shows all portals in scene (red=closed, green=open). If your portals don't show up they are most likely not sealing. Yellow indicates a portal that is effectively closed but which connects to a visleaf visible through another portal.<br />
<br />
|-<br />
!align=left|r_showlightcount 1<br />
|Using colours, shows the number of lights hitting a surface, black = 0, red = 1, blue = 2... etc.<br />
<br />
|-<br />
!align=left|seta tdm_showsprop 1<br />
|Shows the volume of sounds heard by AI. <br />
<br />
|-<br />
!align=left|tdm_ai_showbark 1<br />
|Gives the def name (not the soundshader) of barks used by AI.<br />
<br />
|-<br />
!align=left|tdm_ai_showalert 1<br />
|Shows the AI's current alert total and alert state.<br />
<br />
|-<br />
!align=left|tdm_ai_showdest 1<br />
|Shows the AI's current path destination.<br />
<br />
|-<br />
!align=left|bind "f1" "_impulse27" <br />
|Pressing F1 shows the AAS regions.<br />
<br />
|-<br />
!align=left|timescale 2<br />
|Double speed, good for testing pathing, 1 = normal speed, 2 = double, 0.5 = half speed. To have an effect, the "Uncapped FPS" setting must be Off.<br />
<br />
|-<br />
!align=left|g_timeModifier 2<br />
|Same as timescale 2 but works when Uncapped FPS is On<br />
<br />
|-<br />
!align=left|teleport "entity name"<br />
|teleports the player to the named entity<br />
<br />
|-<br />
!align=left|getviewpos<br />
|get player's position [[Reporting_Problem#Coordinates|coördinates]]<br />
<br />
|-<br />
!align=left|setviewpos "coördinates"<br />
|teleports the player to the position of the coördinates<br />
<br />
|}<br />
<br />
== Spawning entities ==<br />
<br />
Spawns entity in front of the player. Look up if entity gets spawned under the floor. <br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_blackjack<br />
|Spawns blackjack.<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_shortsword<br />
|Spawns a sword.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead<br />
|Spawns one arrow.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead inv_ammo_amount 50<br />
|Spawns 50 arrows (one entity with 50 ammo). Similar technique can be used for other ammo types.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_firearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_gasarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_mossarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_noisemaker<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_ropearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_waterarrow<br />
|<br />
<br />
|}<br />
<br />
With the TDM console you can press tab after typing something to autocomplete. For example <tt>spawn atdm:<tab></tt> will cycle through the various spawnables. You can also add additional spawnargs using the following syntax: <tt>spawn classname [key value] [key value] ...</tt>.<br />
<br />
== Diagnostic information ==<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|listEntities<br />
|lists all current entities followed by a count.<br />
<br />
|-<br />
!align=left|countEntities<br />
|displays a count of entities by class. ''TDM 2.03+''<br />
<br />
|-<br />
!align=left|condump [unwrap] ''filename.txt''<br />
|Writes the text content of the console to text file ''filename.txt'' (you can use any file name). If optional keyword ''unwrap'' is used, full lines from the console will be stitched together with the following line. Useful when exporting long file paths from the console, that have been broken up by its width limit. ''TDM 2.03+''<br />
<br />
|}<br />
<br />
==See Also==<br />
<br />
[[Cvars in The Dark Mod]]<br />
<br />
{{editing}}<br />
<br />
[[Category:CVARS]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Console_Useful_Controls&diff=30984Console Useful Controls2024-01-29T13:48:14Z<p>Datiswous: /* Notes */ added teleport, getviewpos, setviewpos</p>
<hr />
<div>==Introduction==<br />
<br />
This is a list of common console commands and cvars that are of use to Dark Mod mappers and developers for testing etc. It is in order of key words and meaning. The console can be called by hitting "{{key|CTRL}}+{{key|ALT}}+{{key|~}}" ("{{key|CTRL}}+{{key|ALT}}+{{key|Key left of number 1}}" in general, e.g. "{{key|CTRL}}+{{key|ALT}}+{{key|^}}" on a German keyboard).<br />
<br />
This will open the console to cover the upper 50% of the screen. To cover more (80%), also hold down the {{key|SHIFT}} key.<br />
<br />
==Notes==<br />
<br />
* Where a cvar or command is followed by a 1 (parameter) it can be taken that it is enabled by 1 and disabled by 0 unless otherwise stated. '''N''' indicates a range of values.<br />
* The current value of a cvar can be shown by entering its name without a value.<br />
* Parameters can be toggled between values by preceding the control with 'toggle' and following it with eg, 1 0. Example : toggle r_showtris 3 0<br />
* Controls can be bound to keys to be used in-game, including the toggle command, eg, <tt>bind "v" "toggle r_showportals 1 0"</tt><br />
* Many controls can be included in the file '''Doomconfig.cfg''' in the darkmod folder so they are automatically effective.<br />
* Some controls are disabled on exit from a map; others are permanent until manually changed.<br />
<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|noclip<br />
|Player flies through everything.<br />
<br />
|-<br />
!align=left|notarget<br />
|AI will not know the player is there.<br />
<br />
|-<br />
!align=left|invisible<br />
|AI will not see the player, but can still hear him.<br />
<br />
|-<br />
!align=left|inaudible<br />
|AI will not hear the player, but can still see him.<br />
<br />
|-<br />
!align=left|god<br />
|Player cannot be harmed.<br />
<br />
|-<br />
!align=left|killmonsters<br />
|Removes all AI from a map.<br />
<br />
|-<br />
!align=left|tdm_show_loot<br />
|Shows loot items through walls for a short time.<br />
<br />
|-<br />
!align=left|tdm_show_keys<br />
|Shows keys through walls for a short time.<br />
<br />
|-<br />
!align=left|g_dragentity 1<br />
|Aim at entity and hold attack control then pull back.<br />
<br />
|-<br />
!align=left|pm_noclipspeed N<br />
|Changes the speed of player noclip movement.<br />
<br />
|-<br />
!align=left|g_fov N<br />
|N=angle of field of view, eg, '''<code>g_fov 30</code>''' = zoom in to restrict field of view to 30 degrees. Default = 90.<br />
<br />
|-<br />
!align=left|g_showEntityInfo 1<br />
|Show info about near entities (as box with classname).<br />
<br />
|-<br />
!align=left|com_showfps 1<br />
|Show fps to test performance.<br />
<br />
|-<br />
!align=left|com_numQuickSaves N<br />
|How many quicksaves to retain. Reducing the number won't delete any that you already have.<br />
<br />
|-<br />
!align=left|g_frametime 1<br />
|Timing info for each frame, see [[Profiling#g_frametime|Profiling]].<br />
<br />
|-<br />
!align=left|r_showPrimitives 1<br />
|Show info about number of [[drawcalls]] and tris/shadow tris rendered.<br />
<br />
|-<br />
!align=left|con_noprint 0<br />
|Prints console messages to the screen as an overlay.<br />
<br />
|-<br />
!align=left|r_showskel 1<br />
|Shows skeleton in-game with joint names.<br />
<br />
|-<br />
!align=left|g_showCollisionModels 1<br />
|Shows collision models. Use '''g_maxShowDistance N''' to increase the distance where they are shown to.<br />
<br />
|-<br />
!align=left|r_showtris N<br />
|(1) Shows triangles being rendered directly.<br>(2) Shows overdrawn tri's.<br>(3) Shows all tri's in scene, direct and indirect.<br />
<br />
|-<br />
!align=left|r_showportals 1<br />
|Shows all portals in scene (red=closed, green=open). If your portals don't show up they are most likely not sealing. Yellow indicates a portal that is effectively closed but which connects to a visleaf visible through another portal.<br />
<br />
|-<br />
!align=left|r_showlightcount 1<br />
|Using colours, shows the number of lights hitting a surface, black = 0, red = 1, blue = 2... etc.<br />
<br />
|-<br />
!align=left|seta tdm_showsprop 1<br />
|Shows the volume of sounds heard by AI. <br />
<br />
|-<br />
!align=left|tdm_ai_showbark 1<br />
|Gives the def name (not the soundshader) of barks used by AI.<br />
<br />
|-<br />
!align=left|tdm_ai_showalert 1<br />
|Shows the AI's current alert total and alert state.<br />
<br />
|-<br />
!align=left|tdm_ai_showdest 1<br />
|Shows the AI's current path destination.<br />
<br />
|-<br />
!align=left|bind "f1" "_impulse27" <br />
|Pressing F1 shows the AAS regions.<br />
<br />
|-<br />
!align=left|timescale 2<br />
|Double speed, good for testing pathing, 1 = normal speed, 2 = double, 0.5 = half speed. To have an effect, the "Uncapped FPS" setting must be Off.<br />
<br />
|-<br />
!align=left|g_timeModifier 2<br />
|Same as timescale 2 but works when Uncapped FPS is On<br />
<br />
|-<br />
!align=left|teleport "entity name"<br />
|teleports the player to the named entity<br />
<br />
|-<br />
!align=left|getviewpos<br />
|get player's position [[Reporting_Problem#Coordinates|coördinates]]<br />
<br />
|-<br />
!align=left|setviewpos "coördinates"<br />
|teleports the player to the position of the coördinates<br />
<br />
|}<br />
<br />
== Spawning entities ==<br />
<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_blackjack<br />
|Spawns blackjack in front of the player. Look up if entity gets spawned under the floor.<br />
<br />
|-<br />
!align=left|spawn atdm:weapon_shortsword<br />
|Spawns a sword.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead<br />
|Spawns one arrow.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_broadhead inv_ammo_amount 50<br />
|Spawns 50 arrows (one entity with 50 ammo). Similar technique can be used for other ammo types.<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_firearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_gasarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_mossarrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_noisemaker<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_ropearrow<br />
|<br />
<br />
|-<br />
!align=left|spawn atdm:ammo_waterarrow<br />
|<br />
<br />
|}<br />
<br />
With the TDM console you can press tab after typing something to autocomplete. For example <tt>spawn atdm:<tab></tt> will cycle through the various spawnables. You can also add additional spawnargs using the following syntax: <tt>spawn classname [key value] [key value] ...</tt>.<br />
<br />
== Diagnostic information ==<br />
<br />
{|class="wikitable sortable" border=1 style="border-color: grey; border-collapse: collapse; font-size: 92%; margin-left: 1em" cellspacing=0 cellpadding=3<br />
<br />
|-<br />
!bgcolor=#ffdead|Command<br />
!bgcolor=#ffdead|Description<br />
<br />
|-<br />
!align=left|listEntities<br />
|lists all current entities followed by a count.<br />
<br />
|-<br />
!align=left|countEntities<br />
|displays a count of entities by class. ''TDM 2.03+''<br />
<br />
|-<br />
!align=left|condump [unwrap] ''filename.txt''<br />
|Writes the text content of the console to text file ''filename.txt'' (you can use any file name). If optional keyword ''unwrap'' is used, full lines from the console will be stitched together with the following line. Useful when exporting long file paths from the console, that have been broken up by its width limit. ''TDM 2.03+''<br />
<br />
|}<br />
<br />
==See Also==<br />
<br />
[[Cvars in The Dark Mod]]<br />
<br />
{{editing}}<br />
<br />
[[Category:CVARS]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Sounds:_Background_and_Local&diff=30982Sounds: Background and Local2024-01-22T12:45:39Z<p>Datiswous: /* Sound Shader Definition Files */ fixed link</p>
<hr />
<div>''written by Fidcal''<br />
<br />
== Introduction ==<br />
<br />
All that is assumed is you know the essentials described in [[Dark Radiant Must Know Basic Intro]]<br />
<br />
If you want a global ambient sound heard throughout your mission then also read [[Adding ambient Sounds to your Map]].<br />
<br />
This tutorial covers general background sounds, local ambience, environmental, or sounds related to specific objects in the game such as a machine or a drain.<br />
<br />
<br />
== Sound File Types ==<br />
<br />
OGG and WAV files are used in Dark Mod. For details see [[Sound File Formats]]<br />
<br />
OGG files are compressed whereas WAV files do not compress well even in zip files (so I'm told!)<br />
<br />
You can create your own sounds but there is already a large range provided in Dark Mod ready to use.<br />
<br />
Those sound files can be referenced either directly (with full path and name) or via a definition file called a sound shader which can include various controls as well as the name of the sound file and path. Multiple sound file definitions can be included in one sound shader file. Other controls are available as properties in the speaker entity in the map file. These properties will override the equivalent definition in the sound shader.<br />
<br />
<br />
== Speaker Entity ==<br />
<br />
The speaker entity is like a loudspeaker that you place in your mission.<br />
<br />
To include a sound in your mission...<br />
<br />
* create a speaker entity and position it where you want the sound to be centred.<br />
* Add the property s_shader<br />
* In Dark Radiant you can select a sound shader from the button below the entity properties.<br />
<br />
<br />
== Properties of the Speaker Entity ==<br />
<br />
The following are properties to add to the speaker entity to adjust the way it plays sounds. There is no need to dmap between adjustments of these properties. Assuming you have dmapped once you can just use map to test changes.<br />
<br />
Before proceeding, it's worth quoting Orbweaver:<br />
<br />
# If a speaker is looping, it will play all the time, but will obviously only be audible when the player is within range.<br />
# If a speaker is non-looping but waits for trigger, then it will do nothing until triggered. Once triggered it will play but will only be audible if the player is within range.<br />
# If a speaker is non-looping and untriggered, it will play once at startup, irrespective of whether the player is near enough to hear it.<br />
<br />
<br />
<br />
== Loudness, Volume ==<br />
<br />
The '''s_volume''' property allows you to change the volume of a sound. It specifies the change to the volume of the audio file, in decibels, and may be positive or negative.<br />
<br />
Be careful about making sounds too loud with this keyvalue, decibels are fairly "small" units and setting a volume increase of +20dB may well make the sound too loud for players. Ambient sounds should be at a similar volume throughout the map, and should not be so loud as to obliterate important gameplay sounds such as footsteps, or cause the player to reach for their volume control every time they enter a new area.<br />
<br />
== Control of volume by 'Ambient Volume' menu setting ==<br />
If you want to give the player user-friendly control over the sound volume (as with ambient music, which some players prefer off), include the keypair "s_music" "1" on the speaker entity.<br />
<br />
== Direction of Source, Propogation through Doorways==<br />
<br />
<br />
s_occlusion 1 makes the sound go in a straight line and not through visportalled gaps like doorways etc. If set to 0 then it follows a natural route through openings.<br />
<br />
s_omni 1 makes the sound come from no particular direction so this is ideal for ambience like rainfall or mood music (unless that music is meant to come from something in the game.) Set s_omni to 0 if you want your sound to sound like it is coming from the speaker entity.<br />
<br />
<br />
<br />
<br />
== Range, Radius, Distance covered by Sound ==<br />
<br />
The units used for the distance reached by the speaker entity are in ''metres'', not Doom units, so these approximate 40 normal units. There are two concentric ranges:<br />
<br />
* s_mindistance N = distance in metres from speaker at which sound starts to fade. Within that radius it is at full volume.<br />
<br />
* s_maxdistance N = distance in metres from speaker beyond which it cannot be heard at all.<br />
<br />
When the speaker-visualization button is on, each speaker's two ranges are shown: as circles (in grid view, with radii); and as spheres (in camera view).<br />
<br />
==Triggering a Sound==<br />
<br />
Speakers by default will start to play at mission start even if the player is not in range to hear them. But speakers can be set to wait for a trigger - so any switch, button or other trigger can start and stop them. To do this, set the property s_waitfortrigger to 1 then the speaker is disabled until triggered by a switch of some sort. Default is 0.<br />
<br />
<br />
== Playing a Sound Once ==<br />
<br />
By default, if no looping or repeat is set up then a speaker will play once at mission start then stop. But unless the player is within range it will not be heard.<br />
<br />
So to play a sound once when the player approaches you need a separate vicinity trigger (see also [[#Triggering a Sound]]) that triggers only once. This is how...<br />
<br />
* Create and place your speaker and give it the property ''s_waitfortrigger'' with a value of 1<br />
* At the place where you want the player to trigger the sound create a brush with a volume suitable for the trap so the player will pass into it.<br />
* With the brush selected, assign it (create) an entity ''trigger_once''<br />
* The brush automatically gets a ''trigger'' texture which is invisible in-game.<br />
* Add the property ''target'' with the value being the name of your speaker.<br />
<br />
When the player moves into that invisible brush it should trigger the speaker to play its sound once only.<br />
<br />
== Repeating a Sound Continuously ==<br />
<br />
=== s_looping ===<br />
<br />
s_looping repeats a sound seamlessly and is the one to use for continuous sound like rain, continuous machinery, etc. (compare also [[#wait (repeat)|wait]] before using this.<br />
<br />
s_looping set to 1 means...<br />
<br />
# Play sound immediately the player is within range (set by s_maxdistance)<br />
# Wait until the sound has finished playing<br />
# Repeat endlessly unless the player moves out of range (set by s_maxdistance)<br />
<br />
Set s_looping to 0 to disable (default)<br />
<br />
<br />
<br />
<br />
=== wait (repeat) ===<br />
<br />
wait n means repeat every n seconds endlessly so is the one to use to repeat with a gap between plays of the sound. Do NOT use it with s_looping set to 1 because 'wait' repeats on its own and s_looping will override it and repeat immediately and endlessly.<br />
<br />
wait n means...<br />
<br />
# Play sound immediately the player is within range (set by s_maxdistance)<br />
# Wait n seconds from START of playing sound<br />
# Repeat endlessly unless the player moves out of range (set by s_maxdistance)<br />
<br />
What if n is shorter than the length of the wav or ogg file? If there is only a single sound in the sound shader file then it cuts the sound short and starts again. Here's an example of what happens If, eg, you play a bell sound that is 6 seconds long (the original ogg or wav file) and if you set wait 1 then it will...<br />
<br />
# start to play the sound<br />
# plays it for 1 second<br />
# will not complete that but...<br />
# begin again at the start every 1 second.<br />
<br />
However, if there are multiple sounds in the sound shader file which are selected randomly then they one will be played every N seconds and they will overlap unless it happens to call the same one twice in a row (which can be prevented with nodupes in the sound shader file.)<br />
<br />
Use with random to vary the wait time...<br />
<br />
=== random ===<br />
<br />
Use with the wait property to vary the repeat time. random n varies the wait time randomly by plus or minus n seconds. So for example...<br />
<br />
* wait 30<br />
* random 10<br />
<br />
...will play the sound repeatedly between 20 to 40 seconds from the start of playing the sound.<br />
<br />
If random is greater than wait then it works the same but with a minimum of zero, so....<br />
<br />
* wait 10<br />
* random 15<br />
<br />
... will play the sound repeatedly between 0 and 25 seconds from the start of playing the sound.<br />
<br />
he sound no directional source, ie, it will not seem to come from the direction of the speaker but from all directions.<br />
<br />
<br />
== Screen Shaking, Explosions, etc. ==<br />
<br />
s_shakes set to 1 makes the screen shake when the sound is loud. Suitable for explosions, earthquakes.<br />
<br />
<br />
==Sound Shader Definition Files==<br />
<br />
This to be written. It might need a separate article in which case adjust the link above. Meanwhile here is an external link...<br />
<br />
https://iddevnet.dhewm3.org/doom3/sounds.html<br />
<br />
[[Setting Up Speakers]] aims to cover shaders as well.<br><br />
(apologies for the overlap btw., plasticman)<br />
<br />
[[Category:Sound]]<br />
[[Category:Editing]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Setting_Up_Speakers&diff=30981Setting Up Speakers2024-01-22T12:43:43Z<p>Datiswous: /* See Also */ fixed link</p>
<hr />
<div>This article shows how a mapper can drop a speaker entity in the map and set it up correctly in DarkRadiant. The focus is on soundshader keywords and how to override them.<br />
<br />
== Create A Speaker Entity ==<br />
<br />
To create a speaker you can simply click {{RMB}} in DarkRadiant and select "Create speaker...". This will:<br />
* create a speaker entity<br />
* open a window that lets you choose a sound<br />
After choosing a sound you can alter the sound's properties in the entity inspector.<br />
<br />
To do that it is handy to know how sounds in our game basically work. Via sound shaders, that is:<br />
<br />
== Sound Shaders And Spawnargs ==<br />
<br />
A sound shader is a text file that resides in darkmod/sounds and comes with the .sndshd extension. These shaders tell the engine where the .waves or .oggs can be found along with some common parameters.<br />
<br />
As an example we look at the shader for "footsteps on stone materials while walking" (you would not put these in game via a speaker normally, but you ''could'' do it since all sounds work technically the same):<br />
<br />
<pre><br />
tdm_footstep_stone_walk<br />
{ <br />
description "Made by GoldChocobo"<br />
no_dups<br />
minDistance 1<br />
maxDistance 30<br />
volume -12<br />
<br />
sound/sfx/movement/footsteps/player/stone_walk01.ogg<br />
sound/sfx/movement/footsteps/player/stone_walk02.ogg<br />
sound/sfx/movement/footsteps/player/stone_walk03.ogg<br />
sound/sfx/movement/footsteps/player/stone_walk04.ogg<br />
}<br />
</pre><br />
<br />
It starts with the shader name "tdm_footstep_stone_walk". This will show up in DarkRadiant's "Choose sound" dialog. Then we have some keywords followed by the actual sound files and their relative path.<br />
<br />
Note: Do not include special characters such as dashes "-" or ampersands "&" in your file or folder name. The Dark Mod's path parser cannot read paths with special characters.<br />
<br />
There are four sounds (not only one) to allow variety. They get played in a random order, one each time the sound is triggered. (In most cases, see [[Problem Hearing Varied Sounds]].)<br />
<br />
Picking the ''volume'' keyword you can see it is followed by a negative value. These are meant to be decibel (dB), so we can expect 0 to be the maximum while a reduction by 10 approximately is half the volume.<br />
<br />
If you created your speaker and wanted to change it's volume in DarkRadiant you would go to the entity inspector (default shortcut: n) and add the spawnarg ''s_volume''. Whatever number you enter here is meant to override the shader setting.<br />
<br />
This is what it looks like:<br />
<br />
[[Image:Entity-inspector-speaker.png]]<br />
<br />
The icons left to the keyword indicate Radiant knows them -- you will get a tooltip on mouseover. If you mistype anything you will see nothing there, which is a good indicator.<br />
<br />
So what we have is a system where our shaders provide the default values. We can override these values in the map file using the appropriate spawnargs. Note that not defining anything in the shader as well as in your map file won't crash the game -- there are still fallback values (propably hardcoded in the engine).<br />
<br />
In the following list the keywords are presented as a pair, where possible. The soundshader keyword is followed by the corresponding counterpart you would use in DR.<br />
<br />
=== volume/ s_volume ===<br />
<br />
:The ''volume'' is set in dB. Usually this means there is a maximum of ''0'' dB. The minimum is ''-60'' dB which results in absoulute silence.<br />
<br />
Edit (demagogue): I found a handy decibel calculator here: <br />
http://www.sengpielaudio.com/calculator-levelchange.htm <br />
that lets you compute the decibel number for relative loudness. According to it, <br />
"0" is the native volume of the sound, "-60" is silence, "-4" is 3/4 (.75) of the volume, <br />
"-10" is half (.5) the volume, "-17" is 0.3 of the volume, and it goes quickly down from there.<br />
"3" is 1.25 the volume. "10" would be double (probably too loud). <br />
<br />
:Up to a certain point the game allows the use of positive values as well, but be aware, as this is sensitive:<br />
<br />
:To prevent clipping the engine has a mechanism that does not allow the ''volume'' to overdrive your sound hardware. For testing, it can be disabled via the ''s_clipVolumes'' cvar, but if it is active it will clip the ''volume'' for every output sound channel after all the other calculations are done -- this includes stereo panning, so once the volume setting is too high all the speakers (in your headphones, on your stereo) will play the sound at the same maximum volume. It gets virtually monofied, the player no longer is able to locate the sound.<br />
<br />
:When evaluating sound levels within the game, it is best-practice to set all the Audio sliders to their default value (which is the max value, 100%).<br />
<br />
:''With your own FM-custom SFX or ambient sounds and their shaders''. Strive to make the native volume just right, so you aren't forced to set a "s_volume" spawnarg on an individual speaker (or "volume" spawnarg on an individual info_location). Instead either -<br />
:* adjust the .ogg/.wav volume in your sound editor (e.g., Audacity), particularly if the sound is too quiet;<br />
:* adjust "volume" lower in your custom sound shader, if the sound is still too loud.<br />
<br />
:''With core-asset SFX or ambient sounds and their shaders''. These assets have already been tweaked to provide a consistent audio experience. But if you find a particular sound that seems far too loud or too soft compared to its peers, consider reporting it as a bug. "Too loud" can be quickly handled in your map by overriding the default volume: set the "s_volume" of the individual speaker (or "volume" of an info_location) lower.<br />
<br />
=== unclamped/ s_unclamped ===<br />
<br />
:Possible values are ''0'' and ''1''. This overrides the global ''volume'' clipping and will make your sound bypass the ''s_clipVolumes'' setting.<br />
<br />
:Should be used with extra care, can trigger hardware clipping. This will not damage your hardware, but sound real crappy -- keep in mind this is a game and not your favourite tube amp.<br />
<br />
=== minDistance/ s_mindistance ===<br />
<br />
:This works together with ''maxDistance'' like this:<br />
<br />
:[[Image:Mindistance-maxdistance-falloff.png]]<br />
<br />
:Around the speaker there is a spherical volume, defined by ''minDistance''. Inside that, the sound plays at the specified full ''volume''. The (hopefully) larger ''maxDistance'' defines a bigger sphere. Outside of it the ''volume'' will be ''0'', inside of it there is a falloff from max. to min.<br />
<br />
Inside the minDistance, sounds are not directional. Do not use a minDistance larger than 1 for sounds that should be pinpointed from a specific source (vocals, footsteps, impacts, etc).<br />
<br />
:Note: '''Do not set ''s_mindistance'' to ''0''!'''<br />
<br />
:While a real sound does not have a "mindistance" it will not work to set ''s_mindistance'' to ''0''. A quick test revealed the following behavior:<br />
<br />
:[[Image:Mindistance-overrides.png]]<br />
<br />
:This shows we can overide the shader values with our spawnarg in DR, but when we set it to ''0'' it counts not as a number but as a toggle that simply disables our intended input. This is as good as deleting the property.<br />
<br />
:The value will fall back to the shader default (lucky case is purple, bad cases are red). In the right column (red and yellow field) you can see what happens when no values are provided by the shader nor the spawnarg: doom simply sets the ''minDistance'' to ''1''.<br />
<br />
:As a resort mappers can always use ''s_mindistance 1'', that's close enough for rock'n'roll.<br />
<br />
=== maxDistance/ s_maxdistance ===<br />
<br />
:See above. The outlines of ''maxDistance'' can be drag-resized in DarkRadiant. This does not show you the real dispersion of the sound in most cases (due to occlusion, see below).<br />
<br />
:Not setting the ''maxDistance'' or at the same time setting ''s_maxdistance'' to ''0'' (which is insane anyway) will cause doom to use ''10'' instead.<br />
<br />
=== looping/ s_looping ===<br />
<br />
:Turns on and off looping. The sound will repeat endlessly in a forward loop.<br />
<br />
=== omnidirectional/ s_omni ===<br />
<br />
:The sound will have the same ''volume'' on both stereo headphone (or PC) speakers, so it sounds like not having a specific origin. Normally used for ambience music (when not using the preferred method via [[Location Settings]]). Works with falloff as provided by ''minDistance'' and ''maxDistance''.<br />
<br />
=== global/ s_global ===<br />
<br />
:Plays the sound at full ''volume'' everywhere in the map.<br />
<br />
=== no_occlusion/ s_occlusion ===<br />
<br />
:The shader keyword turns occlusion off, ''s_occlusion'' must be set to ''1'' for the same effect (this is counterintuitive).<br />
<br />
:'''What is occlusion?''' -- To resemble a realistic falloff for sounds, the game traces the route to the speaker from the player position through vis_portals instead of line of sight. Even closed doors or windows are taken into account for that calculation.<br />
<br />
:If you want your specific sound to be not affected by this, you can turn it off this way.<br />
<br />
:Note: it is highly recommended to turn occlusion off for ambient music, or it will fade when you close a door etc.<br />
<br />
=== shakes/ s_shakes ===<br />
<br />
:A special effect, that shakes the screen when the sound plays. Possible values are fractions between ''0'' and ''1''. This is multiplied with the ''volume'' to determine the intensity of the effect.<br />
<br />
:Note: ''s_shakes 0'' will disable itself and fall back to the ''shakes'' value in the shader.<br />
<br />
:Note2: Iddevnet says it should not be used with .ogg files.<br />
<br />
=== n. a./ s_waitfortrigger ===<br />
<br />
:If set to ''1'' the speaker will wait for a trigger to activate it.<br />
<br />
=== n. a./ s_shader ===<br />
<br />
:Points to the sound shader the speaker uses. Can as well be used to reference audio files directly, when not present in any shader.<br />
<br />
=== leadin/ n. a. ===<br />
<br />
:Specifies a file that is played as a lead-in to a looped part of the sound.<br />
<br />
=== leadinVolume/ n. a. ===<br />
<br />
:''Volume'' of the lead-in part in a looped sound.<br />
<br />
=== no_dups/ n. a. ===<br />
<br />
:This prevents the same audio file out of the multiple ones in a shader to be played twice in a row when randomly playing them.<br />
<br />
:Not of any use when your shader references only one file.<br />
<br />
=== private/ n. a. ===<br />
<br />
:The sound is only present to the player.<br />
<br />
=== description/ n. a. ===<br />
<br />
:A short discription in the shader. In DarkMod it usually names the creator of the sound.<br />
<br />
== See Also ==<br />
<br />
When you set up a few sounds, you propably like to check them out in game. Learn about additional tools for [[Debugging Your Speakers]].<br />
<br />
Unfortunately I missed [[Sounds: Background and Local]], before creating a bit of an overlap with this article.<br />
<br />
Further information can be found at [http://www.modwiki.net/wiki/Sound_(keywords) modwiki.net] or [https://iddevnet.dhewm3.org/doom3/sounds.html iddevnet].<br />
<br />
[[Category:Sound]]<br />
[[Category:Editing]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Fan_Missions_for_The_Dark_Mod&diff=30979Fan Missions for The Dark Mod2024-01-17T11:24:34Z<p>Datiswous: /* Missions table */ added yes to subs to some more fms</p>
<hr />
<div>__NOTOC__<br />
{{infobox|<center><br>'''Big Ugly Disclaimer:'''</center><br> '''The Dark Mod''' team does not necessarily support or endorse content listed here, and only hosts missions listed on the [http://www.thedarkmod.com/ official TDM website]. This is a community maintained list, and an ongoing work in progress. Most of the mirror links in this list are dead or are for missions that are not 2.0 compliant. Mission entries which are suspected to violate copyright must be text-only, and cannot contain links. Report and/or remove links found in violation of this rule.}}<br />
<br />
<br />
* For details about editing this table, see [[#Editing_this_table|below]].<br />
* For details about how to install Fan Missions please visit: [[Installing and Running Fan Missions]]<br />
* To sort by a different criterion, click the [[Image:Sort none.gif]] icon in the relevant column header.<br />
<br />
== Missions table ==<br />
{|class="wikitable sortable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="21%"|Fan Mission Title<br />
!bgcolor=#d0d0e0 width="11%"|Author(s)<br />
!bgcolor=#d0d0e0 width="4%" class="unsortable"|Links<br />
!bgcolor=#d0d0e0 width="5%"|First Release<br />
!bgcolor=#d0d0e0 width="2%"|Size (MB)<br />
!bgcolor=#d0d0e0 width="3%"|EFX Reverb<br />
!bgcolor=#d0d0e0 width="3%"|Subtitles<br />
!bgcolor=#d0d0e0 width="10%"|Series<br />
!bgcolor=#d0d0e0 width="13%"|Mission Type<br />
!bgcolor=#d0d0e0 width="6%"|Spiders and Undead<br />
|-<br />
<br />
<!--INSERT NEW MISSIONS BELOW THIS LINE--><br />
<br />
|-<br />
!align=left|{{TDM-FM|altham|A Night in Altham}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22296-fan-mission-a-night-in-altham/}}<br />
|2023-12-05<br />
|441<br />
|Yes<br />
|Yes<br />
| <br />
|City Missions, Forest<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|spiderfinch|The Spider And The Finch}}<br />
|GrodenVR<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22275-fan-mission-the-spider-and-the-finch-by-grodenglaive/}}<br />
|2023-11-18<br />
|45<br />
|Yes<br />
|No<br />
| <br />
|Mansion/Estate, Forest<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|threepenny|The Threepenny Revue}}<br />
|Jnon<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22229-fan-mission-the-threepenny-revue/}}<br />
|2023-10-01<br />
|21<br />
|No<br />
|<br />
| <br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|delisle|The House of deLisle}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22227-fan-mission-the-house-of-delisle/}}<br />
|2023-10-01<br />
|38<br />
|Yes<br />
|<br />
|Duncan Lynch <br />
|Mansion/Estate, City Missions<br />
|Spiders, Undead, Body Horror<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bridge2far|A Bridge Too Far}}<br />
|cugzkani<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22220-fan-mission-a-bridge-too-far/}}<br />
|2023-09-22<br />
|6<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|highex|The Lieutenant 2: High Expectations}}<br />
|Frost_Salamander<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21837-fan-mission-the-lieutenant-2-high-expectations-by-frost_salamander-20230424}}<br />
|2023-04-24<br />
|34.9<br />
|Yes<br />
|<br />
|The Lieutenant<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|seeking|Seeking Lady Leicester}}<br />
|Grayman, Bikerdude, Amadeus, Dragofer, WellingtonCrab<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21799-fan-mission-seeking-lady-leicester-by-grayman-3212023/}}<br />
|2023-03-22<br />
|493<br />
|Yes<br />
|Yes<br />
|<br />
|Mansion/Estate, City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|inplainsight|The Lieutenant 1: In Plain Sight}}<br />
|Frost_Salamander<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21549-fan-mission-in-plain-sight-by-frost_salamander-20220807}}<br />
|2022-08-07<br />
|14<br />
|Yes<br />
|<br />
|The Lieutenant<br />
|City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|at1_lucy|The Adventures of Thomas: Lucy's Quest}}<br />
|gg<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21453-the-adventures-of-thomas-lucys-quest-2022-06-08}}<br />
|2022-06-08<br />
|484<br />
|Yes<br />
|<br />
|Thomas 1<br />
|City Missions<br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|wwtw|Who Watches the Watcher?}}<br />
|DeTeEff<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21434-fan-mission-who-watches-the-watcher-v10-by-deteeff-20220528}}<br />
|2022-05-28<br />
|86<br />
|Yes<br />
|Yes<br />
|<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sw1_ebound|Sam Wilson 1: Eastbound}}<br />
|jonri<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21402-fan-mission-sam-wilson-1-eastbound-2022-05-07}}<br />
|2022-05-07<br />
|18<br />
|Yes<br />
|<br />
|Sam Wilson<br />
|Train Heist<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|byanyothername|By Any Other Name}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21331-fan-mission-by-any-other-name-by-joebarnin-2022310/}}<br />
|2022-03-10<br />
|124<br />
|Yes<br />
|Yes<br />
|<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|housecall|A House Call}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21329-a-house-call-by-thebigh-mar-10-2022/}}<br />
|2022-03-10<br />
|10<br />
|Yes<br />
|<br />
|Duncan Lynch<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nobleaffairs|Noble Affairs}}<br />
|Goldwell<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21318-fan-mission-noble-affairs-by-goldwell-20220222-tdm-210-required/}}<br />
|2022-02-22<br />
|488<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|iris|Iris}}<br />
|Wellingtoncrab<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21289-fan-mission-iris-by-wellingtoncrab-tdm-210-required-20220213/}}<br />
|2022-02-13<br />
|549<br />
|Yes<br />
|<br />
|CCC 22 - '''WINNER'''<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ptb0|PtB 0: Moving Day}}<br />
|Jedi_Wannabe<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21283-fan-mission-paying-the-bills-0-moving-day-tdm-210-beta-only-202228/}}<br />
|2022-02-08<br />
|160<br />
|Yes<br />
|<br />
|CCC 22, PTB<br />
|Mansion/Estate, Forest<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|written|Written in Stone}}<br />
|Bikerdude, Amadeus, Dragofer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21265-written-in-stone-beta-210-only-20220128/}}<br />
|2022-01-28<br />
|338<br />
|Yes<br />
|Yes<br />
|CCC 22, Elixir<br />
|City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hazard|Hazard Pay}}<br />
|Kingsal<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21264-fan-mission-hazard-pay-by-kingsal-tdm-beta-210-only/}}<br />
|2022-01-28<br />
|404<br />
|Yes<br />
|Yes<br />
|CCC 22<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|newford|Down and Out on Newford Road}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21260-down-and-out-on-newford-road-by-thebigh-jan-26-2022-christmas-connections-contest-entry/}}<br />
|2022-01-26<br />
|17<br />
|Yes<br />
|<br />
|CCC 22<br />
|Church/Cathedral, City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deadeye|Deadeye}}<br />
|Sotha<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21225-fan-mission-deadeye-by-sotha-20211231/}}<br />
|2021-12-31<br />
|1.8<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|black_mage|The Black Mage}}<br />
|Grayman, JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21215-the-black-mage/}}<br />
|2021-12-23<br />
|410<br />
|Yes<br />
|Yes<br />
| <br />
|Castle/Fortress <br><br>In memoriam of Grayman {{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20933-we-have-lost-a-member-of-the-tdm-development-team/}}<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ch1_eaton|Cole Hurst 1: Eaton}}<br />
|bwyan<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21170-fan-mission-cole-hurst-1-eaton-by-bwyan-20211202/}}<br />
|2021-12-01<br />
|41<br />
|Yes<br />
|<br />
|Cole Hurst<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos0_thief|Chronicles of Skulduggery 0: To Catch a Thief}}<br />
|Bienie<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21156-fan-mission-chronicles-of-skulduggery-0-to-catch-a-thief-20211120/}}<br />
|2021-11-20<br />
|15<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions, Mansion/Estate<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|away0|Away 0 - Stolen Heart}}<br />
|Geep,_Atti_<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20964-away-0-stolen-heart-by-geep-_atti_-20210924/}}<br />
|2021-11-12<br />
|189.5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Away_series|Away]]<br />
|Inn/Tavern, Jail/Prison, <br> Museum Heist, Bank Job<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhta|Hidden Hands: Anomaly}}<br />
|JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20909-hidden-hands-the-anomaly}}<br />
|2021-05-01<br />
|532.7<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Castle/Fortress <br> Forest<br />
|Undead, Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hareinthesnare|The Hare in the Snare: Part 1}}<br />
|Frost_Salamander,Kerry000<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20883-fan-mission-the-hare-in-the-snare-part-1}}<br />
|2021-04-09<br />
|102.3<br />
|Yes<br />
|Yes<br />
|Hare in the Snare 1<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|blackgrove|Blackgrove Manor}}<br>(v1.02, 2021/04/24)<br />
|ddaazzaa<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20844-fan-mission-blackgrove-manor-by-ddaazzaa-20210314/}}<br />
|2021-03-14<br />
|24.7<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|scroll|Scroll of Remembrance}}<br />
|MirceaKitsune<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20613-fan-mission-scroll-of-remembrance-by-mirceakitsune-03112020/}}<br />
|2020-11-03<br />
|16.2<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|factoryheist|The Factory Heist}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20562-the-factory-heist-12-sep-2020/}}<br />
|2020-09-12<br />
|1.1<br />
|No<br />
|<br />
|Duncan Lynch<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nowandthen|Now and Then}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20560-fan-mission-now-and-then-by-joebarnin-20200908/}}<br />
|2020-09-08<br />
|236.1<br />
|Yes<br />
|<br />
|<br />
|Museum Heists<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhtlc|Hidden Hands: The Lost Citadel}}<br />
|JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20490-hidden-hands-the-lost-citadel-23072020}}<br />
|2020-07-23<br />
|444<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Castle/Fortress<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos3_sacricide|Chronicles of Skulduggery 3: Sacricide}}<br />
|Bienie<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20483-fan-mission-chronicles-of-skulduggery-3-sacricide-20200718/}}<br />
|2020-07-18<br />
|97.8<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|painterswife|The Painter's Wife}}<br>(v1.2, 2021/04/04)<br />
|Fractured Glass Company<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20436-fan-mission-the-painter’s-wife-by-fractured-glass-company-20200701/}}<br />
|2020-07-01<br />
|503<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|anol|A Night Of Loot: One Man's Treasure}}<br />
|OGDA<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20416-fan-mission-a-night-of-loot-one-mans-treasure/}}<br />
|2020-06-13<br />
|3.9<br />
|No<br />
|<br />
|<br />
|Shop/House<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|good|A Good Neighbor}}<br />
|Amadeus<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20292-fan-mission-a-good-neighbor/}}<br />
|2020-03-08<br />
|54.6<br />
|Yes<br />
|<br />
|<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|airpocket|Away 1 - Air Pocket}}<br />
|Geep<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20252-fan-mission-away-1-air-pocket-by-geep-20200207}}<br />
|2020-02-06<br />
|15.3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Away_series|Away]]<br />
|Pirate <br> Ship<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|snowed_inn|Snowed Inn}}<br />
|Goldwell and Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20201-fan-mission-snowed-inn-by-goldwell-kingsal-20191225}}<br />
|2019-12-25<br />
|382<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|indangerofjudgment|In Danger of Judgment}}<br />
|krrg<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20155-fan-mission-in-danger-of-judgment-20191115/}}<br />
|2019-11-15<br />
|11.9<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lhl|Langhorne Lodge}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20143-fan-mission-langhorne-lodge/}}<br />
|2019-10-30<br />
|8.2<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead <br> Ghosts <br> Spiders<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|heartstmattis|The Heart of Saint Mattis}}<br />
|joebarnin<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20091-fan-mission-the-heart-of-saint-mattis-by-joebarnin-20190910/}}<br />
|2019-09-10<br />
|58.7<br />
|Yes<br />
|<br />
|<br />
|Church/Cathedral<br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|peril|Perilous Refuge}}<br />
|Dragofer, Crucible Team<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20090-fan-mission-perilous-refuge-by-dragofer-20190910/}}<br />
|2019-09-10<br />
|34.7<br />
|Yes<br />
|<br />
|<br />
|Ship, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhvf|Hidden Hands: Vitalic Fever}}<br />
|JackFarmer<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20051-hidden-hands-vitalic-fever-20072019}}<br />
|2019-07-20<br />
|269<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos2_precpos|Chronicles of Skulduggery 2: A Precarious Position}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19975-fan-mission-chronicles-of-skulduggery-2-a-precarious-position-20190504/}}<br />
|2019-05-04<br />
|14.5<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws5_commerce|William Steele 5: Commerce Bank}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19957-fan-mission-commerce-bank-by-grayman-2019410/}}<br />
|2019-04-10<br />
|30<br />
|Yes<br />
|Yes<br />
|[[Fan_Mission_Series#William_Steele_series|William Steele]]<br />
|Bank Jobs<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|marshofrahena|Marsh of Rahena}}<br />
|ERH+<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19951-fan-mission-marsh-of-rahena-by-erh-201945}}<br />
|2019-04-05<br />
|60.3<br />
|Yes<br />
|<br />
|<br />
|Castle/Fortress, Horror <br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|northdale2|Shadows of Northdale ACT 2}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19936-fan-mission-shadows-of-northdale-act-ii-by-goldwell-20190320/}} [https://www.youtube.com/watch?v=KO-eIOX9nqI Briefing]<br />
|2019-03-20<br />
|417<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Shadows of Northdale series|Shadows of Northdale]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cleanneighbourhood|Cleaning Up the Neighbourhood}}<br />
|some1stoleit and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19898-fan-mission-cleaning-up-the-neighbourhood-by-some1stoleitbikerdude-20190219/}}<br />
|2019-02-18<br />
|34.3<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhi|Hidden Hands: Initiation}}<br />
|JackFarmer<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19796-hidden-hands-initiation-27122018/}}<br />
|2018-12-27<br />
|92.5<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Mansion/Estate <br>Ship<br />
|Spiders, Extra-natural entities<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|reluctantbenefaction|The Night of Reluctant Benefaction}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19787-fan-mission-the-night-of-reluctant-benefaction/}}<br />
|2018-12-24<br />
|11.9<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mercwarehouse|Mission of Mercy}}<br />
|joebarnin<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19642-fan-mission-mission-of-mercy-by-joebarnin-20180914/}}<br />
|2018-09-14<br />
|10.1<br />
|No<br />
|<br />
|<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws4_warrens|William Steele 4: The Warrens}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19618-fan-mission-the-warrens-by-grayman-201891/}}<br />
|2018-09-01<br />
|53<br />
|Yes<br />
|Yes<br />
|[[Fan_Mission_Series#William_Steele_series|William Steele]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|braeden_church|Braeden Church}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19533-fan-mission-braeden-church-by-grayman-201871/}}<br />
|2018-07-01<br />
|24<br />
|No<br />
|Yes<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|pearlsnswine|Chronicles of Skulduggery: Pearls and Swine}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19439-chronicles-of-skulduggery-pearls-and-swine/}}<br />
|2018-05-25<br />
|23<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|northdale1|Shadows of Northdale ACT I}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19368-fan-mission-shadows-of-northdale-act-i-by-goldwell-20180323/}} [https://www.youtube.com/watch?v=p4nP3lYd6wg Briefing]<br />
|2018-03-23<br />
|295<br />
|Custom <br>(not EFX)<br />
|<br />
|[[Fan_Mission_Series#Shadows of Northdale series|Shadows of Northdale]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sirt|Sir Taffsalot's Sword}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19361-fan-mission-sir-taffsalots-sword-by-grayman-2018318/}}<br />
|2018-03-17<br />
|11.3<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> <br> In memoriam of Gary (Sir Taffsalot) {{Forumlink|http://forums.thedarkmod.com/topic/19306-sad-news-we-lost-one-of-our-own-sir-taffsalot/}}<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|arena|The Arena}}<br />
|ERH+<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19350-fan-mission-the-arena-by-erh/}}<br />
|2018-03-12<br />
|3<br />
|No<br />
|<br />
|<br />
|Arena Deathmatch <br> Experimental<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|elixir|The Elixir}}<br />
|Bikerdude and Obsttorte<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19323-fan-mission-the-elixir-by-b1k3rdude-obsttorte-17022018/}} [https://www.youtube.com/watch?v=KfElYZs-FaE Briefing]<br />
|2018-02-17<br />
|112<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cauldron_v2_2|Volta 2: Cauldron of the Gods}}<br />
|Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19207-volta-ii-cauldron-of-the-gods/}} [https://www.youtube.com/watch?v=SRRCRVFHruc Briefing]<br />
|2017-11-30<br />
|252<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Volta series|Volta]]<br />
|Lost Civilizations<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|itb|In the Black}}<br />
|VanishedOne<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19185-fan-mission-in-the-black/}}<br />
|2017-11-18<br />
|103<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ac1|Accountant 1: Thieves and Heirs}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19164-fan-mission-the-accountant-1-thieves-and-heirs-by-goldwell-20171108}} [https://www.youtube.com/watch?v=Tk9DtOT4kjc Briefing]<br />
|2017-11-08<br />
|247<br />
|No<br />
|<br />
|[[Fan_Mission_Series#The Accountant series|The Accountant]]<br />
|Mansion/Estate<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|kotm|King of the Mountain}}<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19105-fan-mission-king-of-the-mountain-by-spoonman-18092017/}}<br />
|2017-09-18<br />
|8.07<br />
|No<br />
|<br />
|<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|briarwood_manor|Briarwood Manor}}<br />
|NeonStyle<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18980-fan-mission-briarwood-manor-by-neonsstyle-first-mission-2017-07-11}} [https://www.youtube.com/watch?v=BZnSuLVatYM Trailer] [https://www.youtube.com/watch?v=CPlu8fEzyGM Briefing]<br />
|2017-07-11<br />
|90<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Spider<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|matterofhours|A Matter of Hours}}<br />
|Springheel<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18809-fan-mission-a-matter-of-hours-by-springheel-2842017/}}<br />
|2017-04-28<br />
|13<br />
|No<br />
|<br />
|[[Fan Mission Series#Corbin series|Corbin]]<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ravine|The Ravine}}<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18782-fan-mission-the-ravine-by-spoonman-17042017/}}<br />
|2017-04-17<br />
|30.6<br />
|No<br />
|<br />
|<br />
|Outdoor/Pagan<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bakery_job|The Bakery Job}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18707-fan-mission-the-bakery-job-by-sotha-20170309/}}<br />
|2017-03-09<br />
|2<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Mission 1: A New Job}}<br />
|Springheel<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}}<br />
|2017-03-14<br />
|13.8<br />
|Yes<br />
|Yes<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|coercion|Coercion}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18405-fan-mission-coercion-by-sotha-20160927}}<br />
|2016-09-27<br />
|10<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|river|Down by the Riverside}}<br />
|Dragofer<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18402-fan-mission-down-by-the-riverside-by-dragofer-20160925}}<br />
|2016-09-25<br />
|56<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Of Brambles and Thorns series|Of Brambles and Thorns]]<br />
|Mansion/Estate <br> Ship <br> Horror<br />
|Horror themes, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny3|Penny Dreadful 3: Erasing the Trail}}<br />
|Melan and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18200-fan-mission-penny-dreadful-3-by-melan-and-bikerdude-20160710}}<br />
|2016-07-09<br />
|200<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|volta1_3|Volta 1: Volta and the Stone}}<br />
|Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18087-fan-mission-volta-and-the-stone-by-kingsal-05262016}}<br />
|2016-05-27<br />
|102<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Volta series|Volta]]<br />
|Mansion/Estate <br> City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|fever|Full Moon Fever}}<br>(v2.0 2018/02/21)<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18066-fan-mission-full-moon-fever-by-spoonman-14052016/}}<br />
|2016-05-14<br />
|21<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|kingofdiamonds|King of Diamonds}}<br />
|Spooks<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18064-fan-mission-the-king-of-diamonds-by-spooks-20160513}}<br />
|2016-05-13<br />
|26.3<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|Occult themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ac2|Accountant 2: New in Town}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/}} [https://www.youtube.com/watch?v=xeuIO_GcYjQ Briefing] <br> [https://www.youtube.com/watch?v=w6e_SJ0_JOM Gameplay trailer] <br />
|2016-05-08<br />
|358<br />
|No<br />
|<br />
|[[Fan_Mission_Series#The Accountant series|The Accountant]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cutpurse|The Smiling Cutpurse}}<br />
|Airship Ballet<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17850-fan-mission-the-smiling-cutpurse-by-airship-ballet-20160325/}}<br />
|2016-03-25<br />
|87<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> Sewers<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mother|Mother Rose}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17653-fan-mission-mother-rose-by-grayman-20160101/#entry385131/}}<br />
|2016-01-01<br />
|10<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Ghost<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bcd|Behind Closed Doors}}<br />
|Bikerdude and the Crucible Team<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17627-crucible-of-omens-behind-closed-doors-by-bikerdude-the-crucible-team-updated-18122015/}}<br />
|2015-12-19<br />
|359<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Crucible of Omens series|Crucible of Omens]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|theratst|The Rats Triumphant}}<br />
|Melan<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17512-fan-mission-the-rats-triumphant-by-melan-20151031/}}<br />
|2015-10-31<br />
|11<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]] '''WINNER'''<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deaddrunk|Dead Drunk}}<br />
|Stumpy<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17511-fan-mission-dead-drunk-by-stumpy-20151030/}}<br />
|2015-10-30<br />
|4<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|remorse|Thief's Remorse}}<br />
|Airship Ballet<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17509-fan-mission-thiefs-remorse-by-airship-ballet-20151030/}}<br />
|2015-10-30<br />
|42<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|springcleaning|Spring Cleaning}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17510-fan-mission-spring-cleaning-by-goldwell-20151030/}} [https://www.youtube.com/watch?v=JzPpmDK9Fxw Briefing] <br />
|2015-10-30<br />
|45<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|the_golden_skull|The Golden Skull}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17497-fan-mission-the-golden-skull-by-sotha-20151024/}}<br />
|2015-10-25<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ahouseoflockedsecrets|A House of Locked Secrets}}<br />
|Moonbo<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17163-fan-mission-a-house-of-locked-secrets-by-gelo-moonbo-fleisher-20150528/}} [https://www.youtube.com/watch?v=f5NuTJEZ8VE Trailer]<br />
|2015-05-29<br />
|195<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#Shadowcursed series|Shadowcursed]]<br />
|Church/Cathedral <br> Mansion/Estate<br />
|Horror themes, <br> Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|u2_flock|Ulysses 2: Protecting the Flock}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17162-fan-mission-ulysses-2-protecting-the-flock-by-sotha-20150528/}}<br />
|2015-05-28<br />
|102<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Ulysses series|Ulysses]]<br />
|Church/Cathedral<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|talbot|Sir Talbot's Collateral}}<br />
|Baal and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17093-fan-mission-sir-talbots-collateral-by-baal-bikerdude-15042015/}} [https://www.youtube.com/watch?v=e3rdZfq4Omc Trailer]<br />
|2015-04-15<br />
|60<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat3|Vengeance for a Thief Part 3}}<br />
|Sir Taffsalot<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/16953-the-complete-vengeance-for-a-thief-campaign/}}<br />
|2015-02-16<br />
|25<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]]<br />
|Church/Cathedral<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bathhouse|Lord Edgar's Bathhouse}}<br />
|Goldwell<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16828-fan-mission-lord-edgars-bathhouse-by-goldwell-27122014/}} [https://www.youtube.com/watch?v=vYSZY7VzFEo Briefing]<br />
|2014-12-27<br />
|71<br />
|No<br />
|<br />
|Lord Edgar<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|quinn|Quinn Co.}}<br>(Made into a campaign, 2015/02/04)<br>{{TDM-FM|m_lbb|La Banque Bienveillante}} {{Forumlink|1=https://forums.thedarkmod.com/index.php?/topic/21488-fan-mission-quinn-co-part-1-la-banque-bienveillante-remake-by-airship-ballet}}<br>(Re-Release, 2022/06/24)<br />
|Airship Ballet<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16912-fan-mission-chase-mercantile-by-airship-ballet-20150204/}}<br />
|2014-11-22<br />
|111<br />
|No<br />
|<br />
|Quinn Co.<br />
|Bank Jobs<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|exhumed|Exhumed}}<br />
|Airship Ballet and Kyyrma<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16658-fan-mission-exhumed-by-kyyrma-and-airship-ballet-20141104/}}<br />
|2014-11-04<br />
|24<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2014 Halloween Speed-build Contest|HSC 14]]<br />
|Church/Cathedral <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|briarwood|Briarwood Cathedral}}<br />
|buck28<br />
|{{Mirrorlink|http://www64.zippyshare.com/v/25705489/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16644-briarwood-cathedral/}}<br />
|2014-10-29<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Master thief Corso series|Corso]] <br> [[Fan_Mission_Contests#2014 Halloween Speed-build Contest|HSC 14]]<br />
|Church/Cathedral <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|onesteptoofar|One Step Too Far}}<br />
|Dragofer<br />
|{{Mirrorlink|https://www.dropbox.com/s/sfxcap1gfdzf318/onesteptoofar.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16457-fan-mission-one-step-too-far-by-dragofer-20140804/}}<br />
|2014-08-04<br />
|9<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Of Brambles and Thorns series|Of Brambles and Thorns]]<br />
|Pirate <br> Ship<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lockner|Lockner Manor}}<br />
|buck28<br />
|{{Mirrorlink|http://www76.zippyshare.com/v/44108372/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16452-new-mission-lockner-manor/}}<br />
|2014-08-02<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Master thief Corso series|Corso]]<br />
|Mansion/Estate <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ulysses_genesis|Ulysses: Genesis}}<br />
|Sotha<br />
|{{Mirrorlink|http://www4.zippyshare.com/v/67195436/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16428-fan-mission-ulysses-genesis-by-sotha-20140724/}}<br />
|2014-07-24<br />
|98<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Ulysses series|Ulysses]]<br />
|Mansion/Estate<br />
|Horror theme?<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny2_1|Penny Dreadful 2: All the way up}}<br />
|Melan and Bikerdude<br />
|{{Mirrorlink|https://mega.co.nz/#!EwoXHZYZ!tE_sKon2h4AWtWPNt9QS3FQClwmXdimhfjIMPcpCQ34}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16387-fan-mission-penny-dreadful-2-by-melan-and-bikerdude-2014078/}} [https://www.youtube.com/watch?v=WmPfCfbeWvg Trailer]<br />
|2014-07-08<br />
|102<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|Thieves' Highway / Rooftop<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|poets|Poets and Peasants}}<br />
|Digi<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B1HHvWAgbWGfTkI0SXFubXZucXM}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16373-fan-mission-poets-peasants-by-digi-62914}}<br />
|2014-06-29<br />
|1<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|follow|A Reputation to Uphold}}<br />
|Springheel<br />
|{{Mirrorlink|http://www.mindplaces.com/follow.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16204-fan-mission-a-reputation-to-uphold-by-springheel/}}<br />
|2014-04-18<br />
|25.5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|breakingout|Breaking Out the Fence}}<br />
|Kyyrma<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/breakingout.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16091-fan-mission-breaking-out-the-fence-17032014-by-kyyrma/}}<br />
|2014-03-17<br />
|11.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#In A Time of Need series|In A Time of Need]]<br />
|City Missions <br> Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|innbiz|Inn Business}}<br>(v.1.48, 2014/03/08)<br />
|RJFerret<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B81T2ZXLPqhTYWVaODRiSExGeGc}} {{Forumlink|1=http://forums.thedarkmod.com/topic/16018-fan-mission-inn-business-by-rjferret-20140303/}}<br />
|2014-03-03<br />
|6<br />
|No<br />
|<br />
|<br />
|Inn/Tavern <br> City Streets<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws3_cleighmoor|William Steele 3: Cleighmoor}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/16011-fan-mission-cleighmoor-by-grayman-201431/#entry338349/}}<br />
|2014-03-01<br />
|38<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Sewers <br> Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws2_homeagain|William Steele 2: Home Again}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/15919-fan-mission-home-again-by-grayman-2014212/page__fromsearch__1}}<br />
|2014-02-12<br />
|26<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|gatehouse1_3|The Gatehouse}}<br />
|Bikerdude Goldchocobo<br />
|{{Mirrorlink|http://www.southquarter.com/tdm/fms/gatehouse.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15844-fan-mission-the-gatehouse-by-bikerdude-goldchocobo-20140114/}} [https://www.youtube.com/watch?v=kcIe2Ucojqw Briefing]<br />
|2014-01-29<br />
|100<br />
|No<br />
|<br />
|Remake of Evilartist's Doom 3 mod<br />
|Castle/Fortress<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|windowopportunity|Window of Opportunity}}<br>(v.1.43, 2014/01/01)<br />
|RJFerret<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B81T2ZXLPqhTWTMzQXZtMVFBSG8}} {{Forumlink|1=http://forums.thedarkmod.com/topic/15727-fan-mission-window-of-opportunity-by-rjferret-20140101/}}<br />
|2014-01-01<br />
|7<br />
|No<br />
|<br />
|<br />
|Outdoor/Caves<br />
|Spiders (not in short mode)<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|timeofneed|In A Time Of Need}}<br />
|kyyrma<br />
| {{Mirrorlink|http://www.mediafire.com/download/a97or40t1xrybh3/timeofneed_v1.zip}} {{Forumlink|http://forums.thedarkmod.com/topic/15354-fan-mission-in-a-time-of-need-by-kyyrma-20131112/}}<br />
|2013-11-12<br />
|5.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#In A Time of Need series|In A Time of Need]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|requiem|Requiem}}<br />
|Moonbo<br />
| {{Mirrorlink|http://www.mediafire.com/download/l6o3vvj9y78hu89/requiem.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15101-fan-mission-requiem-by-gelo-moonbo-fleisher-2013106/}}<br />
|2013-10-08<br />
|107.3<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#Shadowcursed series|Shadowcursed]]<br />
|Lost Civilizations <br> Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat2|Vengeance for a Thief Part 2}}<br />
|Sir Taffsalot<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/vfat2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15051-fan-mission-vengeance-for-a-thief-part-2-by-sir-taffsalot-06092013/}}<br />
|2013-09-06<br />
|22<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]] <br> [[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|Museum Heists<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|lordsnlegacy|Lords and Legacy}}<br />
|Kvorning<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/lordsnlegacy.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15016-fan-mission-lords-legacy-by-kvorning-20130830/}}<br />
|2013-08-30<br />
|45<br />
|No<br />
|<br />
|<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|naog|Not An Ordinary Guest}}<br />
|Fieldmedic<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/naog.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14965-fan-mission-not-an-ordinary-guest-by-fieldmedic-20130801/}}<br />
|2013-08-01<br />
|79.6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny1_1|Penny Dreadful: Grail of Regrets}}<br />
|Melan<br />
| {{Forumlink|http://forums.thedarkmod.com/topic/14952-fan-mission-penny-dreadful-by-melan-20130728/}}<br />
|2013-07-27<br />
|74<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|Horror <br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|solarescape1|Solar Escape 1}}<br />
|Tr00pertj<br />
| {{Forumlink|http://forums.thedarkmod.com/topic/14944-fan-mission-solar-escape-1/}}<br />
|2013-07-22<br />
|6<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> Sewers<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|lich_queens_demise|The Lich Queen's Demise}}<br />
|Sotha<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/lich_queens_demise.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14826-fan-mission-the-lich-queens-demise-by-sotha-20130520/unread/}}<br />
|2013-05-20<br />
|97.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]] '''WINNER'''<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|oldhabits2|Old Habits Rebuild}}<br />
|Obsttorte<br />
|{{Mirrorlink|http://www.mediafire.com/download/u2gwucibh17c45a/oldhabits.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14827-fan-mission-old-habits-rebuild-by-obsttorte-20052013/}}<br />
|2013-05-20<br />
|28.6<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|builders_blocks|The Builder's Blocks}}<br />
|Jesps<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/builders_blocks.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14592-unusual-gameplay-contest-fm-the-builders-blocks-by-jesps/}}<br />
|2013-03-18<br />
|2.85<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|crystalgrave2_1|Crystal Grave}} <br>(v.2.0, 2013/02/09)<br />
|ERH+ Bikerdude<br />
|{{Mirrorlink|https://dl.dropbox.com/u/17706561/crystalgravev2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14510-fan-mission-crystal-grave-v2-by-erh-and-bikerdude-20130209/unread/}}<br />
|2011-11-15<br />
|12.4<br />
|No<br />
|<br />
|<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|broads|The Builder Roads}}<br />
|Obsttorte<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/14449-fan-mission-the-builder-roads-by-obsttorte-20130119/}}<br />
|2013-01-19<br />
|2.3<br />
|No<br />
|<br />
|<br />
|Church/Experimental <br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws1_north|William Steele 1: In the North}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/14214-fan-mission-in-the-north-by-grayman-20121020/}}<br />
|2012-10-20<br />
|39.8<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|oldhabits1|Old Habits}}<br />
|Obsttorte<br />
|{{Mirrorlink|http://www.mediafire.com/download.php?andes2xnsonssfj}} {{Forumlink|http://forums.thedarkmod.com/topic/14206-fan-mission-old-habits-by-obsttorte-20121019/}}<br />
|2012-10-19<br />
|12.8<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deceptiveshadowsv1_2|Deceptive Shadows}}<br />
|ShadowHide<br />
|{{Mirrorlink|http://www.sendspace.com/file/jzr9s7}} {{Forumlink|http://forums.thedarkmod.com/topic/14103-fan-mission-deceptive-shadows-by-shadowhide-16sep12/}}<br />
|2012-09-16<br />
|22.4<br />
|No<br />
|<br />
|<br />
|Outdoor/Pagan<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat1|Vengeance for a Thief: Part 1}}<br />
|Sir Taffsalot <br />
|{{Mirrorlink|https://dl.dropbox.com/u/17706561/VFAT1.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14068-fan-mission-vengeance-for-a-thief-part-1-by-sir-taffsalot-06092012/}}<br />
|2012-09-06<br />
|20.9<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]]<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|phrase_book|The Phrase Book}}<br />
|Sotha<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/phrase_book.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13799-fan-mission-the-phrase-book-by-sotha-20120512/}}<br />
|2012-05-11<br />
|24<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|remembrance|In Remembrance of Him}}<br />
|RPGista<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/remembrance.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13749-fan-mission-in-remembrance-of-him-by-rpgista/}}<br />
|2012-04-22<br />
|27.6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rightful|Rightful Property}}<br />
|jysk<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/rightful1.1b.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13711-fan-mission-rightful-property-by-jysk-20120413/}}<br />
|2012-04-12<br />
|22.5<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]]<br />
|Bank Jobs<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sneak_destroy|Sneak & Destroy}}<br>(v2 EFX, 2022/11/16)<br />
|SeriousToni<br />
|{{Mirrorlink|http://minus.com/mVcf61n3G/1f}} {{Forumlink|http://forums.thedarkmod.com/topic/13706-fan-mission-sneak-destroy-by-serioustoni-beginners-contest-2012/}}<br />
|2012-04-11<br />
|147<br />
|Yes<br />
|Yes<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]] '''WINNER'''<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|houseoftheo|House of Theo}}<br />
|Theothesnopp<br />
|{{Mirrorlink|http://www.gamefront.com/files/21053391/houseoftheo__2__2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13242-fan-mission-house-of-theo/}}<br />
|2011-12-04<br />
|6.2<br />
|No<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|claw1_31|Dragon's Claw}}<br>(v1.31, 2020/11/02)<br />
|Bikerdude, Flanders (map assets)<br />
|{{Mirrorlink|http://www.gamefront.com/files/20948800/claw.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13181-fan-missiondragons-claw-by-b1k3rdude-31102011/}}<br />
|2011-10-31<br />
|98<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|antr|A Night to Remember}}<br>(v2.1, 2023/05/04)<br />
|Fieldmedic<br />
|New &rarr; {{Forumlink|http://forums.thedarkmod.com/topic/19452-a-night-to-remember/}} <br>Old &rarr; {{Forumlink|http://forums.thedarkmod.com/topic/13177-fan-mission-a-night-to-remember-by-fieldmedic-20111030/}}<br />
|2011-10-31<br />
|33<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Mansion/Estate <br> Horror<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thecreeps|The Creeps}}<br />
|Mortem Desino<br />
|{{Mirrorlink|http://www.gamefront.com/files/20939925/thecreeps.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13176-fan-mission-creeps-the-20111030-by-mortem-desino/}}<br />
|2011-10-30<br />
|61<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|blackbog|House in Blackbog Hollow}}<br />
|Stumpy<br />
|{{Mirrorlink|http://www.bookofages.co.uk/doom3/mods/blackbog.html}} {{Forumlink|http://forums.thedarkmod.com/topic/13172-fan-mission-house-in-blackbog-hollow-by-stumpy-20111028/}}<br />
|2011-10-28<br />
|12<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lstl|Let Sleeping Thieves Lie}}<br />
|Sir Taffsalot, Bikerdude<br />
|{{Mirrorlink|http://www.mediafire.com/?zkd1jn4lpwgioh9}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/13153-let-sleeping-thieves-lie-by-sir-taffsalot-bikerdude-20102011/}}<br />
|2011-10-20<br />
|13<br />
|No<br />
|<br />
|<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|samhain|Samhain Night}}<br>(v3.3, 2020/03/02)<br />
|PranQster<br />
|{{Mirrorlink|http://jdchoate.mcn.org/games/darkmod/samhain.zip}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/13127-fan-mission-samhain-night-on-bone-hill-by-pranqster-20111009/}}<br />
|2011-10-09<br />
|4.8<br />
|Yes<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|score_to_settle|A Score to Settle}}<br />
|Springheel<br />
|{{Mirrorlink|http://www.mediafire.com/?f3o7hm4h4ew7o3l}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12894-fan-mission-%2348-a-score-to-settle-by-springheel-20110701/}}<br />
|2011-07-01<br />
|135<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|siegeshop|Siege Shop}}<br>(v5.0 2020/09/07)<br />
|PranQster and Lowenz<br />
|{{Mirrorlink|http://jdchoate.mcn.org/games/darkmod/siegeshop.pk4}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12874-fan-mission-the-siege-shop-by-pranqster-20110626/}} {{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20559-the-siege-shop-07092020/}}<br />
|2011-06-26<br />
|32.2<br />
|Yes<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|alberic3|Alberic's Curse}}<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.gamefront.com/files/20459738/alberic.pk4}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12850-fan-mission-alberics-curse-by-b1k3rdude-20062011/}}<br />
|2011-06-20<br />
|29<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]] '''WINNER''' <br> T2 FM homage<br />
|Church/Cathedral<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|reap|Reap As You Sow}}<br />
|Fieldmedic<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12849-fan-mission-reap-as-you-sow-by-fieldmedic-20110619/}}<br />
|2011-06-19<br />
|52<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|Outdoor/Daylight <br> Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rake_off|Rake Off}}<br />
|Jesps<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12846-fm-rake-off-19-06-2011/}}<br />
|2011-06-19<br />
|8<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Selis Woderose series|Selis Woderose]] <br> [[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]] <br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Winter Harvest}}<br>(v2.0 2011/07/24 with Bikerdude)<br />
|ShadowHide<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12690-seasons-contest-entry-winter-harvest-by-shadowhide/}}<br />
|2011-05-08<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|Outdoor/Pagan<br />
|Spiders<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|fauchard1_1|Fiasco at Fauchard Street}}<br />
|Melan<br />
|{{Mirrorlink|https://rapidshare.com/files/460141132/fauchard.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12655-fan-mission-fiasco-at-fauchard-street-by-melan-20110501//}}<br />
|2011-05-01<br />
|62<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mandrasola|Mandrasola}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?2ox2nbhh796ne71}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12575-fan-mission-mandrasola-by-sotha-20110410/}}<br />
|2011-04-10<br />
|10<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left| Q4 Conversion: Yan's Test<br />
|Bikerdude<br />
|{{Mirrorlink|https://www.moddb.com/mods/the-dark-mod/addons/yantdm1-1}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12506-fan-mission-q4-map-conversion-yantdm1-280311/}}<br />
|2011-03-28<br />
|28<br />
|No<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|transaction|The Transaction}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?ux7mx79wumnvcb6}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12408-fan-mission-the-transaction-by-sotha-20110304/}}<br />
|2011-03-04<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|City Missions<br />
|Horror Themes, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|returntothecity|Return to the City}}<br>(v3.0 2015/01/03)<br />
|Melan, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10509-fan-mission-return-to-the-city-by-melan-20100110/}} {{Forumlink|1=http://www.ttlg.com/forums/showthread.php?t=130519/}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12390-fan-mission-return-to-the-city-v2-01032011/}}<br />
|2010-01-10<br />
|26<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]] <br> [[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]] '''WINNER''' <br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lockdown1_2_1|Lockdown}}<br />
|GameDevGoro Bikerdude Fidcal<br />
|{{Mirrorlink|http://www.fidcal.com/darkuser/missions/lockdown1_2_1.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12064-fm-lockdown-part-1-by-gamedevgoro-and-bikerdude-20101224/}}<br />
|2010-12-25<br />
|3<br />
|No<br />
|<br />
|Lockdown 1<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|flakebridge|Flakebridge Monastery}}<br />
|Jesps<br />
|{{Mirrorlink|http://www.file-upload.net/download-3024426/flakebridge.pk4.html}} {{Mirrorlink|http://rapidshare.com/files/434997519/flakebridge.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11991-fm-flakebridge-monastery-by-jesps/}}<br />
|2010-12-05<br />
|16<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Selis Woderose series|Selis Woderose]]<br />
|Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|knighton_manor|Knighton Manor, The}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?xrdts3j4t2qxre2}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11898-fan-mission-the-knighton-manor-by-sotha-20101109/page__view__getnewpost}}<br />
|2010-11-09<br />
|21<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cathedral|St Albans Cathedral}}<br>(v2.0 2014/06/11)<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.filefront.com/17464439/stac141.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16343-fan-mission-st-albans-cathedral-v20-11062014/}} {{Loot|FM:TDM_St_Alban's_Cathedral_-_Bikerdude}}<br />
|2010-11-01<br />
|67<br />
|No<br />
|<br />
|[[Fan_Mission_Series#St Alban series|St Alban]] <br />
|Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|swing1_2|Swing}}<br />
|Komag<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11660-vertigo-contest-entry-swing-by-komag-20100825/}} {{Loot|FM:TDM_Swing_-_Komag}}<br />
|2010-08-25<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Platforming/Jumping <br> Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|caduceus|The Caduceus of St. Alban}}<br>(v.1.5.5 2010/08/26)<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.filefront.com/17237609/stalban.pk4/}}{{Forumlink|http://forums.thedarkmod.com/topic/11644-the-caduceus-of-st-alban-vertical-fm-contest-entry-aug-8th-2010/}}<br />
|2010-08-23<br />
|11.3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#St Alban series|St Alban]] <br> [[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Church/Cathedral<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|somewhere1_1|Somewhere Above the City}}<br>(v1.1 2010/08/27)<br />
|grayman<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11619-vertical-contest-mission-somewhere-above-the-city-by-grayman-aug-20-2010/}} {{Loot|FM:TDM_Somewhere_Above_the_City_-_grayman}}<br />
|2010-08-20<br />
|11<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Tombs, Catacombs & Crypts<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|betrayal|Betrayal}}<br>(v.1.1, 2010/09/01)<br />
|Fieldmedic<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11605-betrayal-by-fieldmedic-20100817-summer-fm-vertical-contest-entry/}} {{Loot|FM:TDM_Awaiting_the_Storm_-_HappyCheeze}}<br />
|2010-08-17<br />
|12<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rift|Rift, The}}<br />
|Baddcog<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11599-vert-contest-mission-the-rift-by-baddcog-aug-15-2010/}}<br />
|2010-08-15<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Lost Civilizations<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|holetower|Illusionist's Tower}}<br />
|stumpy<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11541-illusionists-tower-by-stumpy-201085-summer-fm-vertical-contest-entry}} {{Forumlink|1=http://www.bookofages.co.uk/doom3/mods/holetower.html}} {{Loot|FM:TDM_Illusionist%27s_Tower_-_stumpy}}<br />
|2010-08-05<br />
|9<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Horror <br> Experimental<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|madmountain|Mad's Mountain}}<br />
|Jesps<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11510-fan-mission-mads-mountain-by-jesps-20100731}} {{Loot|FM:TDM_Lord_Dufford%27s_-_stumpy}}<br />
|2010-07-31<br />
|2<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Outdoor/Caves<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|glenham_tower|Glenham Tower, The}}<br />
|Sotha<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11423-fan-mission-the-glenham-tower-by-sotha-20100717}}<br />
|2010-07-17<br />
|5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]] '''WINNER'''<br />
|Castle/Fortress <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|pandoras_box|Pandora's Box}}<br />
|Jesps, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11381-fan-mission-pandoras-box-by-jesps20100711}} {{Loot|FM:TDM_Pandora%27s_Box_-_Jesps}}<br />
|2010-07-11<br />
|7<br />
|No<br />
|<br />
|<br />
|Pirate <br> Ship <br> Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|beleaguered_fence|Beleaguered Fence, The}}<br />
|Sotha<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11298-fan-mission-the-beleaguered-fence-by-sotha-20100623}} {{Loot|FM:TDM_The_Beleaguered_Fence_-_Sotha}}<br />
|2010-06-23<br />
|11<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|delivery|Special Delivery, A}}<br />
|Silencium18<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11247-fan-mission-a-special-delivery-by-silencium1820100612}} {{Loot|FM:TDM_A_Special_Delivery_-_Silencium18}}<br />
|2010-06-12<br />
|2<br />
|No<br />
|<br />
|<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|alchemist|Alchemist, The}}<br>(2010/06/04)<br />
|Sotha, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11170-fan-mission-the-alchemist-by-sotha-fidcal20100601}} {{Loot|FM:TDM_The_Alchemist_-_Sotha_%26_Fidcal}}<br />
|2010-06-01<br />
|27<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|storm|Awaiting The Storm}}<br />
|HappyCheeze<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11095-fm-awaiting-the-storm-by-happycheeze-20200522}} {{Loot|FM:TDM_Awaiting_the_Storm_-_HappyCheeze}}<br />
|2010-05-22<br />
|4<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sound_alert_trainer|Sound Alert & Blackjack Trainer}}<br />
|Dark Mod Team<br />
| <br />
|2010-05-14<br />
|0.2<br />
|No<br />
|<br />
|<br />
|Training <br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nhat3|No Honor Among Thieves}}<br>(v.4.0 EFX, 2021/08/18)<br />
|Goldchocobo, RailGun, Mortem Desino, Bikerdude<br />
|{{Mirrorlink|http://tinyurl.com/2a9mdcs}}{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10993-fan-mission-no-honor-among-thieves-20100429}} {{Loot|FM:TDM_No_Honor_Among_Thieves_-_Goldchocobo}}<br />
|2010-04-29<br />
|229.8<br />
|Yes<br />
|<br />
|<br />
|Church/Cathedral; City Missions; Outdoor/Pagan, Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|heartv2|Heart of Lone Salvation, The}}<br>(v.2.0, 2014/04/12)<br />
|Fidcal, Baddcog, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/10878-fan-mission-the-heart-of-lone-salvation-by-fidcal-baddcog-bikerdude-20100402/?p=213506}} {{Walkthrough|FM:TDM_The_Heart_of_Lone_Salvation_-_Fidcal_%26_Baddcog_%26_Bikerdude}} {{loot|FM:TDM_The_Heart_of_Lone_Salvation_-_Fidcal_%26_Baddcog_%26_Bikerdude}}<br />
|2010-04-02<br />
|41<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|dufford|Lord Dufford's}}<br />
|stumpy<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10868-fan-mission-lord-duffords-20100331}} {{Loot|FM:TDM_Lord_Dufford%27s_-_stumpy}}<br />
|2010-03-31<br />
|22<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|builders_influence|Builder's Influence, The}}<br>(2010/03/23)<br />
|Railgun, Springheel<br />
|{{Mirrorlink|http://www.fidcal.com/darkuser/missions/builders_influence.pk4}}{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/10811-fan-mission-the-builders-influence-20100320/}} {{Loot|FM:TDM_The_Builders_Influence_-_Railgun%26Springheel}}<br />
|2010-03-20<br />
|15<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|business3|Business as Usual}}<br>(v3.0 2013/01/19)<br />
|Bikerdude<br />
|{{Mirrorlink|1=http://rapidshare.com/files/335299431/business.pk4.html}}{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/10533-fan-mission-business-as-usual-by-b1k3rdude-14012010-christmas-fm-contest-entry/page__view__findpost__p__207055}}{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/14450-fan-mission-business-as-usual-v30-20130119/}}<br />
|2010-01-14<br />
|16.1<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Sewers<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sons_of_baltona_1|Sons of Baltona 1, The}}<br />
|Carnage<br />
|{{Mirrorlink|1=http://www.mediafire.com/?m4ywobjodm0}}{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10498-fan-mission-the-sons-of-baltona-1-by-carnage-20100109}}<br />
|2010-01-09<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]] / Baltona 1<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|living_expenses|Living Expenses}}<br />
|Sonosuke<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10451-fm-living-expenses-by-sonosuke-2-jan-10/page__view__findpost__p__205386}}<br />
|2010-01-02<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|trapped|Trapped!}}<br />
|RailGun<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10442-fm-trapped-by-railgun-dec-30/page__view__findpost__p__205092}}<br />
|2009-12-30<br />
|6<br />
|No<br />
|<br />
|<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|parcel|Parcel, The}}<br />
|Xonze<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10404-fm-the-parcel-by-xonze-dec-24/page__view__findpost__p__204459}}<br />
|2009-12-24<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|too_late|Too Late}}<br />
|Nielsen74<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10400-fm-too-late-by-nielsen74-24-dec-09/page__view__findpost__p__204396}}<br />
|2009-12-24<br />
|4<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thieves|Thieves}}<br />
|Silencium, RailGun, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10286-fm-the-thieves-nov-2509/}}<br />
|2009-11-26<br />
|9<br />
|No <br> [https://www.moddb.com/mods/the-dark-mod/addons/unofficial-thieves-efx Unofficial EFX Build]<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|patently_dangerous|Patently Dangerous}}<br>(v.2.0 EFX, 2021/01/03)<br />
|demagogue<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10125-fm-patently-dangerous-oct3109/page__view__findpost__p__199324/}}<br />
|2009-10-31<br />
|22.5<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Dark Mod Training Mission, The}}<br />
|TDM Team<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9932-fm-training-mission-17-oct-09/}}<br />
|2009-10-17<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|Training <br> Platforming/Jumping<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|crown_of_penitence|Crown of Penitence, The}}<br />
|Jesps<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9934-fm-crown-of-penitence-by-jesps-17-oct-09/}}<br />
|2009-10-16<br />
|12<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|chalice1_1|Chalice of Kings, The}}<br>(v.2.0, 2015/09/24) (Bikerdude and Xarg)<br />
|Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9935-fm-chalice-of-kings-by-fidcal-17-oct-09/}} {{Loot|FM:TDM_Chalice_of_Kings_-_Fidcal}}<br />
|2009-10-15<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|outpost|Outpost, The}}<br />
|angua, greebo<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9937-fm-the-outpost-by-angua-greebo-17-oct-09/}}<br />
|2008-12-23<br />
|2<br />
|No<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Mission 2: Tears of Saint Lucia, The}}<br>(v.3.0, 2017/02/14)<br />
|TDM Team<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10579-fan-mission-the-tears-of-st-lucia-20081021/page__view__findpost__p__207972}} {{Loot|FM:TDM_The_Tears_of_Saint_Lucia_-_jdude}} [https://www.youtube.com/watch?v=yrGxoi3LSGg Briefing]<br />
|2008-10-21<br />
|20.3<br />
|Yes (2.11)<br />
|Yes<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|Church/Cathedral<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|closemouthed_shadows|Closemouthed Shadows}}<br>(v.2.0, 2012/01/15)<br />
|LordSavage, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/13383-fan-mission-closemouthed-shadows-2008-reworked-for-tdm-107-20120115/}} <br />
|2008-09-21<br />
|2<br />
|No<br />
|<br />
|Closemouthed Shadows 1<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thiefsden|Thief's Den}}<br>(v.2.0, 2010/07/04)<br />
|Fidcal, greebo<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11347-fan-mission-thiefs-den-re-release-by-fidcal20100704}} {{Walkthrough|FM:TDM_Thief's_Den_-_Fidcal}} {{Loot|FM:TDM_Thief%27s_Den_-_Fidcal}}<br />
|2008-01-18<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|<br />
|}<br />
<br />
To see a speculative list of Upcoming Fan Missions, please visit: [[Upcoming Fan Missions]]<br />
<br />
== Table notes ==<br />
<br />
'''Links Key'''<br />
{|class="wikitable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2<br />
|-<br />
|[https://wiki.thedarkmod.com/images/b/be/Icon_forum.png https://wiki.thedarkmod.com/images/b/be/Icon_forum.png]<br />
|Link to discussion in Forums<br />
|-<br />
|{{Mirrorlink|}}<br />
|Misc. download mirror<br />
|-<br />
|{{Loot|}}<br />
|Loot list<br />
|-<br />
|{{Walkthrough|}}<br />
|Walkthrough<br />
|}<br />
<br />
----<br />
<br />
'''Mission Type Key'''<br />
<br />
''Bear in mind that individual FMs can have combinations of two or three of these overarching genres/themes, rather than just a single one.''<br />
<br />
{|class="wikitable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2<br />
|-<br />
|'''''Bank Jobs'''''<br />
|Fan mission involving a heist or other thievy action inside a local banking institution. Will often contain the outsmarting of security systems, gaining access to a safe and cracking its code.<br />
|-<br />
|'''''Castle/Fortress'''''<br />
|Fan mission involving a heist or other thievy action inside or outside a castle or fortress, either one that serves as a military garrison, or as someone's private residence. Frequently involves background characters from the nobility. <br />
|-<br />
|'''''City Missions'''''<br />
|Fan mission that is set mainly in the streets and public spaces of an urban area, such as a town or city. Though the player is most often out on the streets, these missions tend to also involve some degree of exploration and infiltration into private and public buildings alike.<br />
|-<br />
|'''''Church/Cathedral'''''<br />
|Fan mission set in and around religious buildings and institutions, such as churches, monasteries, cathedrals, church bureaus, church workshops, etc. Frequently involves [[Clergy/Builder_Characters|ecclesiastical characters]] from the TDM setting's [[Builders|Builder Church]].<br />
|-<br />
|'''''Experimental'''''<br />
|Fan mission which involves some creative design or gameplay element that isn't typical for the vast majority of TDM missions. FMs set in highly unusual environments, or with a puzzle-like nature, can fit under this label.<br />
|-<br />
|'''''Inn/Tavern'''''<br />
|Fan mission set mostly in and around an inn, tavern or shanty. Usually focused on robbing some rich guest, acquiring an item stored by the guest at the inn, or gathering intel at the inn.<br />
|-<br />
|'''''Jail/Prison'''''<br />
|Fan mission involving an escape from a prison (by the imprisoned player character), infiltration of a prison to gather intel from inmates or help an inmate escape the prison, etc.<br />
|-<br />
|'''''Lost Civilizations'''''<br />
|Fan mission focused on the exploration of ancient ruins, whether above ground or in deep subterranean caverns. Can often overlap with the ''Horror'' or ''Tombs, Catacombs & Crypts'' type of mission, but not necessarily.<br />
|-<br />
|'''''Horror'''''<br />
|Fan mission with an overt horror theme. Depending on the author's approach and intentions, it can focus on psychological horror, or horror based on danger from supernatural threats, or varying combinations of both. <br />
|-<br />
|'''''Mansion/Estate'''''<br />
|Fan mission involving a heist or other thievy action inside someone's private residence (a fancy house, a manor house) and its surrounding grounds. Frequently involves background characters from the nobility or the more affluent townsmen or citizens. <br />
|-<br />
|'''''Museum Heists'''''<br />
|Fan mission focusing on a heist in a museum, art gallery or other institution storing priceless artefacts, artworks, gemstone collections, etc.<br />
|-<br />
|'''''Outdoor/Caves'''''<br />
|Fan mission set in a mostly natural outdoor environment, but involving the exploration of natural caves and caverns.<br />
|-<br />
|'''''Outdoor/Daylight'''''<br />
|Fan mission set in a mostly outdoor environment, during the daytime (in contrast to the usual TDM missions, set at night time or early dusk).<br />
|-<br />
|'''''Outdoor/Pagan'''''<br />
|Fan mission set in a mostly natural outdoor environment, involving some presence of [[Pagans|pagan tribes]] from TDM's setting. Perhaps even pagan camps and settlements.<br />
|-<br />
|'''''Pirate'''''<br />
|Fan mission involving the presence of characters engaging in piracy or smuggling, and various related piratical themes. Can overlap with the ''Ship'' type of mission, but not necessarily.<br />
|-<br />
|'''''Platforming/Jumping'''''<br />
|Fan mission focusing on testing the player's movement, jumping and climbing skills, with or without equipment. <br />
|-<br />
|'''''Sewers'''''<br />
|Fan mission which involves the use of the city sewers or others sewers in some way, often as a stealthy means of entry or escape.<br />
|-<br />
|'''''Ship'''''<br />
|Fan mission which takes place aboard a vessel, in port or at sea, or otherwise involves ships to a great degree. Can overlap with the ''Pirate'' type of mission, but not necessarily.<br />
|-<br />
|'''''Thieves' Highway / Rooftop'''''<br />
|Fan mission involving a lot of movement and travel on the rooftops of a town or city (colloquially "The Thieves' Highway").<br />
|-<br />
|'''''Tombs, Catacombs & Crypts'''''<br />
|Fan mission involving the exploration of old tombs, catacombs and crypts, often for the purposes of treasure and artefact hunting. Can often overlap with the ''Horror'' or ''Lost Civilizations'' type of mission, but not necessarily.<br />
|-<br />
|'''''Training'''''<br />
|Fan mission label that is unique to the official Training Mission, an open-ended tutorial mission where players can practice and test their TDM gameplay skills at their own leisure, and to the smaller blackjacking-trainer FM, which focuses on practicing NPC knockouts by the player.<br />
|-<br />
|'''''Warehouse'''''<br />
|Fan mission which takes place in and around a warehouse, usually in some industrial area of a city, or at a port. <br />
|}<br />
<br />
----<br />
<br />
'''Contest Key'''<br />
<br />
GCC 09: [[Fan_Mission_Contests#2009 Grand Christmas Contest|Grand Christmas Contest 2009]]<br />
<br />
SVC 10: [[Fan_Mission_Contests#2010 Summer Vertical Contest|Summer Vertical Contest 2010]]<br />
<br />
CSC 11: [[Fan_Mission_Contests#2011 Community Seasons Contest|Community Seasons Contest 2011]]<br />
<br />
HSC 11: [[Fan_Mission_Contests#2011 Halloween Speed-build Contest|Halloween Speed-Build Contest 2011]]<br />
<br />
CBC 12: [[Fan_Mission_Contests#2012 Community Beginner Contest|Community Beginner Contest 2012]]<br />
<br />
CUC 13: [[Fan_Mission_Contests#2013 Community Unusual Contest|Community Unusual Contest 2013]]<br />
<br />
HSC 14: [[Fan_Mission_Contests#2014 Halloween Speed-build Contest|Halloween Speed-Build Contest 2014]]<br />
<br />
HSC 15: [[Fan_Mission_Contests#2015 Halloween Speed-build Contest|Halloween Speed-Build Contest 2015]]<br />
<br />
CCC 22: Christmas Connections Contest 2022<br />
<br />
----<br />
<br />
== Editing this table ==<br />
* Please only include playable missions that are fully released, not those currently in development or testing. Tutorials, demos, prefabs, etc. should be listed elsewhere. <br />
* A mission title may be listed in plain text as a record of release, or preferably a link to an information page or primary direct download.<br />
* List by release date descending (newest at the top).<br />
* If a fan mission only has a single mirror/host please consider adding additional mirrors.<br />
<br />
== See also ==<br />
* [[https://wiki.thedarkmod.com/index.php?title=Category:Official_FMs Fan missions]] An index of fan mission pages on this wiki.<br />
* [[https://wiki.thedarkmod.com/index.php?title=Category:Official_missions_(OMs) Official missions]] An index of Oficial mission pages on this wiki.<br />
* [[Fan Mission Series]] - An overview of all currently known series or campaigns of fan missions interconnected by their stories or characters. There are already plenty in TDM, and have been since its early days as an expandable game.<br />
* [[Mission recommendation discussions]] - An overview of past discussions on what FMs the community recommends to players looking for various challenges (difficulty, size, theme, setting, objectives, etc.).<br />
* [[Fan Mission Contests]] - An overview of past and present contests in Fan Mission creation, by members of the TDM community.<br />
* [[Upcoming Fan Missions]] - An overview of Fan Missions in development or tentatively planned. (''Do not'' edit the overview.)<br />
* [https://tdmdb.com/missions tdmdb.com] An external TDM mission database, which data is partly coming from this wiki page.<br />
<br />
{{general|sort=Fan Missions}}<br />
[[Category:Fan Missions]]<br />
[[Category:Official FMs| ]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=The_Dark_Mod_Gameplay&diff=30978The Dark Mod Gameplay2024-01-16T11:34:20Z<p>Datiswous: /* HUD (Heads-Up Display) */</p>
<hr />
<div>{{red|Updates for versions after v1.00 are listed in red, so players can quickly see changes to gameplay since their last read.}}<br />
<br />
Since The Dark Mod is designed to simulate the stealth gameplay of Thief, many things will be familiar to veteran Thief players. However, there are some features that works differently, and some things that are entirely new to TDM. <br />
<br />
If you've never played stealth games before, start with the [[Basics of Stealth Gaming]].<br />
<br />
Veteran stealth gamers can read the various sections below for more detail:<br />
<br />
= The Game Menus =<br />
<br />
Your experience with The Dark Mod will start with the Main Menu, where you may wish to adjust some settings before starting your first mission. If you already have saved games from a currently installed mission, you can load them from the Load/Save menu. <br />
<br />
{{red|Note: While missions remain compatible with all updates, your saved games will not necessarily work after updating, due to code changes.}}<br />
<br />
== Starting a Mission ==<br />
[[Image:new-mission210.jpg|thumb|The New Mission menu.]]<br />
<br />
# Select ''New Mission'' from the Main Menu.<br />
# Click "Download Missions" to see a list of missions available for download. Here you can also read details about, and look at screenshots from, the mission before downloading it. {{red|(1.04)}}<br />
# Select a Mission from the Available Mission list on the right (start with the [[Training Mission (OM)|Training Mission]] if this is your first time playing) and click ''Select Mission''.<br />
# TDM will install the mission and restart. When back in the menu, select ''Start this Mission''.<br />
# You will see a briefing that introduces the mission. Click ''Objectives'' to proceed.<br />
# Read your objectives, and choose your Difficulty Level. Then select ''Buy Equipment'' (or ''Start Mission'' in some missions).<br />
# After purchasing the desired equipment, hit ''Start Mission'' (The option to ''Drop'' starting items is available, but use this with caution... dropping some items may make a mission impossible to complete).<br />
# The Mission Loading screen should appear.<br />
<br />
To call up the Main Menu while playing, press {{ESC}}).<br />
<br />
See [[Installing and Running Fan Missions]] for more information.<br />
<br />
== Changing Settings ==<br />
<br />
# Select ''Settings'' from the Main Menu<br />
# Select the type of setting you wish to adjust: ''Audio'', ''Video'', ''Controls'', or ''Gameplay''.<br />
# The controls are set to defaults familiar to ''Thief'' players, however there are new keys/features that are worth reviewing.<br />
# There are difficulty settings for many things, including lockpicking and {{red| combat. (1.01)}} <br />
# New graphics settings have been added for better graphic quality and bloom. {{red|(1.03)}}<br />
# {{red|A new "AI Vision" option has been added. This controls how quickly AI realizes you are an enemy when they spot you. (2.0)}}<br />
<br />
== Objectives ==<br />
<br />
When you call up the Main Menu during a mission (by hitting {{ESC}}), you will see an option for "Objectives". This is where you can check your progress.<br />
<br />
Your objectives are also displayed after the Mission Briefing when you first start a mission.<br />
<br />
You can also check your Objectives without opening the menus. Hitting {{key|O}} will bring up your objectives on screen. You can use the mouse wheel to scroll up and down. Note that this method ''does not pause the game''! {{red| (1.01)}}<br />
<br />
When you complete an objective, a chime will sound and the message “Objective Completed” will be displayed at the top of the screen. <br />
<br />
When you have completed all objectives, the map will close and a “Mission Succeeded” screen will appear. Likewise, if you fail an objective or get killed, a “Failed Mission” screen will appear. You can restart a mission by clicking "Restart", or via the Main Menu.<br />
<br />
<br />
----<br />
<br />
= HUD (Heads-Up Display) =<br />
<br />
[[Image:hud.jpg|thumb|The Game Screen indicators.]]<br />
<br />
1. WEAPON ICON: An icon of your currently selected weapon is displayed in the bottom left corner of the screen.<br />
<br />
2. BREATH INDICATOR: When you are underwater, a small blue bar will appear above the lightgem. This bar shows how much air you have left. When the bar runs out, you'll begin to take damage. Surfacing or using a Breath Potion will restore your air bar.<br />
<br />
3. [[Lightgem|LIGHTGEM]]: The lightgem at the bottom of the screen indicates how visible you are. This is primarily based on how much light is hitting you, but also includes other factors, like whether you are crouched, moving, or have a weapon drawn. {{red|Being under water also reduces your lightgem. (1.03)}}<br />
<br />
The wings on either side of the gem works as a crouch indicator. When you are crouched, the wings 'crouch' down as well. {{red| (1.01) }}<br />
<br />
4. HEALTH INDICATOR: When you are injured, a small red health bar appears below the lightgem. It will remain visible until your health is fully replenished. Health potions and various types of food will replenish health.<br />
<br />
5. INVENTORY ICON: Your currently selected inventory object (or your loot total) is displayed as an icon in the bottom right.<br />
<br />
== Weapons ==<br />
<br />
Weapon hotkeys were changed at the last minute, so this list may need modifying.<br />
* {{key|`}} Put away weapons<br />
* {{key|1}} Blackjack<br />
* {{key|2}} Short Sword<br />
[[Image:arrows.jpg|thumb|A selection of [[Arrows|arrows]] you can choose from.]]<br />
* {{key|3}} Broadheads<br />
* {{key|4}} [[Water Arrows]]<br />
* {{key|5}} [[Fire Arrows]]<br />
* {{key|6}} [[Rope Arrows]] <br />
* {{key|7}} [[Gas Arrows]] <br />
* {{key|8}} [[Noise Arrows]]<br />
* {{key|9}} [[Moss Arrows]]<br />
* {{key|0}} [[Vine Arrows]] {{red| (1.07)}}<br />
<br />
''(Note that there has been a report that Linux users cannot use the {{key|`}} as it is mapped to the console. Linux users will need to choose a different key for 'Put away weapons'.)''<br />
<br />
== Inventory Objects ==<br />
Cycle through your inventory using the Inventory Prev/Next keys (default: {{key|[}} or {{key|TAB}} for next item and {{key|]}} for prev item). Inventory objects are stored in groups, so all keys will be stored together, all readables, etc. You can cycle through groups with the Prev/Next Group keys.<br />
<br />
To ‘use’ an inventory object, select it and then hit the Use key (default: {{key|U}}). This will execute commands; drink potions, throw mines, activate the spyglass, etc. To "use" objects on other objects (like using a key on a door), select the object in your inventory, highlight the thing you want to use it on, and hit Use.<br />
<br />
You can drop inventory items by hitting the Drop key (default: {{key|R}}) twice. See the section "Holding Junk Objects" for more information. Note that mappers may designate important inventory items as undroppable.<br />
<br />
You can clear the inventory selection by hitting the {{key| ← &nbsp; &nbsp; &nbsp;}} (backspace) key.<br />
<br />
To set hotkeys for your inventory items, please see [[Custom Settings for Players]].<br />
<br />
=== Inventory Object: Flashbomb === <br />
[[Image:equipment.jpg|thumb|The tools of a professional burglar.]]<br />
Activate a flashbomb by selecting it in the inventory and hit Use. Flashbombs detonate on impact. A short tap will cause it to fall and go off at your feet where it won't blind you. Holding down the Use key will throw the flashbomb farther away. If you use the Drop key to put the flashbomb down, it is not activated at all.<br />
<br />
A flashbomb will only be effective if it lands within the AI's FOV (Field Of View). If you look towards the point of impact, you'll also be blinded by it.<br />
<br />
AI are only blinded for a few seconds, and they are also alerted by the flash. This tool is most useful for getting away when you've been spotted, or for stunning an enemy before an attack.<br />
<br />
Flashbombs have no effect on the undead.<br />
<br />
=== Inventory Object: Holy Water ===<br />
<br />
Select holy water in the inventory and hit the Use key. This puts holy water into your water arrows, making them lethal to undead. The effect only lasts 30 seconds, so use it wisely.<br />
<br />
=== Inventory Objects: Keys === <br />
Some doors and chests require keys to open. To open a locked door, select the appropriate key by scrolling to it in your inventory and hit the Use key (or the Frob key if you wish) while highlighting the door. Note that certain types of door locks (like padlocks) might have to be frobbed separately.<br />
<br />
You can also assign a key to ''Cycle Keys'' to quickly cycle through all keys in your inventory. This is a very useful way to get to your keys quickly when you have a lot of other items in your inventory.<br />
<br />
=== Inventory Objects: Lockpicks === <br />
See [[#Lockpicking|Lockpicking]] for more information on lockpicks.<br />
<br />
=== Inventory Objects: Maps and Readables === <br />
<br />
In The Dark Mod, both maps and most readables (books, scrolls, etc) are inventory items. To read them, you scroll to the object in your inventory and then hit the Use key. The map or readable will be displayed on screen. Note that '''this does not pause the game'''. Unlike Thief, events continue to unfold around you, and you can be attacked while reading if you're not careful. You can see your environment around the edges of the map/readable, but make sure you find a safe place to read. With multi-page readables (distinguishable by folded corners on the page), use the next/prev inventory or next/prev weapon keys to scroll through pages. Hitting Use or Attack will put the readable away.<br />
<br />
The Map key (default: {{key|M}}) will also automatically bring up your map, if you have one. You can also define a readables key (default: not mapped) to cycle through any readables you have.<br />
<br />
=== Inventory Object: Mines === <br />
<br />
Place a mine by selecting it in your inventory and hitting Use. A short tap will drop the mine at your feet. Holding down Use will throw the mine farther away. After a few seconds, the mine is armed and {{red| starts making a distinct ticking sound (1.07) }}. Once you hear the ticking, it will go off if stepped on.<br />
<br />
{{red| Map authors can place a mine and arm it at mission start. It behaves the same as any mine you've thrown: it will explode on contact, and it can be disarmed. So don't assume that any mine you come across is safe to pick up. Listen for the tell-tale armed ticking sound. (1.07) }}<br />
<br />
If you use the Drop key to put the mine down, it won't be armed.<br />
<br />
Note that you can set armed mines off by shooting at them with arrows.<br />
<br />
You can disarm an armed mine by using a lockpick on it, the same as you would on a locked door. {{red| (1.07) }} Armed mines give off a distinct ticking sound, which stops when the mine is disarmed. After disarming a mine, you can frob it to put it into your inventory.<br />
<br />
=== Inventory Object: Player Lantern === <br />
<br />
Light is usually the bane of thieves everywhere, but there are times when you need just a little to make your way around. To this end, some thieves carry a covered lantern with a hood that can be closed to hide the light. To use the lantern, select it in your inventory and hit Use. This will lift the cover if the lantern is currently off, or close the cover if it is currently lit. There is also a hotkey for using the lantern; by default this is {{key|L}}. The lantern is clipped to your belt so your hands are free, and it can even be used underwater for short periods.<br />
<br />
Obviously using the lantern makes you clearly visible to any nearby opponents and NPCs (Non Playable Characters).<br />
<br />
=== Inventory Object: Potions ===<br />
<br />
Potions are used by selecting them in inventory and hitting Use. Healing potions will restore hit points (the effect is somewhat gradual). Breath potions refills the player's breath meter, allowing them to stay underwater longer.<br />
<br />
=== Inventory Object: Spyglass === <br />
<br />
A good Thief scouts ahead. To use the spyglass, select it in your inventory and hit Use. Also, you can use {{key|G}} as a shortcut. You can use the next/prev weapon keys to zoom in and out. You cannot use weapons or frob objects while using the spyglass.<br />
<br />
= Movement =<br />
<br />
Movement in The Dark Mod is not that different from Thief. You can run, walk, or creep, as well as any of the three while crouching. The faster you move, the more noise you make.<br />
<br />
== Climbing ==<br />
<br />
In addition to ladders and ropes, many missions allows you to climb vines, pipes and chains.<br />
<br />
Move or jump onto a ladder or vines to "attach" to them. Moving "forward" will move in the direction of your view, be it up, down or to the side. "Back" will reverse, and you may strafe to the side. Move away or jump off to detach.<br />
<br />
Holding crouch will let you slide down a rope or ladder. Release to stop sliding, or hold it down to slide all the way to the bottom.<br />
<br />
=== Swinging on Ropes ===<br />
<br />
Tapping the "attack" key while on a rope or chain will cause the rope to swing forward. You can actually gain more momentum by continuing to tap it every time you start swinging forward (think of it as swinging your legs forward on a swing). This can allow you to jump off the rope and grab ledges that would otherwise be unreachable).<br />
<br />
Note that the further down the rope you are, the more distance you can travel when swinging (just like a real rope).<br />
<br />
== Mantling ==<br />
There are two different ways to mantle (pull yourself up onto ledges) in The Dark Mod. One is by holding down the Jump key, which Thief players will be familiar with. There is also a specific key for mantling (default: {{key|<br />
C}}), so that failing to mantle will not result in jumping and making noise. Ideally there should be no difference in these methods, but occasionally one method will work when the other will not.<br />
Mantling is affected by where you are looking, so a successful mantle is more likely if you are looking directly at the edge of the object you wish to climb. To climb onto a chair, look down at the seat then press the mantle control. This means you can clamber over relatively low but awkward obstructions and even select one ledge above/below another.<br />
<br />
You cannot mantle while carrying a junk object or a body.<br />
<br />
{{update|2.07|Mantling different height objects happens at different speeds}}<br />
<br />
= Interacting With Your Environment =<br />
<br />
The Dark Mod gives you far more flexibility than previous Thief games when it comes to interacting with things.<br />
<br />
== Manipulating Held Objects ==<br />
This is one area that works quite differently from the Thief series. "Held Objects" (anything that you can carry that doesn’t go into your inventory, like chairs, candles, or bodies) are held out in front of you when frobbed. Unlike in Thief, they take up physical space, and can be used to push or manipulate other objects. They can also bump into other objects, making noise (or being knocked out of your hands), so be careful.<br />
<br />
Objects in the game world that gets highlighted when looked at can be picked up. To grab an object, frob ( right mouse button {{RMB}} ) it as normal. The object will stop being highlighted, and any weapons you had selected will lower. At this point, you can use the next/prev weapon keys (default: mousewheel up/down) to move the object closer/further away from you, and moving your mouse around will move the object.<br />
<br />
The heavier the object, the slower it moves, so you may notice a ‘lag’ if you turn quickly with heavy objects. It can take a while to get used to this.<br />
<br />
To drop an object, hit the Drop key (default: {{key|R}}). By crouching and angling your view downwards gently, you'll find that you can easily set down objects without making noise. You can also throw a held object by hitting the Attack key. Tapping the Attack key throws the object a short distance; holding the Attack key down and releasing it will throw it further away.<br />
<br />
To rotate a held object, hold down the {{key|Z}} key or middle mouse button, and move your mouse. (By default, horizontal movement of the mouse yaws the object around the vertical axis, and vertical movement pitches the object up and down. Holding down the Run key makes horizontal mouse movement roll the object around the forward axis.) This can be useful for replacing objects that have been knocked over, or for placing moveable objects in creative ways (like putting a plank over a gap, or stacking chairs).<br />
It is possible to “drop” inventory items into your hands, where they can be manipulated as if they were held objects. Select the object in your inventory, and hit the Drop key {{key|R}}. The object will appear in front of you like a held object, and you can rotate it, set it down, etc. To put it back into your inventory, you must "use" the item again ({{key|U}}) or scroll to the next inventory item ({{key|TAB}} or {{key|[}}/{{key|]}}).<br />
[[Image:candles6.jpg|thumb|[http://www.youtube.com/watch?v=922ArtrKgC4 Click to see TDM candles in action.] ]]<br />
AI will hear junk objects that are dropped or banged around. It takes some skill to pick up objects on a crowded table without knocking them into each other. Remember than an object moves to the center of the screen when you pick it up. If you are looking slightly above the object, it will jump up to center screen (usually a good thing). If you're looking slightly below the object, it will jump down, banging whatever surface it rests on (a bad thing). A little practice may be required to smoothly and quietly sort through objects.<br />
<br />
Some objects that are too heavy to lift may still be movable (like large crates). Walking or running into such objects may (mapper's choice) push them along the ground.<br />
<br />
=== Held Objects: Candles ===<br />
<br />
Lit candles can be frobbed and carried around to light your way (obviously you will be easily spotted while carrying a lit candle). They can also be used to light flammable objects like other candles or torches. Click the caption on the right for a demonstration.<br />
<br />
Candles can be extinguished by water, or you can pinch them out by picking them up and clicking the Use key. (Note that this method can also be used on some movable lanterns). {{red|Candles will usually go out after a few seconds if they get knocked over. (1.06) }}<br />
<br />
Be aware that multiple light sources can cause a significant drain on your framerate. If you go around a room lighting six or seven new candles, don't be surprised if your framerate drops significantly.<br />
<br />
=== Held Objects: Bodies ===<br />
<br />
Bodies work differently than most other objects. There are two ways to deal with dead or unconscious bodies in The Dark Mod. You can both drag them and carry them.<br />
<br />
To drag a body, you must ‘frob’ it (which probably requires crouching), and then move your mouse around. The body will drag along with you until you frob it again or the body gets stuck on something. <br />
<br />
This is not the most graceful way of moving bodies and is not recommended for long distances. Bodies can catch on things and get pulled out of your hands. It can be useful for quickly shifting a body into a shadow, however. You can even move individual limbs to put a flailing arm back into a shadow.<br />
<br />
You can also carry a body over your shoulder. While a body is being dragged, hitting the Use button will lift it up over your shoulder. While carrying a body you move more slowly and cannot use weapons or inventory objects (though you can open doors). When you are ready to drop the body, hit Use again. If there is not enough room, you will hear a grunt and nothing will happen. Back up a bit and try again. When you drop a body, it will be the opposite orientation from the way you picked it up (if a body is face-up when you lift it, it will be face-down when you drop it). This allows you to easily search a body for keys or other objects.<br />
<br />
=== Held Objects: Food ===<br />
<br />
Some food can be eaten. When holding a piece of food (such as an apple) hit the "use" key. If the food is edible, you will 'eat' it. Discard any left-overs. Some of the healthy food will heal you by 1 HP.<br />
<br />
== Doors == <br />
You can interrupt a door opening or closing by frobbing it again. Frobbing a moving door stops it, allowing you to open a door just a crack to peer beyond.<br />
<br />
You can lean into a door (use the lean left/right keys) to press your ear up against it and hear what's on the other side. Note that while you're concentrating on what's beyond the door you'll be less able to hear the sounds in the room you're currently in.<br />
<br />
Some doors or chests are locked and require keys (or lockpicks, see below) to open. To open a locked door, select the appropriate key by scrolling to it in your inventory and hit the Use key (or the Frob key if you wish) while highlighting the door. Note that certain types of door locks (like padlocks) might have to be frobbed separately.<br />
<br />
Depending on how important a specific door is, the mapper can choose to set flags on it. Check out the [[#AI_Behaviour| AI Behaviour]] section, for details on how the AI responds in such cases.<br />
<br />
== Lockpicking ==<br />
You will definitely want to practice lockpicking in the Training Mission before trying a real map. Just reading the instructions is probably not enough to get the hang of it. <br />
<br />
There are two types of lockpicks, 'triangle' and 'snake'. To begin, you must have the correct lockpick selected in inventory. If you do not, you will see a red flash behind the lockpick icon when you frob the locked door. To pick a lock, move close enough to highlight the door and hold the Use key. You will start to hear a sequence of clicks, and see the door handle (or lock pin) jiggle in sync.<br />
<br />
The clicks are a random pattern. At the end of the pattern is a brief period of silence, then the pattern will begin again. To be successful you must hit the Attack key (or release the Use key if you prefer) at the start of that silence. If you hit the Attack key at the wrong time there is a dull 'fail' sound and the pattern begins again. Your goal is to learn the sequence of clicks so that you can anticipate when it will end. This requires concentration.<br />
<br />
Some locks are more difficult than others and have multiple pins (which may require switching lockpicks). You can make lockpicking harder or easier in the Settings Menu, by adjusting how much silence there is between each pattern (the more silence, the easier it is to react in time). Setting Lockpicking to "Auto" will make locks open automatically after the pattern repeats 3 times.<br />
<br />
{{red| Armed mines can be disarmed by lockpicking them. Afterward, they can be frobbed and put into inventory. Either lockpick type can be used. (1.07) }}<br />
<br />
== Chests ==<br />
It can sometimes be a little awkward frobbing items inside deep chests. Leaning forward (or even sideways) will usually help.<br />
<br />
If you get too close to a chest, you can sometimes get in the way of the lid opening or closing. Back up a little if the lid is not moving as expected.<br />
<br />
<br />
----<br />
<br />
= Combat =<br />
<br />
There are a number of ways that combat is different in The Dark Mod.<br />
<br />
Keep in mind that you are not a warrior. Guards are generally better trained than you are, and while you might win a few one-on-one battles, you will almost certainly die if facing two guards at once.<br />
<br />
== Blackjacking ==<br />
<br />
[https://www.youtube.com/watch?v=V31S7w4qBcE https://img.youtube.com/vi/V31S7w4qBcE/mqdefault.jpg]<br />
(Youtube demonstration)<br />
<br />
Your blackjack is more effective if your opponent is relaxed and not expecting trouble.<br />
<br />
You must hit an AI on the head to knock them out. Hitting an AI anywhere else will simply alert them. For best results, don't get too close to the AI, or you may hit them with your elbow instead of your blackjack.<br />
<br />
'''You can successfully knock out:'''<br />
<br />
'''1. Unarmed civilian AI from any direction, any time.'''<br />
<br />
'''2. Bare-headed guards from any direction when relaxed, or from behind when alert and/or their weapon is out.'''<br />
<br />
'''3. Helmeted guards from behind when relaxed (helmeted guards cannot be knocked out when alert and/or when their weapon is out).'''<br />
<br />
All armed AI are harder to knock out when the AI has drawn a weapon, because they are assumed to be alert and ready for you. Either they have searched for you or been warned by a friend that something is wrong.<br />
<br />
The blackjack does a small amount of damage, so you could theoretically beat someone to death with it, if you have a lot of time on your hands.<br />
<br />
Undead and some animals cannot be knocked out with the blackjack.<br />
<br />
{{update|1.01|Certain heavy-duty helmets make their wearer immune to the blackjack. These can be identified by a face grill and a low back, which protects the base of the neck.}}<br />
<br />
'''Note:''' the blackjack makes an overhead swing, so if there is something low in the way (like a doorframe) you might hit it instead of your target, especially if you are looking upwards.<br />
<br />
== Melee Combat ==<br />
[[image:combat1.jpg|thumb|A guard winds up for an overhead attack]]<br />
There is a combat arena in the Training Map for practicing combat. After a few rounds you will have a much better feel for how it works.<br />
<br />
{{update|1.01|Different AI have different skill levels (novice, trained, skilled) when it comes to combat. An armed commoner will not fight as well as an elite guard. You can also change the overall combat difficulty in the Settings menu.}}<br />
<br />
You can use your shortsword to attack an enemy, as well as block enemy weapons. Attacking a relaxed enemy (ie, backstabbing) does extra damage. <br />
To attack, hit the Attack key. This will make a left-to-right, slashing attack. If you move the mouse while clicking the Attack key, you can select other kinds of attacks. Moving the mouse down will cause an overhead swing. Moving the mouse up will cause a thrust attack. Moving the mouse left or right will cause a right-to-left or left-to-right slash, respectively. <br />
<br />
AI can parry your swings (unless they are using a dagger), and they will do this more easily if you keep using the same kind of attack, so you will want to mix it up. <br />
<br />
The amount of damage you do varies depending on where you hit. Hitting an AI in the head will do more damage than hitting their arm or leg. Armour also plays a factor. Your sword can't penetrate plate armour, and even chainmail or leather armour will provide the AI some protection.<br />
<br />
To block an enemy strike, hold the Parry key. You must hit the parry key ''after'' the AI starts winding up for their attack. Too early and the AI will see the block and choose a different attack. Obviously, you must also be facing the AI...holding up a block while looking off to the side won't help.<br />
<br />
If you are using Manual Parry (select in the Settings menu), you need to select the appropriate block. If your opponent is making an overhead attack, you must select an overhead block. Select blocks by moving the mouse while holding the Parry button down, just as you would for an attack. <br />
<br />
If you successfully block an attack or damage your opponent the AI will be temporarily "flat-footed". They can still attack and defend, but they will not chase you if you turn to run. The effect lasts only a second or two, but that can sometimes be enough time to give you a head start.<br />
<br />
The trick to a successful combat is timing. You need to try to anticipate your opponent's attacks, and then launch counter-attacks before he has a chance to parry.<br />
<br />
AI will usually try to flee if they are badly wounded.<br />
<br />
{{update|1.07|Different weapons do different amounts of damage when they hit you. A longsword is one of the most damaging weapons, while short swords do less damage and daggers even less.}}<br />
<br />
'''Note:''' It is possible to hit walls or ceilings instead of your target. Keep track of how much space is around you when choosing your swing.<br />
<br />
== [[Arrows|Missile Combat]] ==<br />
<br />
Your broadhead arrows cannot penetrate plate armour, and will do less damage if they hit chain or leather armour. The best result is to hit unarmoured flesh. A single arrow to the head will kill a relaxed guard. Alert guards are assumed to be taking measures to minimize the damage from incoming arrows. <br />
<br />
If you are hit while trying to fire an arrow, your attack will be canceled.<br />
<br />
AI will switch to missile combat if they can see you but cannot reach you. If they don't have a missile weapon, they will become angry and start throwing things at you.<br />
<br />
AI archers will fire arrows at you. Some AI are better shots than others. When you get within melee range of an archer, they will pull out their melee weapon to fight with it instead.<br />
<br />
<br />
----<br />
<br />
= AI =<br />
<br />
== AI Senses ==<br />
<br />
AI can see you if your lightgem is not totally black. The longer you're in their field of vision and the closer you are, the more likely they are to notice you and come and investigate. <br />
<br />
Some AI have hoods, eyepatches, or other things that block their field of vision. These can be exploited by clever thieves. {{red| (1.01) }}<br />
<br />
AI can hear your footsteps, and noise that you make from banging into things or dropping objects. {{update|2.0|They can also hear the sound of falling bodies, so be careful where you knock out opponents.}}<br />
<br />
AI can also feel you if you bump into them, or vice versa.<br />
<br />
TDM AI are fairly intelligent about searching. They can identify good hiding spots and will check them out first.<br />
<br />
When AI become alert, their senses get slightly better. A shadow that is sufficient to hide you from a relaxed AI might not be enough for an AI that is alert and actively looking for trouble.<br />
<br />
AI do not forget about you after giving up the search. They remain in an alert state, with heightened senses and their weapons out.<br />
<br />
== AI Behaviour ==<br />
<br />
AI don't necessarily patrol the exact same route every time, or stand for the same amount of time at every spot they go to. Mappers can add as much randomness to the AI as they wish.<br />
<br />
AI need to see evidence in order to react to it. If a bloodstain or missing loot is in shadow, an AI won't notice it.<br />
<br />
AI can react to missing objects, but only if mappers set the objects as noteworthy.<br />
<br />
AI become suspicious if they find a weapon lying around. Finding blood or a body will cause them to go fully alert.<br />
<br />
AI can hear broadhead arrow impacts. If you shoot an arrow and it hits a wall nearby, the AI will notice. AI will also react to water arrows if you fire them too close (or if you hit an AI with one). <br />
<br />
AI do not yet notice moss arrow impacts, broken objects or moss patches. These things will likely cause minor alerts in the future.<br />
<br />
{{update|1.06| AI can notice and comment on lights that have been put out, and may relight ones that the mapper has set as important. AI will start to become suspicious of an intruder if this happens frequently.}}<br />
<br />
{{update|1.07| AI will notice and be suspicious of arrows that are left sticking into things.}}<br />
<br />
{{update|1.07| AI that see a rope from a rope arrow will walk over to investigate, and will treat it as evidence of an intruder.}}<br />
<br />
{{update|1.07| AI can notice important doors (set by mapper) that have been left open, and will start to become suspicious.}}<br />
<br />
{{update|1.08| AI will react to objects thrown at them and may take damage. AI can be KO'd by heavy objects hitting them in the head. }}<br />
<br />
{{update|1.08| The death cry of AI killed by surprise will now be heard by nearby AI (previously they ignored it)<br />
<br />
{{update|2.00| AI will turn towards doors that they see opening, and may get suspicious if they don't see anyone responsible.}} <br />
<br />
AI will look for 2s at a door opening in their FOV, unless they’re in combat mode.<br />
<br />
An AI will not look at an open door if they were the last one to handle it.<br />
<br />
{{update|2.03| Grabbing a closing door will cause the AI who closed it to turn and investigate, unless you let the door close almost all the way (<20% open?). }}<br />
<br />
{{update|2.03| AI coordinate with each other during searches. }}<br />
<br />
{{update|2.04|AI notice dropped weapons. }}<br />
<br />
===For an unsuspicious door:===<br />
<br />
The door starts to open, stims the AI, but the AI ignores it, because the door is < 20% open. One second later, when the next stim hits him, if the door is < 20% open, he'll continue to ignore it. Otherwise, he'll look at the door for 2 seconds. Non-suspicious doors can be cracked open indefinitely w/o nearby AI noticing.<br />
<br />
===For a suspicious door:===<br />
<br />
<br />
Allow player to crack open (< 20%) a suspicious door to peek out w/o grabbing the attention of a nearby AI. After 5s, the AI will notice the cracked open door.<br />
<br />
When the door is >20%, it stims the AI, and the AI immediately starts to look at it for 2 seconds. 1 to 1.5 seconds after the stim, while looking at the door, if no friendlies are apparent, the AI will bark and walk toward the door and begin his search.}}<br />
<br />
== See Also ==<br />
<br />
[https://www.youtube.com/playlist?list=PL5L2GxHb3sL3mM03CWmqfD1_gg5GAwh9c Gameplay tips] - A video playlist at the official Dark Mod YouTube channel. Various tips on what to look out for during gameplay and how to improve your grasp on various gameplay mechanics.<br />
<br />
[[Category:Gameplay| ]]<br />
[[Category:Gameplay concepts and settings]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Lightgem&diff=30977Lightgem2024-01-16T11:31:18Z<p>Datiswous: some more text</p>
<hr />
<div><!-- <br />
<br />
Page text made by forum user Fiver: https://forums.thedarkmod.com/index.php?/topic/22327-how-can-i-create-an-account-on-the-tdm-wiki/&do=findComment&comment=491145 <br />
<br />
--><br />
[[File:Hud.jpg|right|thumb|The lightgem is shown as part of the [[The_Dark_Mod_Gameplay#HUD_(Heads-Up_Display)|HUD]]:<br/>2. A breath indicator when underwater<br/>3. The lightgem itself<br/>4. A health indicator.<br/>Two wings flank the lightgem indicating if the player is crouching.]]<br />
<br />
The '''lightgem''' is a light indicator on the [[The_Dark_Mod_Gameplay#HUD_(Heads-Up_Display)|HUD]] and an important part of [[The Dark Mod Gameplay]].<br />
<br />
The lightgem itself indicates how visible the player is. The visibility is based on how much light is hitting the player, but also depends on whether you are crouched, moving, have a weapon drawn, or being under water.<br />
Use of the lightgem can be practiced in the [[Training Mission (OM)|Training Mission]], primarily in the room Stealth & Shadows."<br />
<br />
The wings on either side of the gem indicates when the player is crouching.<br />
<br />
Below the lightgem is a health indicator. When the player is injured, a small red bar appears below the lightgem. The bar shows how much health you have left and decreases from right to left. Health potions and various types of food will replenish health. The bar remains visible until the health is fully restored.<br />
<br />
Above the lightgem is a breath indicator. When the player is under water, a small blue bar appears above the lightgem. The bar shows how much air you have left and decreases from right to left. When the bar runs out, you'll begin to take damage. Surfacing or using a Breath Potion will restore your air bar.<br />
<br />
The lightgem is an object that the player always carries and is not visible in the inventory.<br />
<br />
A user can disable the lightgem and the wings in Settings - Gameplay - General - Hide Lightgem. The health indicator and breath indicator will remain visible.<br />
<br />
[[Category:Equipment]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30974Material Files2024-01-15T14:23:37Z<p>Datiswous: typo</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the [[Surface Types|surface type]] is defined as well.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
<br />
== Optional: Customizing frob-highlight ==<br />
<br />
By default frob highlight is done automatically by the engine. It's also possible to customise this.<br />
<br />
For info [https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/ see this forum post].<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
* Youtube video: [https://www.youtube.com/watch?v=lFYJkBssMbM Getting textures into Dark Radiant and The Dark Mod – a short tutorial] (ignore the part about ambient stage)<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30973Material Files2024-01-15T14:22:58Z<p>Datiswous: /* Special Keywords */ customizing frob-highlight</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the [[Surface Types|surface type]] is defined as well.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
<br />
== Optional: customizing frob-highlight ==<br />
<br />
By default frob highlight is done automatically by the engine. It's also possible to customise this.<br />
<br />
For info [https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/ see this forum post].<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
* Youtube video: [https://www.youtube.com/watch?v=lFYJkBssMbM Getting textures into Dark Radiant and The Dark Mod – a short tutorial] (ignore the part about ambient stage)<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30972Material Files2024-01-15T13:17:41Z<p>Datiswous: /* See also */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the [[Surface Types|surface type]] is defined as well.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
* Youtube video: [https://www.youtube.com/watch?v=lFYJkBssMbM Getting textures into Dark Radiant and The Dark Mod – a short tutorial] (ignore the part about ambient stage)<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30971Material Files2024-01-15T13:15:09Z<p>Datiswous: /* See also */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the [[Surface Types|surface type]] is defined as well.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
* [https://www.youtube.com/watch?v=lFYJkBssMbM Getting textures into Dark Radiant and The Dark Mod – a short tutorial] (ignore the part about ambient stage)<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Lightgem&diff=30970Lightgem2024-01-15T11:48:02Z<p>Datiswous: Created page Lightgem made by forum user Fiver</p>
<hr />
<div><!-- <br />
<br />
Page text made by forum user Fiver: https://forums.thedarkmod.com/index.php?/topic/22327-how-can-i-create-an-account-on-the-tdm-wiki/&do=findComment&comment=491145 <br />
<br />
--><br />
[[File:Hud.jpg|right|thumb|The lightgem is shown as part of the [[The_Dark_Mod_Gameplay#HUD_(Heads-Up_Display)|HUD]]:<br/>2. A breath indicator when underwater<br/>3. The lightgem itself<br/>4. A health indicator.<br/>Two wings flank the lightgem indicating if the player is crouching.]]<br />
<br />
The '''lightgem''' is a light indigator on the [[The_Dark_Mod_Gameplay#HUD_(Heads-Up_Display)|HUD]] and an important part of [[The Dark Mod Gameplay]].<br />
<br />
The lightgem itself indicates how visible the player is. The visibility is based on how much light is hitting the player, but also depends on whether you are crouched, moving, have a weapon drawn, or being under water.<br />
<br />
The wings on either side of the gem indicates when the player is crouching.<br />
<br />
Below the lightgem is a health indicator. When the player is injured, a small red bar appears below the lightgem. The bar shows how much health you have left and decreases from right to left. Health potions and various types of food will replenish health. The bar remains visible until the health is fully restored.<br />
<br />
Above the lightgem is a breath indicator. When the player is under water, a small blue bar appears above the lightgem. The bar shows how much air you have left and decreases from right to left. When the bar runs out, you'll begin to take damage. Surfacing or using a Breath Potion will restore your air bar.<br />
<br />
The lightgem is an object that the player always carries and is not visible in the inventory.<br />
<br />
A user can disable the lightgem and the wings in Settings - Gameplay - General - Hide Lightgem. The health indicator and breath indicator will remain visible.<br />
<br />
[[Category:Equipment]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30969Material Files2024-01-15T11:04:12Z<p>Datiswous: /* Full example */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the [[Surface Types|surface type]] is defined as well.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
<br />
<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30968Material Files2024-01-15T11:00:30Z<p>Datiswous: Moved Deprecated stages to bottom</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the surface type is defined as well. [[Surface Types|Surface types]] are used to tell what sound to play when you walk on a surface.<br />
<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
<br />
<br />
<br />
== Deprecated stages ==<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30967Material Files2024-01-15T10:53:34Z<p>Datiswous: /* Deprecated stages */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the surface type is defined as well. [[Surface Types|Surface types]] are used to tell what sound to play when you walk on a surface.<br />
<br />
=== Deprecated stages ===<br />
<div class="mw-collapsible mw-collapsed" style="width: 70%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Ambient stages ====<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Frob stages ====<br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30966Material Files2024-01-15T10:23:46Z<p>Datiswous: /* Deprecated stages */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the surface type is defined as well. [[Surface Types|Surface types]] are used to tell what sound to play when you walk on a surface.<br />
<br />
=== Deprecated stages ===<br />
<div class="mw-collapsible mw-collapsed" style="width: 50%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Ambient stages ====<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Frob stages ====<br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
</div><br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30965Material Files2024-01-15T10:21:26Z<p>Datiswous: /* Deprecated stages */ hide Deprecated stages</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the surface type is defined as well. [[Surface Types|Surface types]] are used to tell what sound to play when you walk on a surface.<br />
<br />
=== Deprecated stages ===<br />
<div class="mw-collapsible mw-collapsed" style="width: 50%"><br />
As of TDM 2.08, none of the ambient stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Ambient stages ====<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
} <br />
</pre><br />
<br />
<pre><br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
</pre><br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
</div><br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed.<br />
<div class="mw-collapsible-content"><br />
<br />
==== Frob stages ====<br />
<br />
<pre><br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
</div><br />
<br />
<br />
Click '''Expand''', for more details.<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=User:Datiswous&diff=30964User:Datiswous2024-01-15T10:02:57Z<p>Datiswous: </p>
<hr />
<div><div class="mw-collapsible mw-collapsed" style="width: 30%"><br />
This text is not collapsible; but the next is collapsible and hidden by default:<br />
<br />
<div class="mw-collapsible-content">bla bla bla</div><br />
</div><br />
<br />
<br />
"Talk" links next to "Datiswous" appear {{red|red}}.<br />
<br />
<br />
https://www.mediawiki.org/wiki/Help:Templates<br />
<br />
= Secrets of Waterdeep =<br />
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}<br />
<br />
{{infobox|text= Bla Bla Bla}}<br />
<br />
<br />
== Table test ==<br />
<br />
An alternative way to create and edit tables via use of a template.<br />
<br />
<nowiki><br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
</nowiki><br />
<br />
<br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
<br />
==== "Items" subfolder ====<br />
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}"><br />
<br />
{|class="wikitable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
<br />
|-<br />
|''None''<br />
|N/A<br />
|atdm:item_base<br />
|''Don't use. The base class for items the player can pick up.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|<br />
|TBA<br />
|atdm:item_book_red1<br />
|''A red Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_book_t1<br />
|''Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_paper1<br />
|''Paper''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_scroll1<br />
|''Scroll''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:map_base<br />
|''Don't use - base class for all map items.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|'''Custom'''<br />
|N/A<br />
|atdm:grabable_custom_item<br />
|''A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:moveable_custom_item<br />
|''A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:static_custom_item<br />
|''A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.''<br />
|<br />
|-<br />
|}<br />
</div><br />
<br />
<br />
<br />
==Controlling Where the Player Starts==<br />
<br />
{{infobox|text= The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}<br />
<br />
<br />
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed" style="width: 40%;"><br />
The following text is originally written in 2011 by Grayman and is now outdated:<br />
<br />
<br />
<div class="mw-collapsible-content">This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.<br />
<br />
===mainmenu_briefing.gui===<br />
Obtain a new version of mainmenu_briefing.gui from this location:<br />
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)<br />
<br />
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.<br />
<br />
In the sample gui, you'll see these new definitions:<br />
<br />
*windowDef StartPointBox1<br />
*windowDef StartPointBox2<br />
*windowDef StartPointBox3<br />
*windowDef StartPointText1<br />
*windowDef StartPointText2<br />
*windowDef StartPointText3<br />
<br />
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.<br />
<br />
StartPointBoxN defines a checkbox to the left of the text describing starting point N.<br />
<br />
Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.<br />
<br />
===What the Player Sees===<br />
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.<br />
<br />
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.<br />
<br />
When the player starts the mission, he'll start at the selected location.<br />
<br />
If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.<br />
<br />
===Making It Your Own===<br />
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:<br />
text "Scale the north wall and enter through an attic window."<br />
.<br />
.<br />
.<br />
text "Use the secret tunnel into the cellar."<br />
.<br />
.<br />
.<br />
text "Slide down the coal chute."<br />
<br />
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:<br />
set "gui::startSelect" "PlayerStart1";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart2";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart3";<br />
<br />
That's all you need to do to offer three starting points.<br />
<br />
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.<br />
<br />
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.<br />
<br />
For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:<br />
<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox4::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText4::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.<br />
<br />
Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly. <br />
<br />
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]<br />
</div><br />
</div></div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=User:Datiswous&diff=30963User:Datiswous2024-01-15T10:02:21Z<p>Datiswous: </p>
<hr />
<div><div class="mw-collapsible mw-collapsed" style="width: 40%"><br />
This text is not collapsible; but the next is collapsible and hidden by default:<br />
<br />
<div class="mw-collapsible-content">bla bla bla</div><br />
</div><br />
<br />
<br />
"Talk" links next to "Datiswous" appear {{red|red}}.<br />
<br />
<br />
https://www.mediawiki.org/wiki/Help:Templates<br />
<br />
= Secrets of Waterdeep =<br />
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}<br />
<br />
{{infobox|text= Bla Bla Bla}}<br />
<br />
<br />
== Table test ==<br />
<br />
An alternative way to create and edit tables via use of a template.<br />
<br />
<nowiki><br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
</nowiki><br />
<br />
<br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
<br />
==== "Items" subfolder ====<br />
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}"><br />
<br />
{|class="wikitable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
<br />
|-<br />
|''None''<br />
|N/A<br />
|atdm:item_base<br />
|''Don't use. The base class for items the player can pick up.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|<br />
|TBA<br />
|atdm:item_book_red1<br />
|''A red Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_book_t1<br />
|''Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_paper1<br />
|''Paper''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_scroll1<br />
|''Scroll''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:map_base<br />
|''Don't use - base class for all map items.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|'''Custom'''<br />
|N/A<br />
|atdm:grabable_custom_item<br />
|''A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:moveable_custom_item<br />
|''A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:static_custom_item<br />
|''A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.''<br />
|<br />
|-<br />
|}<br />
</div><br />
<br />
<br />
<br />
==Controlling Where the Player Starts==<br />
<br />
{{infobox|text= The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}<br />
<br />
<br />
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed" style="width: 40%;"><br />
The following text is originally written in 2011 by Grayman and is now outdated:<br />
<br />
<br />
<div class="mw-collapsible-content">This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.<br />
<br />
===mainmenu_briefing.gui===<br />
Obtain a new version of mainmenu_briefing.gui from this location:<br />
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)<br />
<br />
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.<br />
<br />
In the sample gui, you'll see these new definitions:<br />
<br />
*windowDef StartPointBox1<br />
*windowDef StartPointBox2<br />
*windowDef StartPointBox3<br />
*windowDef StartPointText1<br />
*windowDef StartPointText2<br />
*windowDef StartPointText3<br />
<br />
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.<br />
<br />
StartPointBoxN defines a checkbox to the left of the text describing starting point N.<br />
<br />
Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.<br />
<br />
===What the Player Sees===<br />
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.<br />
<br />
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.<br />
<br />
When the player starts the mission, he'll start at the selected location.<br />
<br />
If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.<br />
<br />
===Making It Your Own===<br />
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:<br />
text "Scale the north wall and enter through an attic window."<br />
.<br />
.<br />
.<br />
text "Use the secret tunnel into the cellar."<br />
.<br />
.<br />
.<br />
text "Slide down the coal chute."<br />
<br />
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:<br />
set "gui::startSelect" "PlayerStart1";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart2";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart3";<br />
<br />
That's all you need to do to offer three starting points.<br />
<br />
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.<br />
<br />
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.<br />
<br />
For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:<br />
<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox4::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText4::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.<br />
<br />
Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly. <br />
<br />
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]<br />
</div><br />
</div></div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=User:Datiswous&diff=30962User:Datiswous2024-01-15T10:02:04Z<p>Datiswous: </p>
<hr />
<div><div class="mw-collapsible mw-collapsed" style="width: 100%"><br />
This text is not collapsible; but the next is collapsible and hidden by default:<br />
<br />
<div class="mw-collapsible-content">bla bla bla</div><br />
</div><br />
<br />
<br />
"Talk" links next to "Datiswous" appear {{red|red}}.<br />
<br />
<br />
https://www.mediawiki.org/wiki/Help:Templates<br />
<br />
= Secrets of Waterdeep =<br />
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}<br />
<br />
{{infobox|text= Bla Bla Bla}}<br />
<br />
<br />
== Table test ==<br />
<br />
An alternative way to create and edit tables via use of a template.<br />
<br />
<nowiki><br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
</nowiki><br />
<br />
<br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
<br />
==== "Items" subfolder ====<br />
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}"><br />
<br />
{|class="wikitable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
<br />
|-<br />
|''None''<br />
|N/A<br />
|atdm:item_base<br />
|''Don't use. The base class for items the player can pick up.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|<br />
|TBA<br />
|atdm:item_book_red1<br />
|''A red Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_book_t1<br />
|''Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_paper1<br />
|''Paper''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_scroll1<br />
|''Scroll''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:map_base<br />
|''Don't use - base class for all map items.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|'''Custom'''<br />
|N/A<br />
|atdm:grabable_custom_item<br />
|''A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:moveable_custom_item<br />
|''A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:static_custom_item<br />
|''A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.''<br />
|<br />
|-<br />
|}<br />
</div><br />
<br />
<br />
<br />
==Controlling Where the Player Starts==<br />
<br />
{{infobox|text= The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}<br />
<br />
<br />
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed" style="width: 40%;"><br />
The following text is originally written in 2011 by Grayman and is now outdated:<br />
<br />
<br />
<div class="mw-collapsible-content">This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.<br />
<br />
===mainmenu_briefing.gui===<br />
Obtain a new version of mainmenu_briefing.gui from this location:<br />
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)<br />
<br />
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.<br />
<br />
In the sample gui, you'll see these new definitions:<br />
<br />
*windowDef StartPointBox1<br />
*windowDef StartPointBox2<br />
*windowDef StartPointBox3<br />
*windowDef StartPointText1<br />
*windowDef StartPointText2<br />
*windowDef StartPointText3<br />
<br />
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.<br />
<br />
StartPointBoxN defines a checkbox to the left of the text describing starting point N.<br />
<br />
Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.<br />
<br />
===What the Player Sees===<br />
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.<br />
<br />
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.<br />
<br />
When the player starts the mission, he'll start at the selected location.<br />
<br />
If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.<br />
<br />
===Making It Your Own===<br />
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:<br />
text "Scale the north wall and enter through an attic window."<br />
.<br />
.<br />
.<br />
text "Use the secret tunnel into the cellar."<br />
.<br />
.<br />
.<br />
text "Slide down the coal chute."<br />
<br />
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:<br />
set "gui::startSelect" "PlayerStart1";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart2";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart3";<br />
<br />
That's all you need to do to offer three starting points.<br />
<br />
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.<br />
<br />
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.<br />
<br />
For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:<br />
<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox4::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText4::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.<br />
<br />
Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly. <br />
<br />
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]<br />
</div><br />
</div></div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=User:Datiswous&diff=30961User:Datiswous2024-01-15T10:01:23Z<p>Datiswous: </p>
<hr />
<div><div class="mw-collapsible mw-collapsed" style=""><br />
This text is not collapsible; but the next is collapsible and hidden by default:<br />
<br />
<div class="mw-collapsible-content">bla bla bla</div><br />
</div><br />
<br />
<br />
"Talk" links next to "Datiswous" appear {{red|red}}.<br />
<br />
<br />
https://www.mediawiki.org/wiki/Help:Templates<br />
<br />
= Secrets of Waterdeep =<br />
{{Abandoned-works|aut=Paul, Bert|none|{{green|Free for adaption}}|-|-|-|-|-}}<br />
<br />
{{infobox|text= Bla Bla Bla}}<br />
<br />
<br />
== Table test ==<br />
<br />
An alternative way to create and edit tables via use of a template.<br />
<br />
<nowiki><br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
</nowiki><br />
<br />
<br />
{|class="wikitable sortable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
{{TableRow|'''kitchen'''|<gallery>File:Jug01.png</gallery>|atdm:jug01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing01.png</gallery>|atdm:wine_bottle02_standing01|N/A|}}<br />
{{TableRow||<gallery>File:Wine bottle02 standing02.png</gallery>|atdm:wine_bottle02_standing02|N/A|}}<br />
|}<br />
<br />
==== "Items" subfolder ====<br />
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}"><br />
<br />
{|class="wikitable" border=1 style="" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="7%"|Subfolder(s)<br />
!bgcolor=#d0d0e0 width="11%"|Entity image<br />
!bgcolor=#d0d0e0 width="8%"|Entity file name<br />
!bgcolor=#d0d0e0 width="11%"|Entity description<br />
!bgcolor=#d0d0e0 width="11%"|Notes<br />
|-<br />
<br />
|-<br />
|''None''<br />
|N/A<br />
|atdm:item_base<br />
|''Don't use. The base class for items the player can pick up.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|<br />
|TBA<br />
|atdm:item_book_red1<br />
|''A red Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_book_t1<br />
|''Book''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_paper1<br />
|''Paper''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:item_scroll1<br />
|''Scroll''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:map_base<br />
|''Don't use - base class for all map items.''<br />
|'''Not''' for mapper use.<br />
|-<br />
|-<br />
|'''Custom'''<br />
|N/A<br />
|atdm:grabable_custom_item<br />
|''A customisable, grabable and/or pushable object. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. If you want it to go in the inventory use atdm:moveable_custom_item.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:moveable_custom_item<br />
|''A customisable, moveable object that can go in the inventory and optionally dropped. It can also optionally trigger a target from the inventory. Almost any model can be selected and other displayed properties easily modified. The model must have a collision model or the map will not run. Alternatively, use the 'atdm:static_custom_item' which can still be picked up but is non-droppable and does not need a collision model. For a non-inventory grabable use 'atdm:grabable_custom_item'.''<br />
|<br />
|-<br />
|-<br />
|<br />
|N/A<br />
|atdm:static_custom_item<br />
|''A customisable, static object that can be picked up but not dropped. Almost any model can be selected and other displayed properties easily modified. It can optionally trigger a target from the inventory. Alternatively, use the 'atdm:moveable_custom_item', which can optionally be dropped but the model must have a collision model or the map won't run.''<br />
|<br />
|-<br />
|}<br />
</div><br />
<br />
<br />
<br />
==Controlling Where the Player Starts==<br />
<br />
{{infobox|text= The "Controlling Where the Player Starts" functionality is broken in TDM 2.10 and 2.11 and got working again since 2.12 dev. The example gui file is also missing, but a new version is being worked on. }}<br />
<br />
<br />
Beginning with TDM 1.08, map authors can offer more than one start point to players. This could increase re-playability of a map, allowing the player to replay the map with a different starting point.<br />
<br />
<br />
<div class="mw-collapsible mw-collapsed" style="width: 40%;"><br />
The following text is originally written in 2011 by Grayman and is now outdated:<br />
<br />
<br />
<div class="mw-collapsible-content">This is an extension to the Button-Controlled Menu Briefing, so you should first obtain and install that package (see above) and become familiar with how it works.<br />
<br />
===mainmenu_briefing.gui===<br />
Obtain a new version of mainmenu_briefing.gui from this location:<br />
*[http://www.mediafire.com/?8ygkkhzip5ef3mk Mediafire] (broken link)<br />
<br />
This version of mainmenu_briefing.gui adds new definitions to the final briefing screen (screen 6), two for each optional start point.<br />
<br />
In the sample gui, you'll see these new definitions:<br />
<br />
*windowDef StartPointBox1<br />
*windowDef StartPointBox2<br />
*windowDef StartPointBox3<br />
*windowDef StartPointText1<br />
*windowDef StartPointText2<br />
*windowDef StartPointText3<br />
<br />
StartPointTextN defines the starting point text for point N and handles highlighting and mouse events.<br />
<br />
StartPointBoxN defines a checkbox to the left of the text describing starting point N.<br />
<br />
Though the template provides three starting points, you can change it to offer any number you wish. They don't need to appear on the last briefing screen, either, though you may find that's the most logical place to offer them.<br />
<br />
===What the Player Sees===<br />
When the player hovers the mouse over either the checkbox or text for a starting point, the text highlights.<br />
<br />
When the player clicks on either the checkbox or text, a checkmark appears in the box and the text remains highlighted. Selecting a different starting position will unhighlight the previous selection and highlight the new one.<br />
<br />
When the player starts the mission, he'll start at the selected location.<br />
<br />
If the player makes no selection, he'll start at the info_player_start in the map that has the lowest entity number.<br />
<br />
===Making It Your Own===<br />
Three sample starting point descriptions are provided. Change these to match the briefing and starting points for your map. Look for and change these lines:<br />
text "Scale the north wall and enter through an attic window."<br />
.<br />
.<br />
.<br />
text "Use the secret tunnel into the cellar."<br />
.<br />
.<br />
.<br />
text "Slide down the coal chute."<br />
<br />
Each selection is tied to a specific info_player_start in your map. Look for these lines and change them to match the names of your info_player_starts:<br />
set "gui::startSelect" "PlayerStart1";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart2";<br />
.<br />
.<br />
.<br />
set "gui::startSelect" "PlayerStart3";<br />
<br />
That's all you need to do to offer three starting points.<br />
<br />
If you want to offer only two starting points, comment out the third checkbox and text windowDef definitions, as well as any other lines that reference those definitions.<br />
<br />
If you want to offer four starting points, copy/paste the StartPointBox3 and StartPointText3 definitions, rename the copies as StartPointBox4 and StartPointText4, adjust (x,y) locations on the screen, and extend the first three box/text definitions so they know about the new definitions.<br />
<br />
For example, in the StartPointBox1 definition, you'll see these lines in the onAction() event:<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
If you add a fourth starting point, these lines would change to include knowledge of the new starting point box/text definitions:<br />
<br />
set "background" "guis/assets/objectives/box_checked";<br />
set "StartPointBox2::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox3::background" "guis/assets/objectives/box_default";<br />
set "StartPointBox4::background" "guis/assets/objectives/box_default";<br />
set "StartPointText1::forecolor" HIGHLIGHTED_TEXT_COLOR;<br />
set "StartPointText2::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText3::forecolor" DEFAULT_TEXT_COLOR;<br />
set "StartPointText4::forecolor" DEFAULT_TEXT_COLOR;<br />
<br />
Make similar changes where needed by searching the file for StartPointBox3 and StartPointText3 to find all the places where box/text definitions are referenced.<br />
<br />
Also look for references to "selectionIndex", see how it's used, and adjust its setting in your new definitions accordingly. <br />
<br />
If you have questions, you can contact grayman on the TDM forums by either sending a PM or posting to this thread: [http://forums.thedarkmod.com/topic/13210-controlling-where-the-player-starts-a-mission/ Controlling where the player starts a mission]<br />
</div><br />
</div></div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30960Material Files2024-01-15T09:54:44Z<p>Datiswous: /* Full example */ surface type info</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
In the above example the surface type is defined as well. [[Surface Types|Surface types]] are used to tell what sound to play when you walk on a surface.<br />
<br />
=== Deprecated stages ===<br />
<br />
As of TDM 2.08, none of the ambient stages are needed, so both this:<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
}<br />
<br />
</pre><br />
<br />
and this:<br />
<br />
<pre><br />
<br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
<br />
</pre><br />
<br />
are redundant.<br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
<br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed:<br />
<br />
<pre><br />
<br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30959Material Files2024-01-15T09:42:24Z<p>Datiswous: /* What the Heck is a Material File? */ Changed Doom into TDM</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, TDM looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching TDM - changing your material file therefore requires either restarting TDM or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
<br />
=== No ambient and frob -stages needed ===<br />
<br />
As of TDM 2.08, none of the ambient stages are needed, so both this:<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
}<br />
<br />
</pre><br />
<br />
and this:<br />
<br />
<pre><br />
<br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
<br />
</pre><br />
<br />
are redundant.<br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
<br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed:<br />
<br />
<pre><br />
<br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30958Material Files2024-01-14T21:24:52Z<p>Datiswous: /* Create a new Texture Definition */</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, Doom looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching Doom 3 - changing your material file therefore requires either restarting Doom or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
<br />
=== No ambient and frob -stages needed ===<br />
<br />
As of TDM 2.08, none of the ambient stages are needed, so both this:<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
}<br />
<br />
</pre><br />
<br />
and this:<br />
<br />
<pre><br />
<br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
<br />
</pre><br />
<br />
are redundant.<br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
<br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed:<br />
<br />
<pre><br />
<br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Material_Files&diff=30957Material Files2024-01-14T20:41:44Z<p>Datiswous: frobstages not needed</p>
<hr />
<div>''Originally written by Fingernail & greebo on forums.thedarkmod.com''<br />
<br />
<!-- keywords for search: surftype --><br />
<br />
== What the Heck is a Material File? ==<br />
The material files (.mtr) contain lists of 'material definitions' that tell the engine where to find the source files for the specified textures and what features it should have. All material files should be located in the '''darkmod/materials''' folder and have the extension '''.mtr'''. <br />
<br />
In fact, it's the material (=shader) which gets applied to surfaces of brushes, patches and models, not the actual TGA/DDS texture image. A TGA file cannot be applied to surfaces, it's the shader name which gets used.<br />
<br />
Polygons ==> Shader ==> Image(s) + Processing => Appearance<br />
<br />
Material definitions apply to a single 'texture', though it may be made up of multiple texture files blended together. A simple material definition looks like this:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/custom/redbrick_ed<br />
diffusemap textures/darkmod/custom/redbrick <br />
bumpmap textures/darkmod/custom/redbrick_local <br />
specularmap textures/darkmod/custom/redbrick_s <br />
}<br />
<br />
If you're using the ''material'' called '''textures/darkmod/stone/brick/redbrick_with_mortar''' in your map, Doom looks up the name in the material definition and loads the according image files (as specified by the [[Map Expressions]]). Note that you '''don't''' need to specify the file extension, the engine is automatically adding it (depending on your quality setting) and finds the according texture file. You also don't need to include the '''dds/''' prefix in the path, this is also added automatically.<br />
<br />
A single material file contains lots of material definitions. This is useful as textures that logically belong to each other are summarized in one material file (e.g. '''materials/tdm_stone_brick.mtr''')<br />
<br />
The .mtr files are read upon launching Doom 3 - changing your material file therefore requires either restarting Doom or typing '''reloadDecls''' in the console.<br />
<br />
== Create a new Texture Definition ==<br />
Provided you already saved your texture source file (the .tga or .dds) in the appropriate folder, you can go on and create your texture definition. You cannot use your textures without this step.<br />
<br />
Open up or create your personal material file with a text editor. There are existing guidelines for where texture definitions should go, for the sake of organization, but the engine doesn't care what the filename is as long as it's in the materials folder and has a .mtr extension. <br />
<br />
First, specify the name of your new material. If it is not a model texture, then the name should include the path to the texture files used. Example:<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
<br />
'''Note:''' Do not use special characters for your shader name or The Dark Mod parser might complain (e.g. no "&" (ampersand) or "-" (dash) characters, etc.)<br />
<br />
Then, open up a squiggly bracket ({), and start to fill in the texture paths as below, changing the paths and names for your texture.<br />
<br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed // editor image<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar // diffuse map<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local // normal map<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s // specular map<br />
}<br />
<br />
Close the definition with a close squiggly bracket (}).<br />
<br />
'''Note:''' If there is no specular map then substitute '''_black''', and if there is no bumpmap then use '''_flat''' instead.<br />
<br />
Save the file. Now you can load your new texture in [[DarkRadiant]] provided you did it all correctly.<br />
<br />
Alternatively you can also have a look a the existing material files and learn from them.<br />
<br />
== Full example ==<br />
<br />
Here is the full example with the final material definition:<br />
<br />
<pre><br />
textures/darkmod/stone/brick/redbrick_with_mortar<br />
{<br />
// Use on of the predefined surface types like:<br />
// none, metal, stone, flesh, glass, wood<br />
stone<br />
<br />
// Or use "surftype15" and add the surface type as the first (or only) word of the description,<br />
// the following are possible:<br />
// tile, carpet, dirt, gravle, grass, rock, twigs, foliage, sand, mud, brokeglass, snow, ice, squeakboard,<br />
// puddle, moss, cloth, ceramic, slate, straw, armor_leath, armor_chain, armor_plate, climbable, paper, hardwood<br />
<br />
//surftype15<br />
//description "carpet This is a carpet texture."<br />
<br />
qer_editorimage textures/darkmod/stone/brick/redbrick_with_mortar_ed<br />
bumpmap textures/darkmod/stone/brick/redbrick_with_mortar_local<br />
diffusemap textures/darkmod/stone/brick/redbrick_with_mortar<br />
specularmap textures/darkmod/stone/brick/redbrick_with_mortar_s<br />
}<br />
</pre><br />
<br />
<br />
=== No ambient and frob -stages needed ===<br />
<br />
As of TDM 2.08, none of the ambient stages are needed, so both this:<br />
<br />
<pre><br />
// TDM Ambient Method Related<br />
{<br />
if (global5 == 1)<br />
blend add<br />
map <mappath/name><br />
scale 1, 1<br />
red global2<br />
green global3<br />
blue global4<br />
}<br />
<br />
</pre><br />
<br />
and this:<br />
<br />
<pre><br />
<br />
{<br />
if (global5 == 2)<br />
blend add<br />
program ambientEnvironment.vfp<br />
vertexParm 0 1, 1, 1, 1 // UV Scales for Diffuse and Bump<br />
vertexParm 1 1, 1, 1, 1 // (X,Y) UV Scale for specular<br />
vertexParm 2 global2, global3, global4, 1<br />
<br />
fragmentMap 0 cubeMap env/gen1<br />
fragmentMap 1 textures/darkmod/stone/brick/redbrick_with_mortar_local // Bump<br />
fragmentMap 2 textures/darkmod/stone/brick/redbrick_with_mortar // Diffuse<br />
fragmentMap 3 _black // Specular<br />
}<br />
<br />
</pre><br />
<br />
are redundant.<br />
<br />
<br>Ambient rendering has its own dedicated function in the renderer now, and it doesn't use textures for it. <br />
<br><s>The option is no longer in the game menu, but you can check it in the game console by typing '''tdm_ambient_method'''. It should be set to '''0'''.</s><br />
<br>As of 2.09, there is no longer any '''tdm_ambient_method''' cvar.<br />
<br />
<br />
<br />
As of TDM 2.11, none of the frob stages are needed:<br />
<br />
<pre><br />
<br />
// This is the code required for frob highlighting this texture<br />
{<br />
if ( parm11 > 0 )<br />
blend gl_dst_color, gl_one<br />
map _white.tga<br />
rgb 0.40 * parm11<br />
}<br />
{<br />
if ( parm11 > 0 )<br />
blend add<br />
map textures/darkmod/stone/brick/redbrick_with_mortar<br />
rgb 0.15 * parm11<br />
} <br />
}<br />
</pre><br />
<br />
See also: https://forums.thedarkmod.com/index.php?/topic/21629-211-frobstages-automatic-generation-and-customization/<br />
<br />
<br />
== Special Keywords ==<br />
<br />
There are also some special keywords you can use:<br />
<br />
* noshadows - surface does not cast a shadow<br />
* noselfshadows - casts shadows, but not on itself<br />
* translucent - for things like glass<br />
* [[twosided]] - the surface will be duplicated and flipped, this causes it to be rendered twice. Useful for half-transparent things that should be visible from both sides. Normally surfaces are only visible from the front side (see note below)<br />
* noFog - do not render fog on this surface<br />
* Discrete - Dmap will not merge brushes with this material applied<br />
* NoFragment - Dmap will not split brushes with the material applied<br />
* nopicmip - The image_downsize settings will not affect this texture. Use sparingly, as low-end users need to use image_downsize to load larger maps.<br />
<br />
<br />
Note: <br />
<br />
https://iddevnet.dhewm3.org/doom3/materials.html<br />
<br />
twoSided Draw the front and back. '''Implies no-shadows''', because the shadow volume would be coplanar with the surface, giving depth fighting<br />
<br />
Use a nodraw surface with forceShadows to address this.<br />
<br />
== See also ==<br />
* [[Texture Guidelines]]<br />
* [[How to add Textures to The Dark Mod]]<br />
* [[Texture Creation - Basic Tutorial]]<br />
<br />
{{tutorial-textures|sort=Material}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Fan_Missions_for_The_Dark_Mod&diff=30955Fan Missions for The Dark Mod2024-01-06T03:23:37Z<p>Datiswous: /* Missions table */ subtitles Yes</p>
<hr />
<div>__NOTOC__<br />
{{infobox|<center><br>'''Big Ugly Disclaimer:'''</center><br> '''The Dark Mod''' team does not necessarily support or endorse content listed here, and only hosts missions listed on the [http://www.thedarkmod.com/ official TDM website]. This is a community maintained list, and an ongoing work in progress. Most of the mirror links in this list are dead or are for missions that are not 2.0 compliant. Mission entries which are suspected to violate copyright must be text-only, and cannot contain links. Report and/or remove links found in violation of this rule.}}<br />
<br />
<br />
* For details about editing this table, see [[#Editing_this_table|below]].<br />
* For details about how to install Fan Missions please visit: [[Installing and Running Fan Missions]]<br />
* To sort by a different criterion, click the [[Image:Sort none.gif]] icon in the relevant column header.<br />
<br />
== Missions table ==<br />
{|class="wikitable sortable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2 width=100%<br />
|-<br />
!bgcolor=#d0d0e0 width="21%"|Fan Mission Title<br />
!bgcolor=#d0d0e0 width="11%"|Author(s)<br />
!bgcolor=#d0d0e0 width="4%" class="unsortable"|Links<br />
!bgcolor=#d0d0e0 width="5%"|First Release<br />
!bgcolor=#d0d0e0 width="2%"|Size (MB)<br />
!bgcolor=#d0d0e0 width="3%"|EFX Reverb<br />
!bgcolor=#d0d0e0 width="3%"|Subtitles<br />
!bgcolor=#d0d0e0 width="10%"|Series<br />
!bgcolor=#d0d0e0 width="13%"|Mission Type<br />
!bgcolor=#d0d0e0 width="6%"|Spiders and Undead<br />
|-<br />
<br />
<!--INSERT NEW MISSIONS BELOW THIS LINE--><br />
<br />
|-<br />
!align=left|{{TDM-FM|altham|A Night in Altham}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22296-fan-mission-a-night-in-altham/}}<br />
|2023-12-05<br />
|441<br />
|Yes<br />
|Yes<br />
| <br />
|City Missions, Forest<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|spiderfinch|The Spider And The Finch}}<br />
|GrodenVR<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22275-fan-mission-the-spider-and-the-finch-by-grodenglaive/}}<br />
|2023-11-18<br />
|45<br />
|Yes<br />
|No<br />
| <br />
|Mansion/Estate, Forest<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|threepenny|The Threepenny Revue}}<br />
|Jnon<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22229-fan-mission-the-threepenny-revue/}}<br />
|2023-10-01<br />
|21<br />
|No<br />
|<br />
| <br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|delisle|The House of deLisle}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22227-fan-mission-the-house-of-delisle/}}<br />
|2023-10-01<br />
|38<br />
|Yes<br />
|<br />
|Duncan Lynch <br />
|Mansion/Estate, City Missions<br />
|Spiders, Undead, Body Horror<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bridge2far|A Bridge Too Far}}<br />
|cugzkani<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/22220-fan-mission-a-bridge-too-far/}}<br />
|2023-09-22<br />
|6<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|highex|The Lieutenant 2: High Expectations}}<br />
|Frost_Salamander<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21837-fan-mission-the-lieutenant-2-high-expectations-by-frost_salamander-20230424}}<br />
|2023-04-24<br />
|34.9<br />
|Yes<br />
|<br />
|The Lieutenant<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|seeking|Seeking Lady Leicester}}<br />
|Grayman, Bikerdude, Amadeus, Dragofer, WellingtonCrab<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21799-fan-mission-seeking-lady-leicester-by-grayman-3212023/}}<br />
|2023-03-22<br />
|493<br />
|Yes<br />
|Yes<br />
|<br />
|Mansion/Estate, City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|inplainsight|The Lieutenant 1: In Plain Sight}}<br />
|Frost_Salamander<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21549-fan-mission-in-plain-sight-by-frost_salamander-20220807}}<br />
|2022-08-07<br />
|14<br />
|Yes<br />
|<br />
|The Lieutenant<br />
|City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|at1_lucy|The Adventures of Thomas: Lucy's Quest}}<br />
|gg<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21453-the-adventures-of-thomas-lucys-quest-2022-06-08}}<br />
|2022-06-08<br />
|484<br />
|Yes<br />
|<br />
|Thomas 1<br />
|City Missions<br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|wwtw|Who Watches the Watcher?}}<br />
|DeTeEff<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21434-fan-mission-who-watches-the-watcher-v10-by-deteeff-20220528}}<br />
|2022-05-28<br />
|86<br />
|Yes<br />
|Yes<br />
|<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sw1_ebound|Sam Wilson 1: Eastbound}}<br />
|jonri<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21402-fan-mission-sam-wilson-1-eastbound-2022-05-07}}<br />
|2022-05-07<br />
|18<br />
|Yes<br />
|<br />
|Sam Wilson<br />
|Train Heist<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|byanyothername|By Any Other Name}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21331-fan-mission-by-any-other-name-by-joebarnin-2022310/}}<br />
|2022-03-10<br />
|124<br />
|Yes<br />
|Yes<br />
|<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|housecall|A House Call}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21329-a-house-call-by-thebigh-mar-10-2022/}}<br />
|2022-03-10<br />
|10<br />
|Yes<br />
|<br />
|Duncan Lynch<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nobleaffairs|Noble Affairs}}<br />
|Goldwell<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21318-fan-mission-noble-affairs-by-goldwell-20220222-tdm-210-required/}}<br />
|2022-02-22<br />
|488<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|iris|Iris}}<br />
|Wellingtoncrab<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21289-fan-mission-iris-by-wellingtoncrab-tdm-210-required-20220213/}}<br />
|2022-02-13<br />
|549<br />
|Yes<br />
|<br />
|CCC 22 - '''WINNER'''<br />
|City Missions<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ptb0|PtB 0: Moving Day}}<br />
|Jedi_Wannabe<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21283-fan-mission-paying-the-bills-0-moving-day-tdm-210-beta-only-202228/}}<br />
|2022-02-08<br />
|160<br />
|Yes<br />
|<br />
|CCC 22, PTB<br />
|Mansion/Estate, Forest<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|written|Written in Stone}}<br />
|Bikerdude, Amadeus, Dragofer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21265-written-in-stone-beta-210-only-20220128/}}<br />
|2022-01-28<br />
|338<br />
|Yes<br />
|Yes<br />
|CCC 22, Elixir<br />
|City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hazard|Hazard Pay}}<br />
|Kingsal<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21264-fan-mission-hazard-pay-by-kingsal-tdm-beta-210-only/}}<br />
|2022-01-28<br />
|404<br />
|Yes<br />
|Yes<br />
|CCC 22<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|newford|Down and Out on Newford Road}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21260-down-and-out-on-newford-road-by-thebigh-jan-26-2022-christmas-connections-contest-entry/}}<br />
|2022-01-26<br />
|17<br />
|Yes<br />
|<br />
|CCC 22<br />
|Church/Cathedral, City Missions<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deadeye|Deadeye}}<br />
|Sotha<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21225-fan-mission-deadeye-by-sotha-20211231/}}<br />
|2021-12-31<br />
|1.8<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|black_mage|The Black Mage}}<br />
|Grayman, JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21215-the-black-mage/}}<br />
|2021-12-23<br />
|410<br />
|Yes<br />
|Yes<br />
| <br />
|Castle/Fortress <br><br>In memoriam of Grayman {{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20933-we-have-lost-a-member-of-the-tdm-development-team/}}<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ch1_eaton|Cole Hurst 1: Eaton}}<br />
|bwyan<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21170-fan-mission-cole-hurst-1-eaton-by-bwyan-20211202/}}<br />
|2021-12-01<br />
|41<br />
|Yes<br />
|<br />
|Cole Hurst<br />
|Mansion/Estate, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos0_thief|Chronicles of Skulduggery 0: To Catch a Thief}}<br />
|Bienie<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/21156-fan-mission-chronicles-of-skulduggery-0-to-catch-a-thief-20211120/}}<br />
|2021-11-20<br />
|15<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions, Mansion/Estate<br />
|Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|away0|Away 0 - Stolen Heart}}<br />
|Geep,_Atti_<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20964-away-0-stolen-heart-by-geep-_atti_-20210924/}}<br />
|2021-11-12<br />
|189.5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Away_series|Away]]<br />
|Inn/Tavern, Jail/Prison, <br> Museum Heist, Bank Job<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhta|Hidden Hands: Anomaly}}<br />
|JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20909-hidden-hands-the-anomaly}}<br />
|2021-05-01<br />
|532.7<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Castle/Fortress <br> Forest<br />
|Undead, Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hareinthesnare|The Hare in the Snare: Part 1}}<br />
|Frost_Salamander,Kerry000<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20883-fan-mission-the-hare-in-the-snare-part-1}}<br />
|2021-04-09<br />
|102.3<br />
|Yes<br />
|Yes<br />
|Hare in the Snare 1<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|blackgrove|Blackgrove Manor}}<br>(v1.02, 2021/04/24)<br />
|ddaazzaa<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20844-fan-mission-blackgrove-manor-by-ddaazzaa-20210314/}}<br />
|2021-03-14<br />
|24.7<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|scroll|Scroll of Remembrance}}<br />
|MirceaKitsune<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20613-fan-mission-scroll-of-remembrance-by-mirceakitsune-03112020/}}<br />
|2020-11-03<br />
|16.2<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|factoryheist|The Factory Heist}}<br />
|thebigh<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20562-the-factory-heist-12-sep-2020/}}<br />
|2020-09-12<br />
|1.1<br />
|No<br />
|<br />
|Duncan Lynch<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nowandthen|Now and Then}}<br />
|joebarnin<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20560-fan-mission-now-and-then-by-joebarnin-20200908/}}<br />
|2020-09-08<br />
|236.1<br />
|Yes<br />
|<br />
|<br />
|Museum Heists<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhtlc|Hidden Hands: The Lost Citadel}}<br />
|JackFarmer<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20490-hidden-hands-the-lost-citadel-23072020}}<br />
|2020-07-23<br />
|444<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Castle/Fortress<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos3_sacricide|Chronicles of Skulduggery 3: Sacricide}}<br />
|Bienie<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20483-fan-mission-chronicles-of-skulduggery-3-sacricide-20200718/}}<br />
|2020-07-18<br />
|97.8<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|painterswife|The Painter's Wife}}<br>(v1.2, 2021/04/04)<br />
|Fractured Glass Company<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20436-fan-mission-the-painter’s-wife-by-fractured-glass-company-20200701/}}<br />
|2020-07-01<br />
|503<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|anol|A Night Of Loot: One Man's Treasure}}<br />
|OGDA<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20416-fan-mission-a-night-of-loot-one-mans-treasure/}}<br />
|2020-06-13<br />
|3.9<br />
|No<br />
|<br />
|<br />
|Shop/House<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|good|A Good Neighbor}}<br />
|Amadeus<br />
|{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20292-fan-mission-a-good-neighbor/}}<br />
|2020-03-08<br />
|54.6<br />
|Yes<br />
|<br />
|<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|airpocket|Away 1 - Air Pocket}}<br />
|Geep<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20252-fan-mission-away-1-air-pocket-by-geep-20200207}}<br />
|2020-02-06<br />
|15.3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Away_series|Away]]<br />
|Pirate <br> Ship<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|snowed_inn|Snowed Inn}}<br />
|Goldwell and Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20201-fan-mission-snowed-inn-by-goldwell-kingsal-20191225}}<br />
|2019-12-25<br />
|382<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|indangerofjudgment|In Danger of Judgment}}<br />
|krrg<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20155-fan-mission-in-danger-of-judgment-20191115/}}<br />
|2019-11-15<br />
|11.9<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lhl|Langhorne Lodge}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20143-fan-mission-langhorne-lodge/}}<br />
|2019-10-30<br />
|8.2<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead <br> Ghosts <br> Spiders<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|heartstmattis|The Heart of Saint Mattis}}<br />
|joebarnin<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20091-fan-mission-the-heart-of-saint-mattis-by-joebarnin-20190910/}}<br />
|2019-09-10<br />
|58.7<br />
|Yes<br />
|<br />
|<br />
|Church/Cathedral<br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|peril|Perilous Refuge}}<br />
|Dragofer, Crucible Team<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20090-fan-mission-perilous-refuge-by-dragofer-20190910/}}<br />
|2019-09-10<br />
|34.7<br />
|Yes<br />
|<br />
|<br />
|Ship, City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhvf|Hidden Hands: Vitalic Fever}}<br />
|JackFarmer<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/20051-hidden-hands-vitalic-fever-20072019}}<br />
|2019-07-20<br />
|269<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|cos2_precpos|Chronicles of Skulduggery 2: A Precarious Position}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19975-fan-mission-chronicles-of-skulduggery-2-a-precarious-position-20190504/}}<br />
|2019-05-04<br />
|14.5<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws5_commerce|William Steele 5: Commerce Bank}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19957-fan-mission-commerce-bank-by-grayman-2019410/}}<br />
|2019-04-10<br />
|30<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#William_Steele_series|William Steele]]<br />
|Bank Jobs<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|marshofrahena|Marsh of Rahena}}<br />
|ERH+<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19951-fan-mission-marsh-of-rahena-by-erh-201945}}<br />
|2019-04-05<br />
|60.3<br />
|Yes<br />
|<br />
|<br />
|Castle/Fortress, Horror <br />
|Spiders, Undead, Horror Themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|northdale2|Shadows of Northdale ACT 2}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19936-fan-mission-shadows-of-northdale-act-ii-by-goldwell-20190320/}} [https://www.youtube.com/watch?v=KO-eIOX9nqI Briefing]<br />
|2019-03-20<br />
|417<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Shadows of Northdale series|Shadows of Northdale]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cleanneighbourhood|Cleaning Up the Neighbourhood}}<br />
|some1stoleit and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19898-fan-mission-cleaning-up-the-neighbourhood-by-some1stoleitbikerdude-20190219/}}<br />
|2019-02-18<br />
|34.3<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|hhi|Hidden Hands: Initiation}}<br />
|JackFarmer<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19796-hidden-hands-initiation-27122018/}}<br />
|2018-12-27<br />
|92.5<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Hidden_Hands_series|Hidden Hands]]<br />
|Mansion/Estate <br>Ship<br />
|Spiders, Extra-natural entities<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|reluctantbenefaction|The Night of Reluctant Benefaction}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19787-fan-mission-the-night-of-reluctant-benefaction/}}<br />
|2018-12-24<br />
|11.9<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mercwarehouse|Mission of Mercy}}<br />
|joebarnin<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19642-fan-mission-mission-of-mercy-by-joebarnin-20180914/}}<br />
|2018-09-14<br />
|10.1<br />
|No<br />
|<br />
|<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws4_warrens|William Steele 4: The Warrens}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19618-fan-mission-the-warrens-by-grayman-201891/}}<br />
|2018-09-01<br />
|53<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#William_Steele_series|William Steele]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|braeden_church|Braeden Church}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19533-fan-mission-braeden-church-by-grayman-201871/}}<br />
|2018-07-01<br />
|24<br />
|No<br />
|Yes<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|pearlsnswine|Chronicles of Skulduggery: Pearls and Swine}}<br />
|Bienie<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19439-chronicles-of-skulduggery-pearls-and-swine/}}<br />
|2018-05-25<br />
|23<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Chronicles_of_Skulduggery_series|Chronicles of Skulduggery]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|northdale1|Shadows of Northdale ACT I}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19368-fan-mission-shadows-of-northdale-act-i-by-goldwell-20180323/}} [https://www.youtube.com/watch?v=p4nP3lYd6wg Briefing]<br />
|2018-03-23<br />
|295<br />
|Custom <br>(not EFX)<br />
|<br />
|[[Fan_Mission_Series#Shadows of Northdale series|Shadows of Northdale]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sirt|Sir Taffsalot's Sword}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19361-fan-mission-sir-taffsalots-sword-by-grayman-2018318/}}<br />
|2018-03-17<br />
|11.3<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> <br> In memoriam of Gary (Sir Taffsalot) {{Forumlink|http://forums.thedarkmod.com/topic/19306-sad-news-we-lost-one-of-our-own-sir-taffsalot/}}<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|arena|The Arena}}<br />
|ERH+<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19350-fan-mission-the-arena-by-erh/}}<br />
|2018-03-12<br />
|3<br />
|No<br />
|<br />
|<br />
|Arena Deathmatch <br> Experimental<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|elixir|The Elixir}}<br />
|Bikerdude and Obsttorte<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19323-fan-mission-the-elixir-by-b1k3rdude-obsttorte-17022018/}} [https://www.youtube.com/watch?v=KfElYZs-FaE Briefing]<br />
|2018-02-17<br />
|112<br />
|Yes<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cauldron_v2_2|Volta 2: Cauldron of the Gods}}<br />
|Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19207-volta-ii-cauldron-of-the-gods/}} [https://www.youtube.com/watch?v=SRRCRVFHruc Briefing]<br />
|2017-11-30<br />
|252<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Volta series|Volta]]<br />
|Lost Civilizations<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|itb|In the Black}}<br />
|VanishedOne<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19185-fan-mission-in-the-black/}}<br />
|2017-11-18<br />
|103<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ac1|Accountant 1: Thieves and Heirs}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19164-fan-mission-the-accountant-1-thieves-and-heirs-by-goldwell-20171108}} [https://www.youtube.com/watch?v=Tk9DtOT4kjc Briefing]<br />
|2017-11-08<br />
|247<br />
|No<br />
|<br />
|[[Fan_Mission_Series#The Accountant series|The Accountant]]<br />
|Mansion/Estate<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|kotm|King of the Mountain}}<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/19105-fan-mission-king-of-the-mountain-by-spoonman-18092017/}}<br />
|2017-09-18<br />
|8.07<br />
|No<br />
|<br />
|<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|briarwood_manor|Briarwood Manor}}<br />
|NeonStyle<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18980-fan-mission-briarwood-manor-by-neonsstyle-first-mission-2017-07-11}} [https://www.youtube.com/watch?v=BZnSuLVatYM Trailer] [https://www.youtube.com/watch?v=CPlu8fEzyGM Briefing]<br />
|2017-07-11<br />
|90<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Spider<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|matterofhours|A Matter of Hours}}<br />
|Springheel<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18809-fan-mission-a-matter-of-hours-by-springheel-2842017/}}<br />
|2017-04-28<br />
|13<br />
|No<br />
|<br />
|[[Fan Mission Series#Corbin series|Corbin]]<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ravine|The Ravine}}<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18782-fan-mission-the-ravine-by-spoonman-17042017/}}<br />
|2017-04-17<br />
|30.6<br />
|No<br />
|<br />
|<br />
|Outdoor/Pagan<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bakery_job|The Bakery Job}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18707-fan-mission-the-bakery-job-by-sotha-20170309/}}<br />
|2017-03-09<br />
|2<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Mission 1: A New Job}}<br />
|Springheel<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18647-tdm-205-official-introductory-missions/}}<br />
|2017-03-14<br />
|13.8<br />
|Yes<br />
|Yes<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|City Missions <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|coercion|Coercion}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18405-fan-mission-coercion-by-sotha-20160927}}<br />
|2016-09-27<br />
|10<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|river|Down by the Riverside}}<br />
|Dragofer<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18402-fan-mission-down-by-the-riverside-by-dragofer-20160925}}<br />
|2016-09-25<br />
|56<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Of Brambles and Thorns series|Of Brambles and Thorns]]<br />
|Mansion/Estate <br> Ship <br> Horror<br />
|Horror themes, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny3|Penny Dreadful 3: Erasing the Trail}}<br />
|Melan and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18200-fan-mission-penny-dreadful-3-by-melan-and-bikerdude-20160710}}<br />
|2016-07-09<br />
|200<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|volta1_3|Volta 1: Volta and the Stone}}<br />
|Kingsal<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18087-fan-mission-volta-and-the-stone-by-kingsal-05262016}}<br />
|2016-05-27<br />
|102<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Volta series|Volta]]<br />
|Mansion/Estate <br> City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|fever|Full Moon Fever}}<br>(v2.0 2018/02/21)<br />
|Spoonman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18066-fan-mission-full-moon-fever-by-spoonman-14052016/}}<br />
|2016-05-14<br />
|21<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|kingofdiamonds|King of Diamonds}}<br />
|Spooks<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18064-fan-mission-the-king-of-diamonds-by-spooks-20160513}}<br />
|2016-05-13<br />
|26.3<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|Occult themes<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ac2|Accountant 2: New in Town}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/}} [https://www.youtube.com/watch?v=xeuIO_GcYjQ Briefing] <br> [https://www.youtube.com/watch?v=w6e_SJ0_JOM Gameplay trailer] <br />
|2016-05-08<br />
|358<br />
|No<br />
|<br />
|[[Fan_Mission_Series#The Accountant series|The Accountant]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cutpurse|The Smiling Cutpurse}}<br />
|Airship Ballet<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17850-fan-mission-the-smiling-cutpurse-by-airship-ballet-20160325/}}<br />
|2016-03-25<br />
|87<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> Sewers<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mother|Mother Rose}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17653-fan-mission-mother-rose-by-grayman-20160101/#entry385131/}}<br />
|2016-01-01<br />
|10<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|Ghost<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bcd|Behind Closed Doors}}<br />
|Bikerdude and the Crucible Team<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17627-crucible-of-omens-behind-closed-doors-by-bikerdude-the-crucible-team-updated-18122015/}}<br />
|2015-12-19<br />
|359<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Crucible of Omens series|Crucible of Omens]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|theratst|The Rats Triumphant}}<br />
|Melan<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17512-fan-mission-the-rats-triumphant-by-melan-20151031/}}<br />
|2015-10-31<br />
|11<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]] '''WINNER'''<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deaddrunk|Dead Drunk}}<br />
|Stumpy<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17511-fan-mission-dead-drunk-by-stumpy-20151030/}}<br />
|2015-10-30<br />
|4<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|remorse|Thief's Remorse}}<br />
|Airship Ballet<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17509-fan-mission-thiefs-remorse-by-airship-ballet-20151030/}}<br />
|2015-10-30<br />
|42<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|springcleaning|Spring Cleaning}}<br />
|Goldwell<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17510-fan-mission-spring-cleaning-by-goldwell-20151030/}} [https://www.youtube.com/watch?v=JzPpmDK9Fxw Briefing] <br />
|2015-10-30<br />
|45<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|the_golden_skull|The Golden Skull}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17497-fan-mission-the-golden-skull-by-sotha-20151024/}}<br />
|2015-10-25<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2015_Halloween_Speed-build_Contest|HSC 15]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ahouseoflockedsecrets|A House of Locked Secrets}}<br />
|Moonbo<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17163-fan-mission-a-house-of-locked-secrets-by-gelo-moonbo-fleisher-20150528/}} [https://www.youtube.com/watch?v=f5NuTJEZ8VE Trailer]<br />
|2015-05-29<br />
|195<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#Shadowcursed series|Shadowcursed]]<br />
|Church/Cathedral <br> Mansion/Estate<br />
|Horror themes, <br> Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|u2_flock|Ulysses 2: Protecting the Flock}}<br />
|Sotha<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17162-fan-mission-ulysses-2-protecting-the-flock-by-sotha-20150528/}}<br />
|2015-05-28<br />
|102<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Ulysses series|Ulysses]]<br />
|Church/Cathedral<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|talbot|Sir Talbot's Collateral}}<br />
|Baal and Bikerdude<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/17093-fan-mission-sir-talbots-collateral-by-baal-bikerdude-15042015/}} [https://www.youtube.com/watch?v=e3rdZfq4Omc Trailer]<br />
|2015-04-15<br />
|60<br />
|Yes<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat3|Vengeance for a Thief Part 3}}<br />
|Sir Taffsalot<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/16953-the-complete-vengeance-for-a-thief-campaign/}}<br />
|2015-02-16<br />
|25<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]]<br />
|Church/Cathedral<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|bathhouse|Lord Edgar's Bathhouse}}<br />
|Goldwell<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16828-fan-mission-lord-edgars-bathhouse-by-goldwell-27122014/}} [https://www.youtube.com/watch?v=vYSZY7VzFEo Briefing]<br />
|2014-12-27<br />
|71<br />
|No<br />
|<br />
|Lord Edgar<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|quinn|Quinn Co.}}<br>(Made into a campaign, 2015/02/04)<br>{{TDM-FM|m_lbb|La Banque Bienveillante}} {{Forumlink|1=https://forums.thedarkmod.com/index.php?/topic/21488-fan-mission-quinn-co-part-1-la-banque-bienveillante-remake-by-airship-ballet}}<br>(Re-Release, 2022/06/24)<br />
|Airship Ballet<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16912-fan-mission-chase-mercantile-by-airship-ballet-20150204/}}<br />
|2014-11-22<br />
|111<br />
|No<br />
|<br />
|Quinn Co.<br />
|Bank Jobs<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|exhumed|Exhumed}}<br />
|Airship Ballet and Kyyrma<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/16658-fan-mission-exhumed-by-kyyrma-and-airship-ballet-20141104/}}<br />
|2014-11-04<br />
|24<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2014 Halloween Speed-build Contest|HSC 14]]<br />
|Church/Cathedral <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|briarwood|Briarwood Cathedral}}<br />
|buck28<br />
|{{Mirrorlink|http://www64.zippyshare.com/v/25705489/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16644-briarwood-cathedral/}}<br />
|2014-10-29<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Master thief Corso series|Corso]] <br> [[Fan_Mission_Contests#2014 Halloween Speed-build Contest|HSC 14]]<br />
|Church/Cathedral <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|onesteptoofar|One Step Too Far}}<br />
|Dragofer<br />
|{{Mirrorlink|https://www.dropbox.com/s/sfxcap1gfdzf318/onesteptoofar.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16457-fan-mission-one-step-too-far-by-dragofer-20140804/}}<br />
|2014-08-04<br />
|9<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Of Brambles and Thorns series|Of Brambles and Thorns]]<br />
|Pirate <br> Ship<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lockner|Lockner Manor}}<br />
|buck28<br />
|{{Mirrorlink|http://www76.zippyshare.com/v/44108372/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16452-new-mission-lockner-manor/}}<br />
|2014-08-02<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Master thief Corso series|Corso]]<br />
|Mansion/Estate <br> Inn/Tavern<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ulysses_genesis|Ulysses: Genesis}}<br />
|Sotha<br />
|{{Mirrorlink|http://www4.zippyshare.com/v/67195436/file.html}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16428-fan-mission-ulysses-genesis-by-sotha-20140724/}}<br />
|2014-07-24<br />
|98<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Ulysses series|Ulysses]]<br />
|Mansion/Estate<br />
|Horror theme?<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny2_1|Penny Dreadful 2: All the way up}}<br />
|Melan and Bikerdude<br />
|{{Mirrorlink|https://mega.co.nz/#!EwoXHZYZ!tE_sKon2h4AWtWPNt9QS3FQClwmXdimhfjIMPcpCQ34}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16387-fan-mission-penny-dreadful-2-by-melan-and-bikerdude-2014078/}} [https://www.youtube.com/watch?v=WmPfCfbeWvg Trailer]<br />
|2014-07-08<br />
|102<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|Thieves' Highway / Rooftop<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|poets|Poets and Peasants}}<br />
|Digi<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B1HHvWAgbWGfTkI0SXFubXZucXM}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16373-fan-mission-poets-peasants-by-digi-62914}}<br />
|2014-06-29<br />
|1<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|follow|A Reputation to Uphold}}<br />
|Springheel<br />
|{{Mirrorlink|http://www.mindplaces.com/follow.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16204-fan-mission-a-reputation-to-uphold-by-springheel/}}<br />
|2014-04-18<br />
|25.5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|breakingout|Breaking Out the Fence}}<br />
|Kyyrma<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/breakingout.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16091-fan-mission-breaking-out-the-fence-17032014-by-kyyrma/}}<br />
|2014-03-17<br />
|11.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#In A Time of Need series|In A Time of Need]]<br />
|City Missions <br> Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|innbiz|Inn Business}}<br>(v.1.48, 2014/03/08)<br />
|RJFerret<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B81T2ZXLPqhTYWVaODRiSExGeGc}} {{Forumlink|1=http://forums.thedarkmod.com/topic/16018-fan-mission-inn-business-by-rjferret-20140303/}}<br />
|2014-03-03<br />
|6<br />
|No<br />
|<br />
|<br />
|Inn/Tavern <br> City Streets<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws3_cleighmoor|William Steele 3: Cleighmoor}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/16011-fan-mission-cleighmoor-by-grayman-201431/#entry338349/}}<br />
|2014-03-01<br />
|38<br />
|No<br />
|<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Sewers <br> Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws2_homeagain|William Steele 2: Home Again}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/15919-fan-mission-home-again-by-grayman-2014212/page__fromsearch__1}}<br />
|2014-02-12<br />
|26<br />
|No<br />
|<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|gatehouse1_3|The Gatehouse}}<br />
|Bikerdude Goldchocobo<br />
|{{Mirrorlink|http://www.southquarter.com/tdm/fms/gatehouse.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15844-fan-mission-the-gatehouse-by-bikerdude-goldchocobo-20140114/}} [https://www.youtube.com/watch?v=kcIe2Ucojqw Briefing]<br />
|2014-01-29<br />
|100<br />
|No<br />
|<br />
|Remake of Evilartist's Doom 3 mod<br />
|Castle/Fortress<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|windowopportunity|Window of Opportunity}}<br>(v.1.43, 2014/01/01)<br />
|RJFerret<br />
|{{Mirrorlink|https://drive.google.com/file/d/0B81T2ZXLPqhTWTMzQXZtMVFBSG8}} {{Forumlink|1=http://forums.thedarkmod.com/topic/15727-fan-mission-window-of-opportunity-by-rjferret-20140101/}}<br />
|2014-01-01<br />
|7<br />
|No<br />
|<br />
|<br />
|Outdoor/Caves<br />
|Spiders (not in short mode)<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|timeofneed|In A Time Of Need}}<br />
|kyyrma<br />
| {{Mirrorlink|http://www.mediafire.com/download/a97or40t1xrybh3/timeofneed_v1.zip}} {{Forumlink|http://forums.thedarkmod.com/topic/15354-fan-mission-in-a-time-of-need-by-kyyrma-20131112/}}<br />
|2013-11-12<br />
|5.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#In A Time of Need series|In A Time of Need]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|requiem|Requiem}}<br />
|Moonbo<br />
| {{Mirrorlink|http://www.mediafire.com/download/l6o3vvj9y78hu89/requiem.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15101-fan-mission-requiem-by-gelo-moonbo-fleisher-2013106/}}<br />
|2013-10-08<br />
|107.3<br />
|No<br />
|Yes<br />
|[[Fan_Mission_Series#Shadowcursed series|Shadowcursed]]<br />
|Lost Civilizations <br> Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat2|Vengeance for a Thief Part 2}}<br />
|Sir Taffsalot<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/vfat2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15051-fan-mission-vengeance-for-a-thief-part-2-by-sir-taffsalot-06092013/}}<br />
|2013-09-06<br />
|22<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]] <br> [[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|Museum Heists<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|lordsnlegacy|Lords and Legacy}}<br />
|Kvorning<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/lordsnlegacy.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/15016-fan-mission-lords-legacy-by-kvorning-20130830/}}<br />
|2013-08-30<br />
|45<br />
|No<br />
|<br />
|<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|naog|Not An Ordinary Guest}}<br />
|Fieldmedic<br />
| {{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/naog.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14965-fan-mission-not-an-ordinary-guest-by-fieldmedic-20130801/}}<br />
|2013-08-01<br />
|79.6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|penny1_1|Penny Dreadful: Grail of Regrets}}<br />
|Melan<br />
| {{Forumlink|http://forums.thedarkmod.com/topic/14952-fan-mission-penny-dreadful-by-melan-20130728/}}<br />
|2013-07-27<br />
|74<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Penny Dreadful series|Penny Dreadful]]<br />
|Horror <br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|solarescape1|Solar Escape 1}}<br />
|Tr00pertj<br />
| {{Forumlink|http://forums.thedarkmod.com/topic/14944-fan-mission-solar-escape-1/}}<br />
|2013-07-22<br />
|6<br />
|No<br />
|<br />
|<br />
|Mansion/Estate <br> Sewers<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|lich_queens_demise|The Lich Queen's Demise}}<br />
|Sotha<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/lich_queens_demise.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14826-fan-mission-the-lich-queens-demise-by-sotha-20130520/unread/}}<br />
|2013-05-20<br />
|97.6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]] '''WINNER'''<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|oldhabits2|Old Habits Rebuild}}<br />
|Obsttorte<br />
|{{Mirrorlink|http://www.mediafire.com/download/u2gwucibh17c45a/oldhabits.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14827-fan-mission-old-habits-rebuild-by-obsttorte-20052013/}}<br />
|2013-05-20<br />
|28.6<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|builders_blocks|The Builder's Blocks}}<br />
|Jesps<br />
|{{Mirrorlink|https://dl.dropboxusercontent.com/u/17706561/builders_blocks.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14592-unusual-gameplay-contest-fm-the-builders-blocks-by-jesps/}}<br />
|2013-03-18<br />
|2.85<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2013 Community Unusual Contest|CUC 13]]<br />
|Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|crystalgrave2_1|Crystal Grave}} <br>(v.2.0, 2013/02/09)<br />
|ERH+ Bikerdude<br />
|{{Mirrorlink|https://dl.dropbox.com/u/17706561/crystalgravev2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14510-fan-mission-crystal-grave-v2-by-erh-and-bikerdude-20130209/unread/}}<br />
|2011-11-15<br />
|12.4<br />
|No<br />
|<br />
|<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|broads|The Builder Roads}}<br />
|Obsttorte<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/14449-fan-mission-the-builder-roads-by-obsttorte-20130119/}}<br />
|2013-01-19<br />
|2.3<br />
|No<br />
|<br />
|<br />
|Church/Experimental <br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|ws1_north|William Steele 1: In the North}}<br />
|grayman<br />
|{{Forumlink|http://forums.thedarkmod.com/topic/14214-fan-mission-in-the-north-by-grayman-20121020/}}<br />
|2012-10-20<br />
|39.8<br />
|No<br />
|<br />
|[[Fan_Mission_Series#William Steele series|William Steele]]<br />
|Mansion/Estate<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|oldhabits1|Old Habits}}<br />
|Obsttorte<br />
|{{Mirrorlink|http://www.mediafire.com/download.php?andes2xnsonssfj}} {{Forumlink|http://forums.thedarkmod.com/topic/14206-fan-mission-old-habits-by-obsttorte-20121019/}}<br />
|2012-10-19<br />
|12.8<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|deceptiveshadowsv1_2|Deceptive Shadows}}<br />
|ShadowHide<br />
|{{Mirrorlink|http://www.sendspace.com/file/jzr9s7}} {{Forumlink|http://forums.thedarkmod.com/topic/14103-fan-mission-deceptive-shadows-by-shadowhide-16sep12/}}<br />
|2012-09-16<br />
|22.4<br />
|No<br />
|<br />
|<br />
|Outdoor/Pagan<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|vfat1|Vengeance for a Thief: Part 1}}<br />
|Sir Taffsalot <br />
|{{Mirrorlink|https://dl.dropbox.com/u/17706561/VFAT1.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/14068-fan-mission-vengeance-for-a-thief-part-1-by-sir-taffsalot-06092012/}}<br />
|2012-09-06<br />
|20.9<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Vengeance for a Thief series|VFAT]]<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|phrase_book|The Phrase Book}}<br />
|Sotha<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/phrase_book.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13799-fan-mission-the-phrase-book-by-sotha-20120512/}}<br />
|2012-05-11<br />
|24<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|remembrance|In Remembrance of Him}}<br />
|RPGista<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/remembrance.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13749-fan-mission-in-remembrance-of-him-by-rpgista/}}<br />
|2012-04-22<br />
|27.6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rightful|Rightful Property}}<br />
|jysk<br />
|{{Mirrorlink|http://dl.dropbox.com/u/17706561/rightful1.1b.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13711-fan-mission-rightful-property-by-jysk-20120413/}}<br />
|2012-04-12<br />
|22.5<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]]<br />
|Bank Jobs<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sneak_destroy|Sneak and Destroy}}<br>(v2 EFX, 2022/11/16)<br />
|SeriousToni<br />
|{{Mirrorlink|http://minus.com/mVcf61n3G/1f}} {{Forumlink|http://forums.thedarkmod.com/topic/13706-fan-mission-sneak-destroy-by-serioustoni-beginners-contest-2012/}}<br />
|2012-04-11<br />
|147<br />
|Yes<br />
|<br />
|[[Fan_Mission_Contests#2012_Community_Beginner_Contest|CBC 12]] '''WINNER'''<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|houseoftheo|House of Theo}}<br />
|Theothesnopp<br />
|{{Mirrorlink|http://www.gamefront.com/files/21053391/houseoftheo__2__2.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13242-fan-mission-house-of-theo/}}<br />
|2011-12-04<br />
|6.2<br />
|No<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|claw1_31|Dragon's Claw}}<br>(v1.31, 2020/11/02)<br />
|Bikerdude, Flanders (map assets)<br />
|{{Mirrorlink|http://www.gamefront.com/files/20948800/claw.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13181-fan-missiondragons-claw-by-b1k3rdude-31102011/}}<br />
|2011-10-31<br />
|98<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|antr|A Night to Remember}}<br>(v2.1, 2023/05/04)<br />
|Fieldmedic<br />
|New &rarr; {{Forumlink|http://forums.thedarkmod.com/topic/19452-a-night-to-remember/}} <br>Old &rarr; {{Forumlink|http://forums.thedarkmod.com/topic/13177-fan-mission-a-night-to-remember-by-fieldmedic-20111030/}}<br />
|2011-10-31<br />
|33<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Mansion/Estate <br> Horror<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thecreeps|The Creeps}}<br />
|Mortem Desino<br />
|{{Mirrorlink|http://www.gamefront.com/files/20939925/thecreeps.pk4}} {{Forumlink|http://forums.thedarkmod.com/topic/13176-fan-mission-creeps-the-20111030-by-mortem-desino/}}<br />
|2011-10-30<br />
|61<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Ghosts<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|blackbog|House in Blackbog Hollow}}<br />
|Stumpy<br />
|{{Mirrorlink|http://www.bookofages.co.uk/doom3/mods/blackbog.html}} {{Forumlink|http://forums.thedarkmod.com/topic/13172-fan-mission-house-in-blackbog-hollow-by-stumpy-20111028/}}<br />
|2011-10-28<br />
|12<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lstl|Let Sleeping Thieves Lie}}<br />
|Sir Taffsalot, Bikerdude<br />
|{{Mirrorlink|http://www.mediafire.com/?zkd1jn4lpwgioh9}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/13153-let-sleeping-thieves-lie-by-sir-taffsalot-bikerdude-20102011/}}<br />
|2011-10-20<br />
|13<br />
|No<br />
|<br />
|<br />
|Tombs, Catacombs & Crypts<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|samhain|Samhain Night}}<br>(v3.3, 2020/03/02)<br />
|PranQster<br />
|{{Mirrorlink|http://jdchoate.mcn.org/games/darkmod/samhain.zip}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/13127-fan-mission-samhain-night-on-bone-hill-by-pranqster-20111009/}}<br />
|2011-10-09<br />
|4.8<br />
|Yes<br />
|<br />
|[[Fan_Mission_Contests#2011_Halloween_Speed-build_Contest|HSC 11]]<br />
|Horror<br />
|Spiders, Undead<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|score_to_settle|A Score to Settle}}<br />
|Springheel<br />
|{{Mirrorlink|http://www.mediafire.com/?f3o7hm4h4ew7o3l}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12894-fan-mission-%2348-a-score-to-settle-by-springheel-20110701/}}<br />
|2011-07-01<br />
|135<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|siegeshop|Siege Shop}}<br>(v5.0 2020/09/07)<br />
|PranQster and Lowenz<br />
|{{Mirrorlink|http://jdchoate.mcn.org/games/darkmod/siegeshop.pk4}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12874-fan-mission-the-siege-shop-by-pranqster-20110626/}} {{Forumlink|https://forums.thedarkmod.com/index.php?/topic/20559-the-siege-shop-07092020/}}<br />
|2011-06-26<br />
|32.2<br />
|Yes<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|alberic3|Alberic's Curse}}<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.gamefront.com/files/20459738/alberic.pk4}} {{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12850-fan-mission-alberics-curse-by-b1k3rdude-20062011/}}<br />
|2011-06-20<br />
|29<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]] '''WINNER''' <br> T2 FM homage<br />
|Church/Cathedral<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|reap|Reap As You Sow}}<br />
|Fieldmedic<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12849-fan-mission-reap-as-you-sow-by-fieldmedic-20110619/}}<br />
|2011-06-19<br />
|52<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|Outdoor/Daylight <br> Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rake_off|Rake Off}}<br />
|Jesps<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12846-fm-rake-off-19-06-2011/}}<br />
|2011-06-19<br />
|8<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Selis Woderose series|Selis Woderose]] <br> [[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]] <br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Winter Harvest}}<br>(v2.0 2011/07/24 with Bikerdude)<br />
|ShadowHide<br />
|{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/12690-seasons-contest-entry-winter-harvest-by-shadowhide/}}<br />
|2011-05-08<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|Outdoor/Pagan<br />
|Spiders<br />
|-<br />
<br />
<br />
|-<br />
!align=left|{{TDM-FM|fauchard1_1|Fiasco at Fauchard Street}}<br />
|Melan<br />
|{{Mirrorlink|https://rapidshare.com/files/460141132/fauchard.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12655-fan-mission-fiasco-at-fauchard-street-by-melan-20110501//}}<br />
|2011-05-01<br />
|62<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]]<br />
|Thieves' Highway / Rooftop<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|mandrasola|Mandrasola}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?2ox2nbhh796ne71}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12575-fan-mission-mandrasola-by-sotha-20110410/}}<br />
|2011-04-10<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2011_Community Seasons Contest|CSC 11]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left| Q4 Conversion: Yan's Test<br />
|Bikerdude<br />
|{{Mirrorlink|https://www.moddb.com/mods/the-dark-mod/addons/yantdm1-1}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12506-fan-mission-q4-map-conversion-yantdm1-280311/}}<br />
|2011-03-28<br />
|28<br />
|No<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|transaction|The Transaction}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?ux7mx79wumnvcb6}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12408-fan-mission-the-transaction-by-sotha-20110304/}}<br />
|2011-03-04<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|City Missions<br />
|Horror Themes, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|returntothecity|Return to the City}}<br>(v3.0 2015/01/03)<br />
|Melan, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10509-fan-mission-return-to-the-city-by-melan-20100110/}} {{Forumlink|1=http://www.ttlg.com/forums/showthread.php?t=130519/}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12390-fan-mission-return-to-the-city-v2-01032011/}}<br />
|2010-01-10<br />
|26<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Sir Talbot series|Sir Talbot]] <br> [[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]] '''WINNER''' <br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|lockdown1_2_1|Lockdown}}<br />
|GameDevGoro Bikerdude Fidcal<br />
|{{Mirrorlink|http://www.fidcal.com/darkuser/missions/lockdown1_2_1.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/12064-fm-lockdown-part-1-by-gamedevgoro-and-bikerdude-20101224/}}<br />
|2010-12-25<br />
|3<br />
|No<br />
|<br />
|Lockdown 1<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|flakebridge|Flakebridge Monastery}}<br />
|Jesps<br />
|{{Mirrorlink|http://www.file-upload.net/download-3024426/flakebridge.pk4.html}} {{Mirrorlink|http://rapidshare.com/files/434997519/flakebridge.pk4}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11991-fm-flakebridge-monastery-by-jesps/}}<br />
|2010-12-05<br />
|16<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Selis Woderose series|Selis Woderose]]<br />
|Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|knighton_manor|Knighton Manor, The}}<br />
|Sotha<br />
|{{Mirrorlink|http://www.mediafire.com/?xrdts3j4t2qxre2}} {{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11898-fan-mission-the-knighton-manor-by-sotha-20101109/page__view__getnewpost}}<br />
|2010-11-09<br />
|21<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|cathedral|St Albans Cathedral}}<br>(v2.0 2014/06/11)<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.filefront.com/17464439/stac141.pk4}}{{Forumlink|1=http://forums.thedarkmod.com/topic/16343-fan-mission-st-albans-cathedral-v20-11062014/}} {{Loot|FM:TDM_St_Alban's_Cathedral_-_Bikerdude}}<br />
|2010-11-01<br />
|67<br />
|No<br />
|<br />
|[[Fan_Mission_Series#St Alban series|St Alban]] <br />
|Church/Cathedral<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|swing1_2|Swing}}<br />
|Komag<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11660-vertigo-contest-entry-swing-by-komag-20100825/}} {{Loot|FM:TDM_Swing_-_Komag}}<br />
|2010-08-25<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Platforming/Jumping <br> Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|caduceus|The Caduceus of St. Alban}}<br>(v.1.5.5 2010/08/26)<br />
|Bikerdude<br />
|{{Mirrorlink|http://www.filefront.com/17237609/stalban.pk4/}}{{Forumlink|http://forums.thedarkmod.com/topic/11644-the-caduceus-of-st-alban-vertical-fm-contest-entry-aug-8th-2010/}}<br />
|2010-08-23<br />
|11.3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#St Alban series|St Alban]] <br> [[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Church/Cathedral<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|somewhere1_1|Somewhere Above the City}}<br>(v1.1 2010/08/27)<br />
|grayman<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11619-vertical-contest-mission-somewhere-above-the-city-by-grayman-aug-20-2010/}} {{Loot|FM:TDM_Somewhere_Above_the_City_-_grayman}}<br />
|2010-08-20<br />
|11<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Tombs, Catacombs & Crypts<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|betrayal|Betrayal}}<br>(v.1.1, 2010/09/01)<br />
|Fieldmedic<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11605-betrayal-by-fieldmedic-20100817-summer-fm-vertical-contest-entry/}} {{Loot|FM:TDM_Awaiting_the_Storm_-_HappyCheeze}}<br />
|2010-08-17<br />
|12<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|rift|Rift, The}}<br />
|Baddcog<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11599-vert-contest-mission-the-rift-by-baddcog-aug-15-2010/}}<br />
|2010-08-15<br />
|10<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Lost Civilizations<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|holetower|Illusionist's Tower}}<br />
|stumpy<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11541-illusionists-tower-by-stumpy-201085-summer-fm-vertical-contest-entry}} {{Forumlink|1=http://www.bookofages.co.uk/doom3/mods/holetower.html}} {{Loot|FM:TDM_Illusionist%27s_Tower_-_stumpy}}<br />
|2010-08-05<br />
|9<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Horror <br> Experimental<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|madmountain|Mad's Mountain}}<br />
|Jesps<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11510-fan-mission-mads-mountain-by-jesps-20100731}} {{Loot|FM:TDM_Lord_Dufford%27s_-_stumpy}}<br />
|2010-07-31<br />
|2<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]]<br />
|Outdoor/Caves<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|glenham_tower|Glenham Tower, The}}<br />
|Sotha<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11423-fan-mission-the-glenham-tower-by-sotha-20100717}}<br />
|2010-07-17<br />
|5<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]] <br> [[Fan_Mission_Contests#2010 Summer Vertical Contest|SVC 10]] '''WINNER'''<br />
|Castle/Fortress <br> Horror<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|pandoras_box|Pandora's Box}}<br />
|Jesps, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11381-fan-mission-pandoras-box-by-jesps20100711}} {{Loot|FM:TDM_Pandora%27s_Box_-_Jesps}}<br />
|2010-07-11<br />
|7<br />
|No<br />
|<br />
|<br />
|Pirate <br> Ship <br> Experimental<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|beleaguered_fence|Beleaguered Fence, The}}<br />
|Sotha<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11298-fan-mission-the-beleaguered-fence-by-sotha-20100623}} {{Loot|FM:TDM_The_Beleaguered_Fence_-_Sotha}}<br />
|2010-06-23<br />
|11<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thomas Porter series|Thomas Porter]]<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|delivery|Special Delivery, A}}<br />
|Silencium18<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11247-fan-mission-a-special-delivery-by-silencium1820100612}} {{Loot|FM:TDM_A_Special_Delivery_-_Silencium18}}<br />
|2010-06-12<br />
|2<br />
|No<br />
|<br />
|<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|alchemist|Alchemist, The}}<br>(2010/06/04)<br />
|Sotha, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11170-fan-mission-the-alchemist-by-sotha-fidcal20100601}} {{Loot|FM:TDM_The_Alchemist_-_Sotha_%26_Fidcal}}<br />
|2010-06-01<br />
|27<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|storm|Awaiting The Storm}}<br />
|HappyCheeze<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11095-fm-awaiting-the-storm-by-happycheeze-20200522}} {{Loot|FM:TDM_Awaiting_the_Storm_-_HappyCheeze}}<br />
|2010-05-22<br />
|4<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sound_alert_trainer|Sound Alert & Blackjack Trainer}}<br />
|Dark Mod Team<br />
| <br />
|2010-05-14<br />
|0.2<br />
|No<br />
|<br />
|<br />
|Training <br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|nhat3|No Honor Among Thieves}}<br>(v.4.0 EFX, 2021/08/18)<br />
|Goldchocobo, RailGun, Mortem Desino, Bikerdude<br />
|{{Mirrorlink|http://tinyurl.com/2a9mdcs}}{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10993-fan-mission-no-honor-among-thieves-20100429}} {{Loot|FM:TDM_No_Honor_Among_Thieves_-_Goldchocobo}}<br />
|2010-04-29<br />
|229.8<br />
|Yes<br />
|<br />
|<br />
|Church/Cathedral; City Missions; Outdoor/Pagan, Mansion/Estate<br />
|Spiders, Undead<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|heartv2|Heart of Lone Salvation, The}}<br>(v.2.0, 2014/04/12)<br />
|Fidcal, Baddcog, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/10878-fan-mission-the-heart-of-lone-salvation-by-fidcal-baddcog-bikerdude-20100402/?p=213506}} {{Walkthrough|FM:TDM_The_Heart_of_Lone_Salvation_-_Fidcal_%26_Baddcog_%26_Bikerdude}} {{loot|FM:TDM_The_Heart_of_Lone_Salvation_-_Fidcal_%26_Baddcog_%26_Bikerdude}}<br />
|2010-04-02<br />
|41<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|dufford|Lord Dufford's}}<br />
|stumpy<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10868-fan-mission-lord-duffords-20100331}} {{Loot|FM:TDM_Lord_Dufford%27s_-_stumpy}}<br />
|2010-03-31<br />
|22<br />
|No<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|builders_influence|Builder's Influence, The}}<br>(2010/03/23)<br />
|Railgun, Springheel<br />
|{{Mirrorlink|http://www.fidcal.com/darkuser/missions/builders_influence.pk4}}{{Forumlink|http://forums.thedarkmod.com/index.php?/topic/10811-fan-mission-the-builders-influence-20100320/}} {{Loot|FM:TDM_The_Builders_Influence_-_Railgun%26Springheel}}<br />
|2010-03-20<br />
|15<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Corbin series|Corbin]]<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|business3|Business as Usual}}<br>(v3.0 2013/01/19)<br />
|Bikerdude<br />
|{{Mirrorlink|1=http://rapidshare.com/files/335299431/business.pk4.html}}{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/10533-fan-mission-business-as-usual-by-b1k3rdude-14012010-christmas-fm-contest-entry/page__view__findpost__p__207055}}{{Forumlink|https://forums.thedarkmod.com/index.php?/topic/14450-fan-mission-business-as-usual-v30-20130119/}}<br />
|2010-01-14<br />
|16.1<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Sewers<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|sons_of_baltona_1|Sons of Baltona 1, The}}<br />
|Carnage<br />
|{{Mirrorlink|1=http://www.mediafire.com/?m4ywobjodm0}}{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10498-fan-mission-the-sons-of-baltona-1-by-carnage-20100109}}<br />
|2010-01-09<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]] / Baltona 1<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|living_expenses|Living Expenses}}<br />
|Sonosuke<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10451-fm-living-expenses-by-sonosuke-2-jan-10/page__view__findpost__p__205386}}<br />
|2010-01-02<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|trapped|Trapped!}}<br />
|RailGun<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10442-fm-trapped-by-railgun-dec-30/page__view__findpost__p__205092}}<br />
|2009-12-30<br />
|6<br />
|No<br />
|<br />
|<br />
|Jail/Prison<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|parcel|Parcel, The}}<br />
|Xonze<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10404-fm-the-parcel-by-xonze-dec-24/page__view__findpost__p__204459}}<br />
|2009-12-24<br />
|7<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|too_late|Too Late}}<br />
|Nielsen74<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10400-fm-too-late-by-nielsen74-24-dec-09/page__view__findpost__p__204396}}<br />
|2009-12-24<br />
|4<br />
|No<br />
|<br />
|[[Fan_Mission_Contests#2009 Grand Christmas Contest|GCC 09]]<br />
|Warehouse<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thieves|Thieves}}<br />
|Silencium, RailGun, Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10286-fm-the-thieves-nov-2509/}}<br />
|2009-11-26<br />
|9<br />
|No <br> [https://www.moddb.com/mods/the-dark-mod/addons/unofficial-thieves-efx Unofficial EFX Build]<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|patently_dangerous|Patently Dangerous}}<br>(v.2.0 EFX, 2021/01/03)<br />
|demagogue<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10125-fm-patently-dangerous-oct3109/page__view__findpost__p__199324/}}<br />
|2009-10-31<br />
|22.5<br />
|Yes<br />
|<br />
|<br />
|City Missions<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Dark Mod Training Mission, The}}<br />
|TDM Team<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9932-fm-training-mission-17-oct-09/}}<br />
|2009-10-17<br />
|6<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|Training <br> Platforming/Jumping<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|crown_of_penitence|Crown of Penitence, The}}<br />
|Jesps<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9934-fm-crown-of-penitence-by-jesps-17-oct-09/}}<br />
|2009-10-16<br />
|12<br />
|No<br />
|<br />
|<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|chalice1_1|Chalice of Kings, The}}<br>(v.2.0, 2015/09/24) (Bikerdude and Xarg)<br />
|Fidcal<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9935-fm-chalice-of-kings-by-fidcal-17-oct-09/}} {{Loot|FM:TDM_Chalice_of_Kings_-_Fidcal}}<br />
|2009-10-15<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|outpost|Outpost, The}}<br />
|angua, greebo<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/9937-fm-the-outpost-by-angua-greebo-17-oct-09/}}<br />
|2008-12-23<br />
|2<br />
|No<br />
|<br />
|<br />
|Castle/Fortress<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM||Mission 2: Tears of Saint Lucia, The}}<br>(v.3.0, 2017/02/14)<br />
|TDM Team<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/10579-fan-mission-the-tears-of-st-lucia-20081021/page__view__findpost__p__207972}} {{Loot|FM:TDM_The_Tears_of_Saint_Lucia_-_jdude}} [https://www.youtube.com/watch?v=yrGxoi3LSGg Briefing]<br />
|2008-10-21<br />
|20.3<br />
|Yes (2.11)<br />
|Yes<br />
|[[Fan_Mission_Series#Introduction_campaign|Official Campaign]]<br />
|Church/Cathedral<br />
|Spiders<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|closemouthed_shadows|Closemouthed Shadows}}<br>(v.2.0, 2012/01/15)<br />
|LordSavage, Bikerdude<br />
|{{Forumlink|1=http://forums.thedarkmod.com/topic/13383-fan-mission-closemouthed-shadows-2008-reworked-for-tdm-107-20120115/}} <br />
|2008-09-21<br />
|2<br />
|No<br />
|<br />
|Closemouthed Shadows 1<br />
|Mansion/Estate<br />
|<br />
|-<br />
<br />
|-<br />
!align=left|{{TDM-FM|thiefsden|Thief's Den}}<br>(v.2.0, 2010/07/04)<br />
|Fidcal, greebo<br />
|{{Forumlink|1=http://forums.thedarkmod.com/index.php?/topic/11347-fan-mission-thiefs-den-re-release-by-fidcal20100704}} {{Walkthrough|FM:TDM_Thief's_Den_-_Fidcal}} {{Loot|FM:TDM_Thief%27s_Den_-_Fidcal}}<br />
|2008-01-18<br />
|3<br />
|No<br />
|<br />
|[[Fan_Mission_Series#Thief's Den series|Thief's Den]]<br />
|City Missions<br />
|<br />
|}<br />
<br />
To see a speculative list of Upcoming Fan Missions, please visit: [[Upcoming Fan Missions]]<br />
<br />
== Table notes ==<br />
<br />
'''Links Key'''<br />
{|class="wikitable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2<br />
|-<br />
|[https://wiki.thedarkmod.com/images/b/be/Icon_forum.png https://wiki.thedarkmod.com/images/b/be/Icon_forum.png]<br />
|Link to discussion in Forums<br />
|-<br />
|{{Mirrorlink|}}<br />
|Misc. download mirror<br />
|-<br />
|{{Loot|}}<br />
|Loot list<br />
|-<br />
|{{Walkthrough|}}<br />
|Walkthrough<br />
|}<br />
<br />
----<br />
<br />
'''Mission Type Key'''<br />
<br />
''Bear in mind that individual FMs can have combinations of two or three of these overarching genres/themes, rather than just a single one.''<br />
<br />
{|class="wikitable" border=1 style="border-collapse: collapse;" cellspacing=0 cellpadding=2<br />
|-<br />
|'''''Bank Jobs'''''<br />
|Fan mission involving a heist or other thievy action inside a local banking institution. Will often contain the outsmarting of security systems, gaining access to a safe and cracking its code.<br />
|-<br />
|'''''Castle/Fortress'''''<br />
|Fan mission involving a heist or other thievy action inside or outside a castle or fortress, either one that serves as a military garrison, or as someone's private residence. Frequently involves background characters from the nobility. <br />
|-<br />
|'''''City Missions'''''<br />
|Fan mission that is set mainly in the streets and public spaces of an urban area, such as a town or city. Though the player is most often out on the streets, these missions tend to also involve some degree of exploration and infiltration into private and public buildings alike.<br />
|-<br />
|'''''Church/Cathedral'''''<br />
|Fan mission set in and around religious buildings and institutions, such as churches, monasteries, cathedrals, church bureaus, church workshops, etc. Frequently involves [[Clergy/Builder_Characters|ecclesiastical characters]] from the TDM setting's [[Builders|Builder Church]].<br />
|-<br />
|'''''Experimental'''''<br />
|Fan mission which involves some creative design or gameplay element that isn't typical for the vast majority of TDM missions. FMs set in highly unusual environments, or with a puzzle-like nature, can fit under this label.<br />
|-<br />
|'''''Inn/Tavern'''''<br />
|Fan mission set mostly in and around an inn, tavern or shanty. Usually focused on robbing some rich guest, acquiring an item stored by the guest at the inn, or gathering intel at the inn.<br />
|-<br />
|'''''Jail/Prison'''''<br />
|Fan mission involving an escape from a prison (by the imprisoned player character), infiltration of a prison to gather intel from inmates or help an inmate escape the prison, etc.<br />
|-<br />
|'''''Lost Civilizations'''''<br />
|Fan mission focused on the exploration of ancient ruins, whether above ground or in deep subterranean caverns. Can often overlap with the ''Horror'' or ''Tombs, Catacombs & Crypts'' type of mission, but not necessarily.<br />
|-<br />
|'''''Horror'''''<br />
|Fan mission with an overt horror theme. Depending on the author's approach and intentions, it can focus on psychological horror, or horror based on danger from supernatural threats, or varying combinations of both. <br />
|-<br />
|'''''Mansion/Estate'''''<br />
|Fan mission involving a heist or other thievy action inside someone's private residence (a fancy house, a manor house) and its surrounding grounds. Frequently involves background characters from the nobility or the more affluent townsmen or citizens. <br />
|-<br />
|'''''Museum Heists'''''<br />
|Fan mission focusing on a heist in a museum, art gallery or other institution storing priceless artefacts, artworks, gemstone collections, etc.<br />
|-<br />
|'''''Outdoor/Caves'''''<br />
|Fan mission set in a mostly natural outdoor environment, but involving the exploration of natural caves and caverns.<br />
|-<br />
|'''''Outdoor/Daylight'''''<br />
|Fan mission set in a mostly outdoor environment, during the daytime (in contrast to the usual TDM missions, set at night time or early dusk).<br />
|-<br />
|'''''Outdoor/Pagan'''''<br />
|Fan mission set in a mostly natural outdoor environment, involving some presence of [[Pagans|pagan tribes]] from TDM's setting. Perhaps even pagan camps and settlements.<br />
|-<br />
|'''''Pirate'''''<br />
|Fan mission involving the presence of characters engaging in piracy or smuggling, and various related piratical themes. Can overlap with the ''Ship'' type of mission, but not necessarily.<br />
|-<br />
|'''''Platforming/Jumping'''''<br />
|Fan mission focusing on testing the player's movement, jumping and climbing skills, with or without equipment. <br />
|-<br />
|'''''Sewers'''''<br />
|Fan mission which involves the use of the city sewers or others sewers in some way, often as a stealthy means of entry or escape.<br />
|-<br />
|'''''Ship'''''<br />
|Fan mission which takes place aboard a vessel, in port or at sea, or otherwise involves ships to a great degree. Can overlap with the ''Pirate'' type of mission, but not necessarily.<br />
|-<br />
|'''''Thieves' Highway / Rooftop'''''<br />
|Fan mission involving a lot of movement and travel on the rooftops of a town or city (colloquially "The Thieves' Highway").<br />
|-<br />
|'''''Tombs, Catacombs & Crypts'''''<br />
|Fan mission involving the exploration of old tombs, catacombs and crypts, often for the purposes of treasure and artefact hunting. Can often overlap with the ''Horror'' or ''Lost Civilizations'' type of mission, but not necessarily.<br />
|-<br />
|'''''Training'''''<br />
|Fan mission label that is unique to the official Training Mission, an open-ended tutorial mission where players can practice and test their TDM gameplay skills at their own leisure, and to the smaller blackjacking-trainer FM, which focuses on practicing NPC knockouts by the player.<br />
|-<br />
|'''''Warehouse'''''<br />
|Fan mission which takes place in and around a warehouse, usually in some industrial area of a city, or at a port. <br />
|}<br />
<br />
----<br />
<br />
'''Contest Key'''<br />
<br />
GCC 09: [[Fan_Mission_Contests#2009 Grand Christmas Contest|Grand Christmas Contest 2009]]<br />
<br />
SVC 10: [[Fan_Mission_Contests#2010 Summer Vertical Contest|Summer Vertical Contest 2010]]<br />
<br />
CSC 11: [[Fan_Mission_Contests#2011 Community Seasons Contest|Community Seasons Contest 2011]]<br />
<br />
HSC 11: [[Fan_Mission_Contests#2011 Halloween Speed-build Contest|Halloween Speed-Build Contest 2011]]<br />
<br />
CBC 12: [[Fan_Mission_Contests#2012 Community Beginner Contest|Community Beginner Contest 2012]]<br />
<br />
CUC 13: [[Fan_Mission_Contests#2013 Community Unusual Contest|Community Unusual Contest 2013]]<br />
<br />
HSC 14: [[Fan_Mission_Contests#2014 Halloween Speed-build Contest|Halloween Speed-Build Contest 2014]]<br />
<br />
HSC 15: [[Fan_Mission_Contests#2015 Halloween Speed-build Contest|Halloween Speed-Build Contest 2015]]<br />
<br />
CCC 22: Christmas Connections Contest 2022<br />
<br />
----<br />
<br />
== Editing this table ==<br />
* Please only include playable missions that are fully released, not those currently in development or testing. Tutorials, demos, prefabs, etc. should be listed elsewhere. <br />
* A mission title may be listed in plain text as a record of release, or preferably a link to an information page or primary direct download.<br />
* List by release date descending (newest at the top).<br />
* If a fan mission only has a single mirror/host please consider adding additional mirrors.<br />
<br />
== See also ==<br />
* [[https://wiki.thedarkmod.com/index.php?title=Category:Official_FMs Fan missions]] An index of fan mission pages on this wiki.<br />
* [[https://wiki.thedarkmod.com/index.php?title=Category:Official_missions_(OMs) Official missions]] An index of Oficial mission pages on this wiki.<br />
* [[Fan Mission Series]] - An overview of all currently known series or campaigns of fan missions interconnected by their stories or characters. There are already plenty in TDM, and have been since its early days as an expandable game.<br />
* [[Mission recommendation discussions]] - An overview of past discussions on what FMs the community recommends to players looking for various challenges (difficulty, size, theme, setting, objectives, etc.).<br />
* [[Fan Mission Contests]] - An overview of past and present contests in Fan Mission creation, by members of the TDM community.<br />
* [[Upcoming Fan Missions]] - An overview of Fan Missions in development or tentatively planned. (''Do not'' edit the overview.)<br />
* [https://tdmdb.com/missions tdmdb.com] An external TDM mission database, which data is partly coming from this wiki page.<br />
<br />
{{general|sort=Fan Missions}}<br />
[[Category:Fan Missions]]<br />
[[Category:Official FMs| ]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Light_Properties&diff=30952Light Properties2023-12-24T00:58:35Z<p>Datiswous: /* Volumetric light ( new 2.10 ) */</p>
<hr />
<div><br />
== Introduction == <br />
<br />
For Doom 3 (and subsequently, The Dark Mod), there are 4 different types of lights at our disposal. Each has their own advantages and drawbacks, and hopefully this article will help to familiarize The Dark Mod hopefuls with their use. For information on creating lights and a lot of other useful information, see [[A - Z Beginner Full Guide Start Here!]]<br />
<br />
<br />
__TOC__<br />
<br />
<br />
==Light Volume Properties==<br />
<br />
=== Point Light ===<br />
<br />
A point light is the default light (also the default for fog). No option must be checked to make a light a point light. A point light casts light, and subsequently shadows in all directions evenly, falling off after a distance defined by the light texture. This works best for most small indoor and outdoor lighting, like lamps, candles, fireplaces etc. For this reason, it is going to be the most used type.<br />
<br />
* Note, a misconception about Point Light is that they project spherically. The box shaped bounding volume in Dark Radiant is no mere simplification, it is the literal area affected by the light for calculation purposes. Point Light volumes should be perceived as cylindrical prisms that on one axis are shaped by the silhouette of the [[Light_Properties#Lighting_Textures | projection texture]] (think of a stack of cheese cut with a cookie cutter) and the other axis (z-axis) traditionally determines the distance from origin brightness (usually vertical... or how tall you make your cheese stack) with the LightFalloffImage.<br />
<br />
* Note 2, as of TDM 2.05 cubicLight lights offer true spherical falloff.<br />
<br />
<br />
=== Projected Light ===<br />
<br />
Projected light is just as the name suggests. It is probably more intuitive and easier to use than a parallel light and is better for things like projecting a window-shaped light on the floor of a room or a spotlight on a wall. To make one, select projected instead of the default omni option at the top of the light inspector. <br />
<br />
This creates a triangular prism as the bounding box for the light (instead of a rectangular prism like a regular light), with the point ending right at the entity itself. This can be rotated using any of the XYZ rotation buttons or manually using DarkRadiant’s rotation tool (shortcut R). <br />
<br />
You can also manipulate the projected light via the vertices (shortcut V to enable vertices dragging). By dragging the vertices in the center of the projected square, you can lengthen and change the angle of the projection while keeping the projected square the same size. To resize the projection, use the two side vertices in the correct XYZ grid view. Making the bounding box flat against a surface (like a floor) is usually unnecessary (for example, making a moonlight window light on a floor or wall), because with shadows enabled and making the projection long enough to intersect the plane on which the shadow is to be cast, the full shadow will be cast (its simple geometry and just requires minor toying). <br />
<br />
As with all the lights, projected lights have a full range of color and texture options to let the mapper find just the effect they need, allowing you to create a great atmosphere for your map.<br />
<br />
* As of TDM 2.06, cubicLight entities do not work properly with Projected lights. Please only use cubicLight with Point lights.<br />
<br />
=== Parallel Light ===<br />
<br />
A light is said to be parallel when the parallel checkbox is checked in the light inspector. It is subject to all the same options as a point light, but it has a few distinct differences. A parallel light tends to not care exactly where the entity itself is placed. The most important thing is where the light_center vertex is placed and where the light entities bounding box intersects with elements in your map. <br />
<br />
The light_center vertex starts right in the middle of the entity. The main difference between the parallel and point lights is that a parallel light does not radiate from the origin around the entity itself. What controls the direction that shadows are cast is the placement of the light_center vertex. Shadows will run parallel (hence the name) to a line between this vertex and the light entity itself. This makes it an excellent choice for sunlight or moonlight. As such, it has some of the elements of a point light and a projected light, it can seem to radiate in a circle (if you use the appropriate texture) whilst casting a shadow in any direction preferred.<br />
<br />
Switch to Vertex mode in [[DarkRadiant]] to drag the light_center vertex of your selected light entity.<br />
<br />
Posted by Greebo: Also, note that a parallel light will only light surfaces "matching" the direction of the "light vector" <br>(origin minus light_center). All other surfaces will stay completely unlit, therefore it should be combined with an ambient light to <br>achieve good lighting effects. [https://forums.thedarkmod.com/index.php?/topic/8091-parallel-lights-vs-point-lights/&tab=comments#comment-159842]<br />
<br />
==== Parallel-sky light ====<br />
<br />
The main problem with parallel light is that: while it does not radiate light rays from the light origin, the origin still matters when engine flows light rays through visportals. An ordinary parallel light always works properly in the visleaf where its origin is located. In addition to that, it takes effect in all the other visleafs which can be reached from the starting visleaf through visportals by travelling along the direction of the light. So in order to create a global moon/sun light which will light many outdoor areas, one has to create a separate visleaf above the outdoor areas, which would contain the light and have portals leading down to every outdoor area below. It is quite complicated.<br />
<br />
In TDM 2.08, a new spawnarg '''parallelSky''' was added. If you add it to a parallel light and set value "1", then the light will emanate from every visleaf containing surfaces with textures/smf/portal_sky material. This usually includes all outdoors area automatically. Note that other (i.e. indoors) areas are also included if they can be reached from outdoors areas through open visportals, so the light should work correctly indoors if someone opens a door.<br />
<br />
==== Troubleshooting Parallel Lights ====<br />
<br />
''I added a parallel light but I can’t see any light at all!''<br />
<br />
Parallel lights can have some quirks. The light seems to fail and do nothing when intersecting multiple walls that are parallel to the face the light is actually casting on. It seems the light will work as long as it doesn’t intersect a face parallel to the one it is casting light on. <br />
<br />
''I have a parallel light but it casts a jagged light on my floor!''<br />
<br />
Similar to above, a parallel light can sometimes have anomalies when intersecting multiple walls and a floor. Since having the light intersect multiple walls when it can only cast on one of them, having a massive bounding box is pointless anyways so pay attention to what the light is touching and you should be fine.<br />
<br />
==Light Interaction Properties==<br />
<br />
=== Normal Light ===<br />
<br />
This is the default light type. It performs all the surface interaction stages and shadow calculations. It has the heaviest performance impact.<br />
<br />
=== cubicLight ===<br />
<br />
New as of TDM 2.05, it is similar to Normal Light but accepts a cubemap as the projection image and uses a spherical z-falloff pattern rather than a falloff image. <br />
<br />
The shader was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod". Duzenko ported portions of it to GLSL.<br />
<br />
CubicLight projection is used in many 3D engines with the most common parlance being "Cookie Lights". Unity "Cookie Lights" can be used as a reference. <br />
<br>(For comparison, I am not aware of any 3D engine other than id Tech 4 that used the 1D + 2D projection images.)<br />
<br />
As of TDM 2.06, GLSL versions of this shader will only perform Point light (omni) operations. Projected is broken.<br />
<br />
=== Ambient Light ===<br />
<br />
Ambient light is really just a lighting texture, but it is also a specific item that is needed in practically every map, so for those purposes it will be treated as if it were its own subset of lights.<br />
<br />
Properties: No shadows, No specular, Bumpmapping or Directionality (Note: The "Enhance Ambient" does add Bumpmapping )<br />
<br />
Use the ambientLight keyword.<br />
<br />
An ambient light can be any form: it can be a point, parallel or even projected (though projected would probably be useless). <br />
<br />
The only requirement of an ambient light is to use one of the available ambient light textures, accessible by opening the light inspector (with the shortcut L in DarkRadiant, and get used to using it), and selecting ambientlightnfo from the list.<br />
<br />
<br />
* Ambient Light is covered in more detail in [[A_-_Z_Beginner_Full_Guide_Page_2#Ambient_Light:_Gloom_not_Doom| Ambient Light: Gloom not Doom]]<br />
<br />
* To understand The Dark Mod's unique ambient light detection system see: [[Virtual Darkness]]<br />
<br />
* Ambient Light can be set to automatically adjust color and brightness per "location" see: [[Location Settings]] and [[Dynamic ambient light]]<br />
<br />
<br />
==== lightAmbientDiffuse and lightAmbientSpecular ( Previously ambientCubicLight ) ====<br />
<br />
New as of TDM 2.05. This is intended to provide an effect similar to Valve's "Precomputed Radiance Transfer" lighting in Half Life 2.<br />
It was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod".<br />
<br />
In TDM 2.06, the new GLSL version of the shader (developed by Duzenko) accepts (industry standard) irradiance cubemap images. <br />
<br />
* A new image program "makeIrradiance" was also created to use existing skybox cubemap images.<br />
<br />
'''In 2.11 ambientCubicLight was replaced by two material global keywords'''<br />
<br />
* lightAmbientDiffuse - meant for the standard diffuse response<br />
<br />
* lightAmbientSpecular - incorporates cubemap reflections into the specular response<br />
<br />
Both keywords are mean to be used with either 3rd party irradiance cubemaps or the "bakeAmbientDiffuse" and "bakeAmbientSpecular" keywords.<br />
<br />
Example material:<br />
<br />
<pre><br />
lights/ambientCube/cubeSky<br />
{<br />
ambientLight<br />
lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/cubesky))<br />
lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/cubesky))<br />
{<br />
map lights/squarelight_amb.tga<br />
colored<br />
zeroClamp<br />
}<br />
} <br />
</pre><br />
<br />
See also:<br />
<br />
https://forums.thedarkmod.com/index.php?/topic/19803-tutorial-image-based-lighting-workflows-for-tdm/<br />
<br />
=== Fog Light ===<br />
<br />
This applies Doom 3's style distance fog to a light volume. The texture applied will become more opaque with distance away from the viewer. There is a variant called No Portal Fog which will not apply opaque fog to Portal areas in view. ( [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|Beginner Tutorial: Fog]] )<br />
<br />
In rare cases, you may wish for some surface inside a fog-volume to be fog-free. You can use the "noFog" keyword in the material definition for the texture applied to this surface to keep it from being "fogged".<br />
<br />
Very thin fog (or BlendLight ) can also be used to soften the apparent light interactions near surfaces in a similar manner to the Post Process shader effect but with more mapper control. You can fake certain radiosity effects simply by amplifying small ambient light with small thin fog volumes. <br />
<br />
Use the fogLight keyword.<br />
<br />
==== noFogBoundary ====<br />
<br />
Fog lights don't actually paint mist in the air, which would slow down performance quite a bit. They achieve their effect by fogging out the colour of the surfaces that they hit, proportionate to the depth of fog that lies between the player and the surface. In addition, if there is no surface between the player and the edge of the fog volume, they paint fog on the invisible walls of their own bounding volume. That's needed for a large open scene, for example, where there might be no surface between the player and the edge of the fog volume. If you're in a misty forest, and there happened to be no tree visible in a certain direction, you'd expect to see grey fog rather than clear space between the fogged trees.<br />
<br />
Sometimes you don't want that to happen, for example if you're using a very large but very light fog to simulate atmospheric perspective in a town. You want the colour and detail of buildings to fade with distance, but you don't want heavy fog blocking the view of the sky in the gaps between buildings where you see to the very edge of the big fog light. You can use spawnarg "noFogBoundary" for that. It lets fog paint on solid surfaces, while leaving empty space and caulk sky free of fog effects.<br />
<br />
==== noPortalFog ====<br />
<br />
This is a Doom 3 Global Material keyword that disables the optimization that auto-closes portals that are past the fully fogged<br />
<br>radius. It can be used to prevent lights and emissive surfaces from turning off suddenly producing a jarring and unnatural effect.<br />
<br />
In TDM 2.12 (alpha) development builds, this is now an entity spawnarg as well so authors do not need to create override materials to use this feature.<br />
<br />
==== noFog ( new 2.07 ) ====<br />
<br />
As of TDM 2.07, you can apply a noFog global material flag to the material def or the noFog entity spawnarg to the entity def and this will prevent fogging on these surfaces or entities.<br />
<br>Most visual fog issues are in cases where fog is "not" applied somewhere. Therefore, this is mostly a performance related argument or can be used as a special effects.<br />
<br />
==== fogAlpha ( new 2.08 ) ====<br />
<br />
As of TDM 2.08, you can apply a fogAlpha keyword to alpha textures to determine whether they receive fog. The value is a floating point number between 0 and 1<br />
<br>which determines how intensely the fog affects the alpha texture.<br />
<br />
=== Blend Light ===<br />
<br />
Blend lights can be considered to be like volumetric decals. They do not perform most of the interaction shader operations and merely apply a texture to a volume using an [https://modwiki.dhewm3.org/Blend_(Material_stage_keyword) OpenGL Blend Mode]. Blend lights have the least performance impact. Blend lights can also be used to create [http://www.doom3world.org/phpbb2/viewtopic.php?f=1&t=12256&start=0&st=0&sk=t&sd=a "negative light"]. <br />
<br />
Example negative light shader:<br />
<br />
<pre><br />
lights/bdog_testBlendLight2<br />
{<br />
blendLight<br />
lightFalloffImage makeintensity( textures/blackdog/blendlight_falloff_inverse.tga )<br />
{<br />
blend gl_zero, gl_one_minus_src_color<br />
map textures/blackdog/blackdog_icon_inverse.tga<br />
zeroclamp<br />
//alphazeroclamp<br />
colored<br />
} <br />
}<br />
</pre><br />
<br />
Use the blendLight keyword.<br />
<br />
=== Volumetric light ( new 2.10 ) ===<br />
<br />
Volumetric light makes the whole light volume slightly visible to the player (added in TDM 2.10).<br />
The related spawnargs are:<br />
<br />
* '''volumetric_light''' = 0: Set to 1 to enable volumetric light.<br />
* '''volumetric_dust''' = 0.002: How strong the volumetric effect is (reduce it if too bright).<br />
* '''volumetric_noshadows''': How volumetric light handles shadows (see below).<br />
<br />
The spawnarg <tt>volumetric_noshadows</tt> only affects the volumetric effect, and has three different values (default value is taken from <tt>noshadows</tt> spawnarg):<br />
* '''= 0''': Shadows must be respected. If that's not possible, then the whole volumetric effect must be disabled.<br />
* '''= 1''': Shadows must be ignored.<br />
* '''= -1''': Shadows should be respected. But if that's not possible, then shadows can be ignored as well. {{red|--- useless in TDM 2.11}}<br />
<br />
There are several reasons why engine can fail to support shadows in volumetric light:<br />
# Player <s>uses stencil shadows (<tt>r_shadows 1</tt>) or </s>([https://bugs.thedarkmod.com/view.php?id=5880#c15076 fixed in TDM 2.11]) disabled volumetric light sampling (<tt>r_volumetricSamples 0</tt>).<br />
# Shadow maps are not yet supported for the particular light. This happens for large lights, for instance.<br />
# Shadows were disabled on the light itself (<tt>noshadows</tt>).<br />
{{Clear}}<br />
<br><br />
<br />
== '''Light Settings''' ==<br />
<br />
There are several settings with which to customize your lights. These settings allow the mapper to customize the look of a light (or a combination of lights) into a near infinity of looks. All are accessed through the light inspector (shortcut of L in DarkRadiant)<br />
<br />
<br />
=== Color ===<br />
<br />
The color palette allows the mapper to pick the color of the light emitted, arguably one of the most useful controls the mapper has over a light. To access it, click the button under the “Colour” heading. From there, adjust the settings until you find a correct color (can take some trial and error). In a game like The Dark Mod or Doom 3, where darkness is often more prevalent than light, the color picked often needs to be darker than expected. Without a direct brightness option, the color takes on this task. For a low level ambient light, the color picked would be almost pitch black. A pitch black light would not cast any light, but anything less than pitch black will cast a faint light. As such, it can take some trial and error to find the correct light for a situation, as initially, one is likely to pick a seemingly correct color only to find it is far too bright. <br />
<br />
Remember: changing light settings or adding lights (and models) does not require re-compiling the map!<br />
<br />
<br />
=== Radius ===<br />
<br />
The 'radius' of your light can be changed by dragging its corners around in the 2d windows. Doom 3 lights do not have an actual radius, they are actually square lights and will light up everything they touch inside their bounding box in the editor. They will evenly light everything to their edges. While square lights might seem fairly odd there are options to make them more believable and have a nice fade, namely the 'texture' applied.<br />
<br />
Tip: you can rotate a light so only one corner will touch a wall and make a triangular shaped light. <br />
<br />
Or rotate it so 2 corners touch a wall and make a line of light.<br />
<br />
'''Changing Radius of Light Entity:'''<br />
<br />
If you put a premade light entity into your map, the radius of the light won't be visible. <br />
<br />
To change it, use the following syntax (and whichever value you wish):<br />
<br />
<pre><br />
<br />
"set _color on flame" "0.9 0.8 0.7"<br />
"set light_radius on flame" "250 250 250"<br />
<br />
</pre><br />
<br />
With lanterns and such use 'light' and with torches and candles etc use 'flame'.<br />
<br />
<pre><br />
<br />
"set _color on light" "0.9 0.8 0.7"<br />
"set light_radius on light" "250 250 250"<br />
<br />
</pre><br />
<br />
(Copied from Baddcog's old "Lighting A to Z" article)<br />
<br />
<br />
=== Parallel === <br />
<br />
Selecting this option turns the light into a parallel light (as opposed to a point or projected light). See [[Light Properties#Parallel Light|Parallel Light]]<br />
<br />
<br />
=== Do not cast shadows (fast) ===<br />
<br />
As the name suggests, this setting causes the light to not cast shadows on any object. This can cause the light itself to not be confined by walls, which can sometimes be beneficial and sometimes not. The main purpose of enabling this option is performance. Shadows are processor intensive and are not needed in some cases, so removing them wherever not beneficial to gameplay can vastly improve performance. Note that ambient lights never cast any shadows. Another way to improve performance similarly is to set the entity property on a model or func_static (this doesn’t work on worldspawn) <tt>noshadows</tt> to 1.<br />
<br />
* '''Further details''': [[Turning Shadows Off]] , [[Noselfshadows]]<br />
<br />
=== Skip Specular Lighting ===<br />
<br />
Specular Lighting refers to a texture's specular map, wherein a flat surface (such as a wall) is painted with a texture that has a specular component. This causes a surface to have shinier and duller parts on a flat surface based on the darkness of the corresponding location on the specular map. Not all textures have specular maps. Checking this option could improve performance or remove the effect if it is not wanted. [https://modwiki.dhewm3.org/Texturing#specular-maps]<br />
<br />
=== Spectrum ===<br />
<br />
You may use the "spectrum" keyword to isolate specific lights to specific materials which have the same spectrum value in their material definition.<br />
[https://modwiki.dhewm3.org/Spectrum_(Material_global_keyword) Spectrum Keyword at Modwiki]<br />
<br />
In TDM 2.07 spectrum was added as an entity spawnarg<br />
<br />
==== lightspectrum (new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keyword "lightspectrum" that only affects standard lights and allows ambient lights<br />
to render as expected. This makes it much more useful to control where lights are allowed to illuminate<br />
<br />
==== nospectrum ( new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keywork "nospectrum" that will bypass spectrum behavior for all spectrum lights except the one whose spectrum number you specify.<br />
This will force all spectrum lights to illuminate this entity.<br />
<br />
== Other light settings ==<br />
<br />
=== AI sight ( new 2.04 ) ===<br />
<br />
Spawnarg '''ai_see''' controls whether the light is visible to AI. It defaults to "1", i.e. the light does help AI to see. You can set this spawnarg to "0" to make accent lights that will (1) not affect the player's lightgem, and (2) won't make suspicious objects like rope arrows more visible to AI.<br />
<br />
=== AreaLock ( new 2.08 ) ===<br />
<br />
Forces the light to stop rendering when the visleaf that contains its origin is closed.<br />
<br />
== Chandeliers ==<br />
<br />
Typically chandeliers are setup with multiple particle flames, but just one light entity (for better performance). Bind the candles to the chandelier, then if one is doused, all will extinguish. (See the prefab for an example.)<br />
<br />
<br />
== Lighting Textures ==<br />
<br />
[[Image:LT_Projectedlight.png|400px|thumb|Rich_is_Bored's Example]]<br />
<br />
The lighting textures are also accessed in the light inspector. <br />
<br />
<br />
Lights can be modified by two different texture types:<br />
<br />
* Projection Image - This is the texture that is projected on the surface<br />
* LightFalloffImage - This texture varies the intensity of the light through the volume along the Z Axis <br />
* (Notes: While the Falloff Image is a 2D texture it is rendered as 1D (one dimensional). You will notice that almost all Falloff Images are thin strips with perpendicular stripes. Traditionally, Falloff will be used to diminish the light with distance to the source but you can violate the physics of real lights and have the intensity increase with distance or vary intensity from bright to dim to bright... etc. )<br />
<br />
These textures allow the mapper to change the intensity and falloff of a light. <br />
<br />
Light textures with the addition of material keywords like [https://modwiki.dhewm3.org/Scroll_(Material_stage_keyword) scroll],[https://modwiki.dhewm3.org/Rotate_(Material_stage_keyword) rotate], etc. will grant lights the ability to animate and produce special effects such as; <br />
<br />
* A moving light for a fireplace <br />
* A candle or torch<br />
* A light flickering along with sound volume. <br />
<br />
One can also apply a fog texture to the light (the only way built into Doom 3 to create fog). Color is of a similar concern when [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|creating fog]], as noted in [[Light Properties#Color|Color]]<br />
<br />
* A typical "Light Shader" [https://iddevnet.dhewm3.org/doom3/materials.html material] definition<br />
<br />
<pre><br />
<br />
lights/My_Custom_Light1<br />
{<br />
<br />
lightFalloffImage makeIntensity( textures/My_Custom_Light1_Z ) // Falloff Image<br />
<br />
{ <br />
forceHighQuality<br />
map textures/My_Custom_Light1_XY // Z-Projection Image<br />
zeroClamp<br />
}<br />
<br />
}<br />
<br />
</pre> <br />
<br />
(For advanced detail and techniques see [[Light Textures and Falloff Images]] )<br />
<br />
== Further reading == <br />
<br />
* [[Performance:_Essential_Must-Knows#Lighting_Performance_Options|Lighting Performance Options]]<br />
* [[Relighting Lights]]<br />
* A great tutorial on outdoor lighting can be found here: [https://www.katsbits.com/tutorials/idtech/dynamic-outdoor-lighting-techniques.php Dynamic outdoor lighting techniques]<br />
* Modwiki's summarized Doom 3 lighting article: [https://modwiki.dhewm3.org/Light Light]<br />
<br />
<br />
{{tutorial-editing}}<br />
[[Category:Lighting]]<br />
[[Category:Ambient Light]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Light_Properties&diff=30951Light Properties2023-12-24T00:51:32Z<p>Datiswous: Undo revision 30931 by Datiswous (talk)</p>
<hr />
<div><br />
== Introduction == <br />
<br />
For Doom 3 (and subsequently, The Dark Mod), there are 4 different types of lights at our disposal. Each has their own advantages and drawbacks, and hopefully this article will help to familiarize The Dark Mod hopefuls with their use. For information on creating lights and a lot of other useful information, see [[A - Z Beginner Full Guide Start Here!]]<br />
<br />
<br />
__TOC__<br />
<br />
<br />
==Light Volume Properties==<br />
<br />
=== Point Light ===<br />
<br />
A point light is the default light (also the default for fog). No option must be checked to make a light a point light. A point light casts light, and subsequently shadows in all directions evenly, falling off after a distance defined by the light texture. This works best for most small indoor and outdoor lighting, like lamps, candles, fireplaces etc. For this reason, it is going to be the most used type.<br />
<br />
* Note, a misconception about Point Light is that they project spherically. The box shaped bounding volume in Dark Radiant is no mere simplification, it is the literal area affected by the light for calculation purposes. Point Light volumes should be perceived as cylindrical prisms that on one axis are shaped by the silhouette of the [[Light_Properties#Lighting_Textures | projection texture]] (think of a stack of cheese cut with a cookie cutter) and the other axis (z-axis) traditionally determines the distance from origin brightness (usually vertical... or how tall you make your cheese stack) with the LightFalloffImage.<br />
<br />
* Note 2, as of TDM 2.05 cubicLight lights offer true spherical falloff.<br />
<br />
<br />
=== Projected Light ===<br />
<br />
Projected light is just as the name suggests. It is probably more intuitive and easier to use than a parallel light and is better for things like projecting a window-shaped light on the floor of a room or a spotlight on a wall. To make one, select projected instead of the default omni option at the top of the light inspector. <br />
<br />
This creates a triangular prism as the bounding box for the light (instead of a rectangular prism like a regular light), with the point ending right at the entity itself. This can be rotated using any of the XYZ rotation buttons or manually using DarkRadiant’s rotation tool (shortcut R). <br />
<br />
You can also manipulate the projected light via the vertices (shortcut V to enable vertices dragging). By dragging the vertices in the center of the projected square, you can lengthen and change the angle of the projection while keeping the projected square the same size. To resize the projection, use the two side vertices in the correct XYZ grid view. Making the bounding box flat against a surface (like a floor) is usually unnecessary (for example, making a moonlight window light on a floor or wall), because with shadows enabled and making the projection long enough to intersect the plane on which the shadow is to be cast, the full shadow will be cast (its simple geometry and just requires minor toying). <br />
<br />
As with all the lights, projected lights have a full range of color and texture options to let the mapper find just the effect they need, allowing you to create a great atmosphere for your map.<br />
<br />
* As of TDM 2.06, cubicLight entities do not work properly with Projected lights. Please only use cubicLight with Point lights.<br />
<br />
=== Parallel Light ===<br />
<br />
A light is said to be parallel when the parallel checkbox is checked in the light inspector. It is subject to all the same options as a point light, but it has a few distinct differences. A parallel light tends to not care exactly where the entity itself is placed. The most important thing is where the light_center vertex is placed and where the light entities bounding box intersects with elements in your map. <br />
<br />
The light_center vertex starts right in the middle of the entity. The main difference between the parallel and point lights is that a parallel light does not radiate from the origin around the entity itself. What controls the direction that shadows are cast is the placement of the light_center vertex. Shadows will run parallel (hence the name) to a line between this vertex and the light entity itself. This makes it an excellent choice for sunlight or moonlight. As such, it has some of the elements of a point light and a projected light, it can seem to radiate in a circle (if you use the appropriate texture) whilst casting a shadow in any direction preferred.<br />
<br />
Switch to Vertex mode in [[DarkRadiant]] to drag the light_center vertex of your selected light entity.<br />
<br />
Posted by Greebo: Also, note that a parallel light will only light surfaces "matching" the direction of the "light vector" <br>(origin minus light_center). All other surfaces will stay completely unlit, therefore it should be combined with an ambient light to <br>achieve good lighting effects. [https://forums.thedarkmod.com/index.php?/topic/8091-parallel-lights-vs-point-lights/&tab=comments#comment-159842]<br />
<br />
==== Parallel-sky light ====<br />
<br />
The main problem with parallel light is that: while it does not radiate light rays from the light origin, the origin still matters when engine flows light rays through visportals. An ordinary parallel light always works properly in the visleaf where its origin is located. In addition to that, it takes effect in all the other visleafs which can be reached from the starting visleaf through visportals by travelling along the direction of the light. So in order to create a global moon/sun light which will light many outdoor areas, one has to create a separate visleaf above the outdoor areas, which would contain the light and have portals leading down to every outdoor area below. It is quite complicated.<br />
<br />
In TDM 2.08, a new spawnarg '''parallelSky''' was added. If you add it to a parallel light and set value "1", then the light will emanate from every visleaf containing surfaces with textures/smf/portal_sky material. This usually includes all outdoors area automatically. Note that other (i.e. indoors) areas are also included if they can be reached from outdoors areas through open visportals, so the light should work correctly indoors if someone opens a door.<br />
<br />
==== Troubleshooting Parallel Lights ====<br />
<br />
''I added a parallel light but I can’t see any light at all!''<br />
<br />
Parallel lights can have some quirks. The light seems to fail and do nothing when intersecting multiple walls that are parallel to the face the light is actually casting on. It seems the light will work as long as it doesn’t intersect a face parallel to the one it is casting light on. <br />
<br />
''I have a parallel light but it casts a jagged light on my floor!''<br />
<br />
Similar to above, a parallel light can sometimes have anomalies when intersecting multiple walls and a floor. Since having the light intersect multiple walls when it can only cast on one of them, having a massive bounding box is pointless anyways so pay attention to what the light is touching and you should be fine.<br />
<br />
==Light Interaction Properties==<br />
<br />
=== Normal Light ===<br />
<br />
This is the default light type. It performs all the surface interaction stages and shadow calculations. It has the heaviest performance impact.<br />
<br />
=== cubicLight ===<br />
<br />
New as of TDM 2.05, it is similar to Normal Light but accepts a cubemap as the projection image and uses a spherical z-falloff pattern rather than a falloff image. <br />
<br />
The shader was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod". Duzenko ported portions of it to GLSL.<br />
<br />
CubicLight projection is used in many 3D engines with the most common parlance being "Cookie Lights". Unity "Cookie Lights" can be used as a reference. <br />
<br>(For comparison, I am not aware of any 3D engine other than id Tech 4 that used the 1D + 2D projection images.)<br />
<br />
As of TDM 2.06, GLSL versions of this shader will only perform Point light (omni) operations. Projected is broken.<br />
<br />
=== Ambient Light ===<br />
<br />
Ambient light is really just a lighting texture, but it is also a specific item that is needed in practically every map, so for those purposes it will be treated as if it were its own subset of lights.<br />
<br />
Properties: No shadows, No specular, Bumpmapping or Directionality (Note: The "Enhance Ambient" does add Bumpmapping )<br />
<br />
Use the ambientLight keyword.<br />
<br />
An ambient light can be any form: it can be a point, parallel or even projected (though projected would probably be useless). <br />
<br />
The only requirement of an ambient light is to use one of the available ambient light textures, accessible by opening the light inspector (with the shortcut L in DarkRadiant, and get used to using it), and selecting ambientlightnfo from the list.<br />
<br />
<br />
* Ambient Light is covered in more detail in [[A_-_Z_Beginner_Full_Guide_Page_2#Ambient_Light:_Gloom_not_Doom| Ambient Light: Gloom not Doom]]<br />
<br />
* To understand The Dark Mod's unique ambient light detection system see: [[Virtual Darkness]]<br />
<br />
* Ambient Light can be set to automatically adjust color and brightness per "location" see: [[Location Settings]] and [[Dynamic ambient light]]<br />
<br />
<br />
==== lightAmbientDiffuse and lightAmbientSpecular ( Previously ambientCubicLight ) ====<br />
<br />
New as of TDM 2.05. This is intended to provide an effect similar to Valve's "Precomputed Radiance Transfer" lighting in Half Life 2.<br />
It was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod".<br />
<br />
In TDM 2.06, the new GLSL version of the shader (developed by Duzenko) accepts (industry standard) irradiance cubemap images. <br />
<br />
* A new image program "makeIrradiance" was also created to use existing skybox cubemap images.<br />
<br />
'''In 2.11 ambientCubicLight was replaced by two material global keywords'''<br />
<br />
* lightAmbientDiffuse - meant for the standard diffuse response<br />
<br />
* lightAmbientSpecular - incorporates cubemap reflections into the specular response<br />
<br />
Both keywords are mean to be used with either 3rd party irradiance cubemaps or the "bakeAmbientDiffuse" and "bakeAmbientSpecular" keywords.<br />
<br />
Example material:<br />
<br />
<pre><br />
lights/ambientCube/cubeSky<br />
{<br />
ambientLight<br />
lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/cubesky))<br />
lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/cubesky))<br />
{<br />
map lights/squarelight_amb.tga<br />
colored<br />
zeroClamp<br />
}<br />
} <br />
</pre><br />
<br />
See also:<br />
<br />
https://forums.thedarkmod.com/index.php?/topic/19803-tutorial-image-based-lighting-workflows-for-tdm/<br />
<br />
=== Fog Light ===<br />
<br />
This applies Doom 3's style distance fog to a light volume. The texture applied will become more opaque with distance away from the viewer. There is a variant called No Portal Fog which will not apply opaque fog to Portal areas in view. ( [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|Beginner Tutorial: Fog]] )<br />
<br />
In rare cases, you may wish for some surface inside a fog-volume to be fog-free. You can use the "noFog" keyword in the material definition for the texture applied to this surface to keep it from being "fogged".<br />
<br />
Very thin fog (or BlendLight ) can also be used to soften the apparent light interactions near surfaces in a similar manner to the Post Process shader effect but with more mapper control. You can fake certain radiosity effects simply by amplifying small ambient light with small thin fog volumes. <br />
<br />
Use the fogLight keyword.<br />
<br />
==== noFogBoundary ====<br />
<br />
Fog lights don't actually paint mist in the air, which would slow down performance quite a bit. They achieve their effect by fogging out the colour of the surfaces that they hit, proportionate to the depth of fog that lies between the player and the surface. In addition, if there is no surface between the player and the edge of the fog volume, they paint fog on the invisible walls of their own bounding volume. That's needed for a large open scene, for example, where there might be no surface between the player and the edge of the fog volume. If you're in a misty forest, and there happened to be no tree visible in a certain direction, you'd expect to see grey fog rather than clear space between the fogged trees.<br />
<br />
Sometimes you don't want that to happen, for example if you're using a very large but very light fog to simulate atmospheric perspective in a town. You want the colour and detail of buildings to fade with distance, but you don't want heavy fog blocking the view of the sky in the gaps between buildings where you see to the very edge of the big fog light. You can use spawnarg "noFogBoundary" for that. It lets fog paint on solid surfaces, while leaving empty space and caulk sky free of fog effects.<br />
<br />
==== noPortalFog ====<br />
<br />
This is a Doom 3 Global Material keyword that disables the optimization that auto-closes portals that are past the fully fogged<br />
<br>radius. It can be used to prevent lights and emissive surfaces from turning off suddenly producing a jarring and unnatural effect.<br />
<br />
In TDM 2.12 (alpha) development builds, this is now an entity spawnarg as well so authors do not need to create override materials to use this feature.<br />
<br />
==== noFog ( new 2.07 ) ====<br />
<br />
As of TDM 2.07, you can apply a noFog global material flag to the material def or the noFog entity spawnarg to the entity def and this will prevent fogging on these surfaces or entities.<br />
<br>Most visual fog issues are in cases where fog is "not" applied somewhere. Therefore, this is mostly a performance related argument or can be used as a special effects.<br />
<br />
==== fogAlpha ( new 2.08 ) ====<br />
<br />
As of TDM 2.08, you can apply a fogAlpha keyword to alpha textures to determine whether they receive fog. The value is a floating point number between 0 and 1<br />
<br>which determines how intensely the fog affects the alpha texture.<br />
<br />
=== Blend Light ===<br />
<br />
Blend lights can be considered to be like volumetric decals. They do not perform most of the interaction shader operations and merely apply a texture to a volume using an [https://modwiki.dhewm3.org/Blend_(Material_stage_keyword) OpenGL Blend Mode]. Blend lights have the least performance impact. Blend lights can also be used to create [http://www.doom3world.org/phpbb2/viewtopic.php?f=1&t=12256&start=0&st=0&sk=t&sd=a "negative light"]. <br />
<br />
Example negative light shader:<br />
<br />
<pre><br />
lights/bdog_testBlendLight2<br />
{<br />
blendLight<br />
lightFalloffImage makeintensity( textures/blackdog/blendlight_falloff_inverse.tga )<br />
{<br />
blend gl_zero, gl_one_minus_src_color<br />
map textures/blackdog/blackdog_icon_inverse.tga<br />
zeroclamp<br />
//alphazeroclamp<br />
colored<br />
} <br />
}<br />
</pre><br />
<br />
Use the blendLight keyword.<br />
<br />
=== Volumetric light ( new 2.10 ) ===<br />
<br />
Volumetric light makes the whole light volume slightly visible to the player (added in TDM 2.10).<br />
The related spawnargs are:<br />
<br />
* '''volumetric_light''' = 0: Set to 1 to enable volumetric light.<br />
* '''volumetric_dust''' = 0.002: How strong the volumetric effect is (reduce it if too bright).<br />
* '''volumetric_noshadows''': How volumetric light handles shadows (see below) --- useless in TDM 2.11.<br />
<br />
The spawnarg <tt>volumetric_noshadows</tt> only affects the volumetric effect, and has three different values (default value is taken from <tt>noshadows</tt> spawnarg):<br />
* '''= 0''': Shadows must be respected. If that's not possible, then the whole volumetric effect must be disabled.<br />
* '''= 1''': Shadows must be ignored.<br />
* '''= -1''': Shadows should be respected. But if that's not possible, then shadows can be ignored as well.<br />
<br />
There are several reasons why engine can fail to support shadows in volumetric light:<br />
# Player <s>uses stencil shadows (<tt>r_shadows 1</tt>) or </s>([https://bugs.thedarkmod.com/view.php?id=5880#c15076 fixed in TDM 2.11]) disabled volumetric light sampling (<tt>r_volumetricSamples 0</tt>).<br />
# Shadow maps are not yet supported for the particular light. This happens for large lights, for instance.<br />
# Shadows were disabled on the light itself (<tt>noshadows</tt>).<br />
{{Clear}}<br />
<br><br />
<br />
== '''Light Settings''' ==<br />
<br />
There are several settings with which to customize your lights. These settings allow the mapper to customize the look of a light (or a combination of lights) into a near infinity of looks. All are accessed through the light inspector (shortcut of L in DarkRadiant)<br />
<br />
<br />
=== Color ===<br />
<br />
The color palette allows the mapper to pick the color of the light emitted, arguably one of the most useful controls the mapper has over a light. To access it, click the button under the “Colour” heading. From there, adjust the settings until you find a correct color (can take some trial and error). In a game like The Dark Mod or Doom 3, where darkness is often more prevalent than light, the color picked often needs to be darker than expected. Without a direct brightness option, the color takes on this task. For a low level ambient light, the color picked would be almost pitch black. A pitch black light would not cast any light, but anything less than pitch black will cast a faint light. As such, it can take some trial and error to find the correct light for a situation, as initially, one is likely to pick a seemingly correct color only to find it is far too bright. <br />
<br />
Remember: changing light settings or adding lights (and models) does not require re-compiling the map!<br />
<br />
<br />
=== Radius ===<br />
<br />
The 'radius' of your light can be changed by dragging its corners around in the 2d windows. Doom 3 lights do not have an actual radius, they are actually square lights and will light up everything they touch inside their bounding box in the editor. They will evenly light everything to their edges. While square lights might seem fairly odd there are options to make them more believable and have a nice fade, namely the 'texture' applied.<br />
<br />
Tip: you can rotate a light so only one corner will touch a wall and make a triangular shaped light. <br />
<br />
Or rotate it so 2 corners touch a wall and make a line of light.<br />
<br />
'''Changing Radius of Light Entity:'''<br />
<br />
If you put a premade light entity into your map, the radius of the light won't be visible. <br />
<br />
To change it, use the following syntax (and whichever value you wish):<br />
<br />
<pre><br />
<br />
"set _color on flame" "0.9 0.8 0.7"<br />
"set light_radius on flame" "250 250 250"<br />
<br />
</pre><br />
<br />
With lanterns and such use 'light' and with torches and candles etc use 'flame'.<br />
<br />
<pre><br />
<br />
"set _color on light" "0.9 0.8 0.7"<br />
"set light_radius on light" "250 250 250"<br />
<br />
</pre><br />
<br />
(Copied from Baddcog's old "Lighting A to Z" article)<br />
<br />
<br />
=== Parallel === <br />
<br />
Selecting this option turns the light into a parallel light (as opposed to a point or projected light). See [[Light Properties#Parallel Light|Parallel Light]]<br />
<br />
<br />
=== Do not cast shadows (fast) ===<br />
<br />
As the name suggests, this setting causes the light to not cast shadows on any object. This can cause the light itself to not be confined by walls, which can sometimes be beneficial and sometimes not. The main purpose of enabling this option is performance. Shadows are processor intensive and are not needed in some cases, so removing them wherever not beneficial to gameplay can vastly improve performance. Note that ambient lights never cast any shadows. Another way to improve performance similarly is to set the entity property on a model or func_static (this doesn’t work on worldspawn) <tt>noshadows</tt> to 1.<br />
<br />
* '''Further details''': [[Turning Shadows Off]] , [[Noselfshadows]]<br />
<br />
=== Skip Specular Lighting ===<br />
<br />
Specular Lighting refers to a texture's specular map, wherein a flat surface (such as a wall) is painted with a texture that has a specular component. This causes a surface to have shinier and duller parts on a flat surface based on the darkness of the corresponding location on the specular map. Not all textures have specular maps. Checking this option could improve performance or remove the effect if it is not wanted. [https://modwiki.dhewm3.org/Texturing#specular-maps]<br />
<br />
=== Spectrum ===<br />
<br />
You may use the "spectrum" keyword to isolate specific lights to specific materials which have the same spectrum value in their material definition.<br />
[https://modwiki.dhewm3.org/Spectrum_(Material_global_keyword) Spectrum Keyword at Modwiki]<br />
<br />
In TDM 2.07 spectrum was added as an entity spawnarg<br />
<br />
==== lightspectrum (new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keyword "lightspectrum" that only affects standard lights and allows ambient lights<br />
to render as expected. This makes it much more useful to control where lights are allowed to illuminate<br />
<br />
==== nospectrum ( new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keywork "nospectrum" that will bypass spectrum behavior for all spectrum lights except the one whose spectrum number you specify.<br />
This will force all spectrum lights to illuminate this entity.<br />
<br />
== Other light settings ==<br />
<br />
=== AI sight ( new 2.04 ) ===<br />
<br />
Spawnarg '''ai_see''' controls whether the light is visible to AI. It defaults to "1", i.e. the light does help AI to see. You can set this spawnarg to "0" to make accent lights that will (1) not affect the player's lightgem, and (2) won't make suspicious objects like rope arrows more visible to AI.<br />
<br />
=== AreaLock ( new 2.08 ) ===<br />
<br />
Forces the light to stop rendering when the visleaf that contains its origin is closed.<br />
<br />
== Chandeliers ==<br />
<br />
Typically chandeliers are setup with multiple particle flames, but just one light entity (for better performance). Bind the candles to the chandelier, then if one is doused, all will extinguish. (See the prefab for an example.)<br />
<br />
<br />
== Lighting Textures ==<br />
<br />
[[Image:LT_Projectedlight.png|400px|thumb|Rich_is_Bored's Example]]<br />
<br />
The lighting textures are also accessed in the light inspector. <br />
<br />
<br />
Lights can be modified by two different texture types:<br />
<br />
* Projection Image - This is the texture that is projected on the surface<br />
* LightFalloffImage - This texture varies the intensity of the light through the volume along the Z Axis <br />
* (Notes: While the Falloff Image is a 2D texture it is rendered as 1D (one dimensional). You will notice that almost all Falloff Images are thin strips with perpendicular stripes. Traditionally, Falloff will be used to diminish the light with distance to the source but you can violate the physics of real lights and have the intensity increase with distance or vary intensity from bright to dim to bright... etc. )<br />
<br />
These textures allow the mapper to change the intensity and falloff of a light. <br />
<br />
Light textures with the addition of material keywords like [https://modwiki.dhewm3.org/Scroll_(Material_stage_keyword) scroll],[https://modwiki.dhewm3.org/Rotate_(Material_stage_keyword) rotate], etc. will grant lights the ability to animate and produce special effects such as; <br />
<br />
* A moving light for a fireplace <br />
* A candle or torch<br />
* A light flickering along with sound volume. <br />
<br />
One can also apply a fog texture to the light (the only way built into Doom 3 to create fog). Color is of a similar concern when [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|creating fog]], as noted in [[Light Properties#Color|Color]]<br />
<br />
* A typical "Light Shader" [https://iddevnet.dhewm3.org/doom3/materials.html material] definition<br />
<br />
<pre><br />
<br />
lights/My_Custom_Light1<br />
{<br />
<br />
lightFalloffImage makeIntensity( textures/My_Custom_Light1_Z ) // Falloff Image<br />
<br />
{ <br />
forceHighQuality<br />
map textures/My_Custom_Light1_XY // Z-Projection Image<br />
zeroClamp<br />
}<br />
<br />
}<br />
<br />
</pre> <br />
<br />
(For advanced detail and techniques see [[Light Textures and Falloff Images]] )<br />
<br />
== Further reading == <br />
<br />
* [[Performance:_Essential_Must-Knows#Lighting_Performance_Options|Lighting Performance Options]]<br />
* [[Relighting Lights]]<br />
* A great tutorial on outdoor lighting can be found here: [https://www.katsbits.com/tutorials/idtech/dynamic-outdoor-lighting-techniques.php Dynamic outdoor lighting techniques]<br />
* Modwiki's summarized Doom 3 lighting article: [https://modwiki.dhewm3.org/Light Light]<br />
<br />
<br />
{{tutorial-editing}}<br />
[[Category:Lighting]]<br />
[[Category:Ambient Light]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor&diff=30948Stim/Response Editor2023-12-20T12:44:13Z<p>Datiswous: /* Change Patrol */</p>
<hr />
<div>= Stim / Response Editor =<br />
<br />
<br />
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. <br />
<br />
For more general reading on stims and responses, please see also the pages [[Stim/Response]] and [[Stim/Response Key/Values]].<br />
<br />
= Stims =<br />
<br />
To add a Stim or Response to an entity, open the Stim/Response editor:<br />
Select the entity and - from the menu bar - go to Entity > Stim/Response.<br />
The Stim/Response Editor has three tabs: Stims, Responses and Custom Stims.<br />
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.<br />
<br />
To add a non-custom Stim, select the "Stims" tab.<br />
From here, it is possible to add a Stim from the drop-down menu next to the "Add" button, clicking the Add button and choosing a stim from the "Type" drop-down menu at the top ("Frob" being the default) or using a keyboard shortcut by pressing the initial letter of the Stim type you'd like to add.<br />
<br />
Select the Stim to edit from the numbered list on the left.<br />
If no Stim type is selected, all options presented on the right are greyed out.<br />
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]].<br />
<br />
= Responses =<br />
<br />
The Response Editor is a simplified way to create basic scripts without need for deeper knowledge in scripting for TDM.<br />
It works similar to the Stim Editor, but for adding Stims that will act as entity Responses.<br />
In the Responses tab, the Stim to which the selected entity should respond is selected in the same way as the Stims tab.<br />
<br />
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.<br><br />
To add an effect, right-click in the "Response Effects" window and press, "Add new Effect".<br><br />
Double-clicking the numbered Response (or right-clicking it and choosing "Edit") will open the "Edit Response Effect" box, in which it is possible to select the target entity, type of Stim (as args) and the Response effect itself.<br />
<br />
<br />
<br />
== Available effects ==<br />
<br />
* '''Activate Response:''' Activates the Response for the stated Stim Type on the stated Entity.<br />
** E.g. the player must give a fire stim to a furnace in order to have a door react to a frob Stim.<br />
* '''Activate Shooter:''' Activates the named Shooter entity.<br />
** E.g. Can be used to activate a trap.<br />
* '''Activate Stim:''' Activates the Stim for the stated Stim Type on the named Entity.<br />
** E.g. Adds a damage stim to the furnace after a fire stim is given.<br />
* '''Add Target: ''' Adds the stated Target to the named Entity.<br />
** E.g. Add a new path_corner to a patrol route.<br />
* '''Apply Stim:''' Fires a Stim of the stated Stim Type to the named Target.<br />
** The Source can be changed, but is not necessary.<br />
* '''Blind AI:''' Blinds the named AI as if a flash bomb has been used on it.<br />
* '''Clear Targets:''' Removes all Target-args from the named Entity.<br />
* '''Damage:''' Applies a damage type to the stated Target. By default, both the player and AI have a response to Damage stims. If time_interval is not set, it defaults to firing every millisecond, which will kill anything almost instantly.<br />
** Damage Defs can be found in the def file "darkmod/tdm_defs01.pk4/defs/tdm_damage.def". (I think this would have to be changed at the response level, on the player and AI)<br />
* '''Deactivate Response:''' Deactivates the Response for the stated Stim Type on the named Entity.<br />
* '''Deactivate Shooter:''' Deactivates the stated Shooter.<br />
** E.g. Can be used to disarm a trap.<br />
* '''Deactivate Stim:''' Deactivates the Stim for the stated Stim Type on the named Entity.<br />
* '''Disable Effect:''' Disables only one Effect on the named Entity.<br />
** 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.<br />
* '''Enable Effect:''' Enables only one Effect on the stated Entity.<br />
** 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.<br />
* '''Fade Light Color:''' Changes the colour of the named Target Light to the stated Color over a time of Fade Time seconds.<br />
* '''Frob:''' Frobs the named Entity as if it had been frobbed by the player.<br />
* '''Gas Knockout:''' Knocks out the named Target as if it had been hit with a gas arrow.<br />
* '''Heal:''' Heals the named Target by the stated Amount.<br />
* '''Kill:''' Kills the named Target. AI don't have a default Response to this as standard. <br />
* '''Knockout:''' Knocks out the named Target as if it had been hit with the blackjack.<br />
* '''Turn extinguishable Light Off:''' Extinguishes the named extinguishable Light.<br />
* '''Turn extinguishable Light On:''' (Re)ignites the named extinguishable Light.<br />
* '''Turn Light Off:''' Turns off the named Light.<br />
* '''Turn Light On:''' Turns on the named Light.<br />
* '''Move To Position:''' Moves the named Entity to the stated Position (coordinates: X Y Z).<br />
** If the box "Relative to old origin" is ticked, the Entity is moved (X Y Z) units from its current location.<br />
* '''Move To Random Position:''' Moves the named Entity to a random position inside the "Within Radius" range.<br />
* '''Play Animation:''' Plays the stated Animation for the stated Entity.<br />
** 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.<br />
* '''Play Sound:''' Play the named entity's stated Sound.<br />
** The channel can be limited (e.g. to the player voice or ambient), but this can also be left blank.<br />
* '''Play Sound Shader:''' 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.<br />
* '''Remove:''' Removes the named Target from the map.<br />
* '''Run Script:''' Runs the named Script. For more information on scripts refer to [[Scripting basics]].<br />
* '''Set AI Team:''' Change the named AI's team to the stated Team.<br />
** For a list of which AI belongs to which team by default, refer to [[AI_Relations_(Editing)#AI_Types_.28Teams.29|AI Relations]]<br />
* '''Set Angles:''' Set the named Target's rotation to the stated Angles (in pitch/yaw/roll).<br />
** As with Move To Position, this is also possible relative to the entity's current angles.<br />
* '''Set Frobable:''' Sets the named Entity as frobable (box checked) or unfrobable (box unchecked).<br />
* '''Set Light Color:''' Changes the colour of the named Target Light to the stated Color.<br />
** In contrast to "Fade to Color", this happens without any transition.<br />
* '''Set Model:''' Changes the current model of the named Target to the stated Model.<br />
** E.g. Can be used to change a model to a broken model after recieving damage.<br />
* '''Set Skin:''' Changes the current skin of the stated Target to the stated Skin.<br />
* '''Set Spawnarg:''' Changes the value of a Key (Spawnarg) on the stated Target to a stated Value.<br />
* '''Spawn Entity:''' 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.<br />
* '''Spawn Particle:''' 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.<br />
* '''Start Stim Timer:''' Starts the timer of the stated Stim on the named Entity.<br />
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.<br />
* '''Stop Stim Timer:''' Stops the timer of the stated Stim on the named Entity.<br />
** For information about how a timer on a Stim works, refer to [[Stim/Response Key/Values]], E.g. Key: sr_timer_time_N.<br />
* '''Teleport (Set Origin):''' Moves the named Entity to the stated location's New Origin (coordinates: X Y Z).<br />
** If the box "Relative to old origin" is checked, the Entity is moved (X Y Z) units from its current location.<br />
* '''Toggle Effect:''' Disables the stated Effect if enabled or enables the stated Effect if disabled on the named Entity.<br />
** 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.<br />
* '''Toggle Light:''' Turns off the named Light if on or turns on the named Light if off.<br />
* '''Trigger:''' 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).<br />
<br />
<br />
The Response list gives a variety of options that allows for many effects without the need to write scripts.<br />
<br />
It is possible to add several effects with one response type by checking the box, "Random Effects" and entering the number of random effects to be used.<br />
Note that each effect can be used multiple times. E.g. Selecting only one effect and setting "Random Effects: 3" will use the same effect three times.<br />
<br />
= Examples =<br />
<br />
== Simple Hot Item that does Burn Damage ==<br />
This is a very simple case that illustrates how S/R works. A key thing to note about this example is '''the response to the stim we're adding already exists on the player entity'''. All we're doing is adding a damage stim to an entity which will invoke the response on the player when in range of the stim.<br />
<br />
# Add an entity to a map, for example a campfire (atdm:campfire_small)<br />
# with the entity selected, from the Menu select Entity -> Stim/Response...<br />
# Select the 'Stims' tab, and choose 'Damage' from the drop-down list at the bottom. Click 'Add'.<br />
# Make sure the 'Damage' stim you just added is selected, and set the following values:<br />
- Active<br />
- Time interval: 1000 ms<br />
- Radius: 100<br />
- Magnitude: 1 (Falloff Exponent: 1.0)<br />
<br />
Now start the map and walk towards the campfire. It should apply a small amount of damage every second. The falloff exponent of 1.0 means linear falloff, with the damage increasing the closer you get to the fire.<br />
<br />
== Arrow Trap ==<br />
<br />
First, create an "atdm:func_shooter" entity and position it so that the arrow points in the desired direction to shoot.<br />
''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''.<br />
Define the projectile to be fired (the default is a fire arrow) and check the pitch for the projectile's trajectory.<br />
<br />
Next, it is necessary to create an activator, that can be achieved with the Stim/Response Editor as follows:<br />
* Create a brush, giving it a NoDraw texture and convert it to a [[Glossary#func_static|func_static]].<br />
* 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]]).<br />
* Open the Stim/Response Editor.<br />
* Add a Response "Player" to the NoDraw func_static entity.<br />
* To that Response, add the Effect "Activate Shooter" with the name of the shooter as "Shooter Entity".<br />
<br />
Now the shooter will start firing as soon as the player comes within 100 units of the NoDraw func_static entity.<br />
<br />
There are three options:<br />
<br />
* If the the setup is left as it is, the shooter will continuously fire.<br />
* 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.<br />
* If the shooter is to fire only once, it is necessary to add the Effect, "Disable Effect" and target the first effect that activates the shooter or give an ammo value of 1.<br />
<br />
It may also possible for the player to disarm the trap:<br />
<br />
* Create a response on another entity that the player will use to do to disarm the trap.<br />
<br />
''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.''<br />
<br />
* Add the same "Disable Effect" effect as before.<br />
* It is also possible to use the Effect, "Remove shooter". But if this is used, the shooter will not be reactivated (E.g. if the player re-arms the trap, as above).<br />
''Note that using this setup, where the Response is "Player", the trap will exclusively react to the player and not to any AI.''<br />
<br />
== Change Patrol ==<br />
<br />
An AI's behaviour, such as its [[AI_Patrol|patrol route]], may be altered through a response.<br />
E.g. If the player has taken a specific loot item.<br />
<br />
* Give the loot item a Response "Frob".<br />
* Add the effect "Add Target".<br />
* As the "Entity" do not use the AI, but the path_corner from which the AI is to leave its original path to enter the new one.<br />
* As "Target" put in the first path_corner of the new path.<br />
<br />
If the new path circles back to the original path, the path will fork at this point:<br />
if the new path does not target any path_corner of the original path, the AI will remain patrolling the new path.<br />
<br />
{{editing}}</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Light_Properties&diff=30931Light Properties2023-12-01T09:42:43Z<p>Datiswous: /* Volumetric light ( new 2.10 ) */ - hiding volumetric_noshadows text</p>
<hr />
<div><br />
== Introduction == <br />
<br />
For Doom 3 (and subsequently, The Dark Mod), there are 4 different types of lights at our disposal. Each has their own advantages and drawbacks, and hopefully this article will help to familiarize The Dark Mod hopefuls with their use. For information on creating lights and a lot of other useful information, see [[A - Z Beginner Full Guide Start Here!]]<br />
<br />
<br />
__TOC__<br />
<br />
<br />
==Light Volume Properties==<br />
<br />
=== Point Light ===<br />
<br />
A point light is the default light (also the default for fog). No option must be checked to make a light a point light. A point light casts light, and subsequently shadows in all directions evenly, falling off after a distance defined by the light texture. This works best for most small indoor and outdoor lighting, like lamps, candles, fireplaces etc. For this reason, it is going to be the most used type.<br />
<br />
* Note, a misconception about Point Light is that they project spherically. The box shaped bounding volume in Dark Radiant is no mere simplification, it is the literal area affected by the light for calculation purposes. Point Light volumes should be perceived as cylindrical prisms that on one axis are shaped by the silhouette of the [[Light_Properties#Lighting_Textures | projection texture]] (think of a stack of cheese cut with a cookie cutter) and the other axis (z-axis) traditionally determines the distance from origin brightness (usually vertical... or how tall you make your cheese stack) with the LightFalloffImage.<br />
<br />
* Note 2, as of TDM 2.05 cubicLight lights offer true spherical falloff.<br />
<br />
<br />
=== Projected Light ===<br />
<br />
Projected light is just as the name suggests. It is probably more intuitive and easier to use than a parallel light and is better for things like projecting a window-shaped light on the floor of a room or a spotlight on a wall. To make one, select projected instead of the default omni option at the top of the light inspector. <br />
<br />
This creates a triangular prism as the bounding box for the light (instead of a rectangular prism like a regular light), with the point ending right at the entity itself. This can be rotated using any of the XYZ rotation buttons or manually using DarkRadiant’s rotation tool (shortcut R). <br />
<br />
You can also manipulate the projected light via the vertices (shortcut V to enable vertices dragging). By dragging the vertices in the center of the projected square, you can lengthen and change the angle of the projection while keeping the projected square the same size. To resize the projection, use the two side vertices in the correct XYZ grid view. Making the bounding box flat against a surface (like a floor) is usually unnecessary (for example, making a moonlight window light on a floor or wall), because with shadows enabled and making the projection long enough to intersect the plane on which the shadow is to be cast, the full shadow will be cast (its simple geometry and just requires minor toying). <br />
<br />
As with all the lights, projected lights have a full range of color and texture options to let the mapper find just the effect they need, allowing you to create a great atmosphere for your map.<br />
<br />
* As of TDM 2.06, cubicLight entities do not work properly with Projected lights. Please only use cubicLight with Point lights.<br />
<br />
=== Parallel Light ===<br />
<br />
A light is said to be parallel when the parallel checkbox is checked in the light inspector. It is subject to all the same options as a point light, but it has a few distinct differences. A parallel light tends to not care exactly where the entity itself is placed. The most important thing is where the light_center vertex is placed and where the light entities bounding box intersects with elements in your map. <br />
<br />
The light_center vertex starts right in the middle of the entity. The main difference between the parallel and point lights is that a parallel light does not radiate from the origin around the entity itself. What controls the direction that shadows are cast is the placement of the light_center vertex. Shadows will run parallel (hence the name) to a line between this vertex and the light entity itself. This makes it an excellent choice for sunlight or moonlight. As such, it has some of the elements of a point light and a projected light, it can seem to radiate in a circle (if you use the appropriate texture) whilst casting a shadow in any direction preferred.<br />
<br />
Switch to Vertex mode in [[DarkRadiant]] to drag the light_center vertex of your selected light entity.<br />
<br />
Posted by Greebo: Also, note that a parallel light will only light surfaces "matching" the direction of the "light vector" <br>(origin minus light_center). All other surfaces will stay completely unlit, therefore it should be combined with an ambient light to <br>achieve good lighting effects. [https://forums.thedarkmod.com/index.php?/topic/8091-parallel-lights-vs-point-lights/&tab=comments#comment-159842]<br />
<br />
==== Parallel-sky light ====<br />
<br />
The main problem with parallel light is that: while it does not radiate light rays from the light origin, the origin still matters when engine flows light rays through visportals. An ordinary parallel light always works properly in the visleaf where its origin is located. In addition to that, it takes effect in all the other visleafs which can be reached from the starting visleaf through visportals by travelling along the direction of the light. So in order to create a global moon/sun light which will light many outdoor areas, one has to create a separate visleaf above the outdoor areas, which would contain the light and have portals leading down to every outdoor area below. It is quite complicated.<br />
<br />
In TDM 2.08, a new spawnarg '''parallelSky''' was added. If you add it to a parallel light and set value "1", then the light will emanate from every visleaf containing surfaces with textures/smf/portal_sky material. This usually includes all outdoors area automatically. Note that other (i.e. indoors) areas are also included if they can be reached from outdoors areas through open visportals, so the light should work correctly indoors if someone opens a door.<br />
<br />
==== Troubleshooting Parallel Lights ====<br />
<br />
''I added a parallel light but I can’t see any light at all!''<br />
<br />
Parallel lights can have some quirks. The light seems to fail and do nothing when intersecting multiple walls that are parallel to the face the light is actually casting on. It seems the light will work as long as it doesn’t intersect a face parallel to the one it is casting light on. <br />
<br />
''I have a parallel light but it casts a jagged light on my floor!''<br />
<br />
Similar to above, a parallel light can sometimes have anomalies when intersecting multiple walls and a floor. Since having the light intersect multiple walls when it can only cast on one of them, having a massive bounding box is pointless anyways so pay attention to what the light is touching and you should be fine.<br />
<br />
==Light Interaction Properties==<br />
<br />
=== Normal Light ===<br />
<br />
This is the default light type. It performs all the surface interaction stages and shadow calculations. It has the heaviest performance impact.<br />
<br />
=== cubicLight ===<br />
<br />
New as of TDM 2.05, it is similar to Normal Light but accepts a cubemap as the projection image and uses a spherical z-falloff pattern rather than a falloff image. <br />
<br />
The shader was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod". Duzenko ported portions of it to GLSL.<br />
<br />
CubicLight projection is used in many 3D engines with the most common parlance being "Cookie Lights". Unity "Cookie Lights" can be used as a reference. <br />
<br>(For comparison, I am not aware of any 3D engine other than id Tech 4 that used the 1D + 2D projection images.)<br />
<br />
As of TDM 2.06, GLSL versions of this shader will only perform Point light (omni) operations. Projected is broken.<br />
<br />
=== Ambient Light ===<br />
<br />
Ambient light is really just a lighting texture, but it is also a specific item that is needed in practically every map, so for those purposes it will be treated as if it were its own subset of lights.<br />
<br />
Properties: No shadows, No specular, Bumpmapping or Directionality (Note: The "Enhance Ambient" does add Bumpmapping )<br />
<br />
Use the ambientLight keyword.<br />
<br />
An ambient light can be any form: it can be a point, parallel or even projected (though projected would probably be useless). <br />
<br />
The only requirement of an ambient light is to use one of the available ambient light textures, accessible by opening the light inspector (with the shortcut L in DarkRadiant, and get used to using it), and selecting ambientlightnfo from the list.<br />
<br />
<br />
* Ambient Light is covered in more detail in [[A_-_Z_Beginner_Full_Guide_Page_2#Ambient_Light:_Gloom_not_Doom| Ambient Light: Gloom not Doom]]<br />
<br />
* To understand The Dark Mod's unique ambient light detection system see: [[Virtual Darkness]]<br />
<br />
* Ambient Light can be set to automatically adjust color and brightness per "location" see: [[Location Settings]] and [[Dynamic ambient light]]<br />
<br />
<br />
==== lightAmbientDiffuse and lightAmbientSpecular ( Previously ambientCubicLight ) ====<br />
<br />
New as of TDM 2.05. This is intended to provide an effect similar to Valve's "Precomputed Radiance Transfer" lighting in Half Life 2.<br />
It was originally developed by Sikkpin the author of the soft shadows mod for Doom 3 "Sikkmod".<br />
<br />
In TDM 2.06, the new GLSL version of the shader (developed by Duzenko) accepts (industry standard) irradiance cubemap images. <br />
<br />
* A new image program "makeIrradiance" was also created to use existing skybox cubemap images.<br />
<br />
'''In 2.11 ambientCubicLight was replaced by two material global keywords'''<br />
<br />
* lightAmbientDiffuse - meant for the standard diffuse response<br />
<br />
* lightAmbientSpecular - incorporates cubemap reflections into the specular response<br />
<br />
Both keywords are mean to be used with either 3rd party irradiance cubemaps or the "bakeAmbientDiffuse" and "bakeAmbientSpecular" keywords.<br />
<br />
Example material:<br />
<br />
<pre><br />
lights/ambientCube/cubeSky<br />
{<br />
ambientLight<br />
lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/cubesky))<br />
lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/cubesky))<br />
{<br />
map lights/squarelight_amb.tga<br />
colored<br />
zeroClamp<br />
}<br />
} <br />
</pre><br />
<br />
See also:<br />
<br />
https://forums.thedarkmod.com/index.php?/topic/19803-tutorial-image-based-lighting-workflows-for-tdm/<br />
<br />
=== Fog Light ===<br />
<br />
This applies Doom 3's style distance fog to a light volume. The texture applied will become more opaque with distance away from the viewer. There is a variant called No Portal Fog which will not apply opaque fog to Portal areas in view. ( [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|Beginner Tutorial: Fog]] )<br />
<br />
In rare cases, you may wish for some surface inside a fog-volume to be fog-free. You can use the "noFog" keyword in the material definition for the texture applied to this surface to keep it from being "fogged".<br />
<br />
Very thin fog (or BlendLight ) can also be used to soften the apparent light interactions near surfaces in a similar manner to the Post Process shader effect but with more mapper control. You can fake certain radiosity effects simply by amplifying small ambient light with small thin fog volumes. <br />
<br />
Use the fogLight keyword.<br />
<br />
==== noFogBoundary ====<br />
<br />
Fog lights don't actually paint mist in the air, which would slow down performance quite a bit. They achieve their effect by fogging out the colour of the surfaces that they hit, proportionate to the depth of fog that lies between the player and the surface. In addition, if there is no surface between the player and the edge of the fog volume, they paint fog on the invisible walls of their own bounding volume. That's needed for a large open scene, for example, where there might be no surface between the player and the edge of the fog volume. If you're in a misty forest, and there happened to be no tree visible in a certain direction, you'd expect to see grey fog rather than clear space between the fogged trees.<br />
<br />
Sometimes you don't want that to happen, for example if you're using a very large but very light fog to simulate atmospheric perspective in a town. You want the colour and detail of buildings to fade with distance, but you don't want heavy fog blocking the view of the sky in the gaps between buildings where you see to the very edge of the big fog light. You can use spawnarg "noFogBoundary" for that. It lets fog paint on solid surfaces, while leaving empty space and caulk sky free of fog effects.<br />
<br />
==== noPortalFog ====<br />
<br />
This is a Doom 3 Global Material keyword that disables the optimization that auto-closes portals that are past the fully fogged<br />
<br>radius. It can be used to prevent lights and emissive surfaces from turning off suddenly producing a jarring and unnatural effect.<br />
<br />
In TDM 2.12 (alpha) development builds, this is now an entity spawnarg as well so authors do not need to create override materials to use this feature.<br />
<br />
==== noFog ( new 2.07 ) ====<br />
<br />
As of TDM 2.07, you can apply a noFog global material flag to the material def or the noFog entity spawnarg to the entity def and this will prevent fogging on these surfaces or entities.<br />
<br>Most visual fog issues are in cases where fog is "not" applied somewhere. Therefore, this is mostly a performance related argument or can be used as a special effects.<br />
<br />
==== fogAlpha ( new 2.08 ) ====<br />
<br />
As of TDM 2.08, you can apply a fogAlpha keyword to alpha textures to determine whether they receive fog. The value is a floating point number between 0 and 1<br />
<br>which determines how intensely the fog affects the alpha texture.<br />
<br />
=== Blend Light ===<br />
<br />
Blend lights can be considered to be like volumetric decals. They do not perform most of the interaction shader operations and merely apply a texture to a volume using an [https://modwiki.dhewm3.org/Blend_(Material_stage_keyword) OpenGL Blend Mode]. Blend lights have the least performance impact. Blend lights can also be used to create [http://www.doom3world.org/phpbb2/viewtopic.php?f=1&t=12256&start=0&st=0&sk=t&sd=a "negative light"]. <br />
<br />
Example negative light shader:<br />
<br />
<pre><br />
lights/bdog_testBlendLight2<br />
{<br />
blendLight<br />
lightFalloffImage makeintensity( textures/blackdog/blendlight_falloff_inverse.tga )<br />
{<br />
blend gl_zero, gl_one_minus_src_color<br />
map textures/blackdog/blackdog_icon_inverse.tga<br />
zeroclamp<br />
//alphazeroclamp<br />
colored<br />
} <br />
}<br />
</pre><br />
<br />
Use the blendLight keyword.<br />
<br />
=== Volumetric light ( new 2.10 ) ===<br />
<br />
Volumetric light makes the whole light volume slightly visible to the player (added in TDM 2.10).<br />
The related spawnargs are:<br />
<br />
* '''volumetric_light''' = 0: Set to 1 to enable volumetric light.<br />
* '''volumetric_dust''' = 0.002: How strong the volumetric effect is (reduce it if too bright).<br />
* '''volumetric_noshadows''': How volumetric light handles shadows (see below) {{red|--- useless in TDM 2.11 }}.<br />
<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width:80em; overflow:auto;"><br />
The spawnarg <tt>volumetric_noshadows</tt> only affects the volumetric effect, and has three different values (default value is taken from <tt>noshadows</tt> spawnarg):<br />
* '''= 0''': Shadows must be respected. If that's not possible, then the whole volumetric effect must be disabled.<br />
* '''= 1''': Shadows must be ignored.<br />
* '''= -1''': Shadows should be respected. But if that's not possible, then shadows can be ignored as well.<br />
</div><br />
There are several reasons why the engine can fail to support shadows in volumetric light:<br />
# The player <s>uses stencil shadows (<tt>r_shadows 1</tt>) or </s>([https://bugs.thedarkmod.com/view.php?id=5880#c15076 fixed in TDM 2.11]) disabled volumetric light sampling (<tt>r_volumetricSamples 0</tt>).<br />
# Shadow maps are not yet supported for the particular light. This happens for large lights, for instance.<br />
# Shadows were disabled on the light itself (<tt>noshadows</tt>).<br />
{{Clear}}<br />
<br><br />
<br />
== '''Light Settings''' ==<br />
<br />
There are several settings with which to customize your lights. These settings allow the mapper to customize the look of a light (or a combination of lights) into a near infinity of looks. All are accessed through the light inspector (shortcut of L in DarkRadiant)<br />
<br />
<br />
=== Color ===<br />
<br />
The color palette allows the mapper to pick the color of the light emitted, arguably one of the most useful controls the mapper has over a light. To access it, click the button under the “Colour” heading. From there, adjust the settings until you find a correct color (can take some trial and error). In a game like The Dark Mod or Doom 3, where darkness is often more prevalent than light, the color picked often needs to be darker than expected. Without a direct brightness option, the color takes on this task. For a low level ambient light, the color picked would be almost pitch black. A pitch black light would not cast any light, but anything less than pitch black will cast a faint light. As such, it can take some trial and error to find the correct light for a situation, as initially, one is likely to pick a seemingly correct color only to find it is far too bright. <br />
<br />
Remember: changing light settings or adding lights (and models) does not require re-compiling the map!<br />
<br />
<br />
=== Radius ===<br />
<br />
The 'radius' of your light can be changed by dragging its corners around in the 2d windows. Doom 3 lights do not have an actual radius, they are actually square lights and will light up everything they touch inside their bounding box in the editor. They will evenly light everything to their edges. While square lights might seem fairly odd there are options to make them more believable and have a nice fade, namely the 'texture' applied.<br />
<br />
Tip: you can rotate a light so only one corner will touch a wall and make a triangular shaped light. <br />
<br />
Or rotate it so 2 corners touch a wall and make a line of light.<br />
<br />
'''Changing Radius of Light Entity:'''<br />
<br />
If you put a premade light entity into your map, the radius of the light won't be visible. <br />
<br />
To change it, use the following syntax (and whichever value you wish):<br />
<br />
<pre><br />
<br />
"set _color on flame" "0.9 0.8 0.7"<br />
"set light_radius on flame" "250 250 250"<br />
<br />
</pre><br />
<br />
With lanterns and such use 'light' and with torches and candles etc use 'flame'.<br />
<br />
<pre><br />
<br />
"set _color on light" "0.9 0.8 0.7"<br />
"set light_radius on light" "250 250 250"<br />
<br />
</pre><br />
<br />
(Copied from Baddcog's old "Lighting A to Z" article)<br />
<br />
<br />
=== Parallel === <br />
<br />
Selecting this option turns the light into a parallel light (as opposed to a point or projected light). See [[Light Properties#Parallel Light|Parallel Light]]<br />
<br />
<br />
=== Do not cast shadows (fast) ===<br />
<br />
As the name suggests, this setting causes the light to not cast shadows on any object. This can cause the light itself to not be confined by walls, which can sometimes be beneficial and sometimes not. The main purpose of enabling this option is performance. Shadows are processor intensive and are not needed in some cases, so removing them wherever not beneficial to gameplay can vastly improve performance. Note that ambient lights never cast any shadows. Another way to improve performance similarly is to set the entity property on a model or func_static (this doesn’t work on worldspawn) <tt>noshadows</tt> to 1.<br />
<br />
* '''Further details''': [[Turning Shadows Off]] , [[Noselfshadows]]<br />
<br />
=== Skip Specular Lighting ===<br />
<br />
Specular Lighting refers to a texture's specular map, wherein a flat surface (such as a wall) is painted with a texture that has a specular component. This causes a surface to have shinier and duller parts on a flat surface based on the darkness of the corresponding location on the specular map. Not all textures have specular maps. Checking this option could improve performance or remove the effect if it is not wanted. [https://modwiki.dhewm3.org/Texturing#specular-maps]<br />
<br />
=== Spectrum ===<br />
<br />
You may use the "spectrum" keyword to isolate specific lights to specific materials which have the same spectrum value in their material definition.<br />
[https://modwiki.dhewm3.org/Spectrum_(Material_global_keyword) Spectrum Keyword at Modwiki]<br />
<br />
In TDM 2.07 spectrum was added as an entity spawnarg<br />
<br />
==== lightspectrum (new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keyword "lightspectrum" that only affects standard lights and allows ambient lights<br />
to render as expected. This makes it much more useful to control where lights are allowed to illuminate<br />
<br />
==== nospectrum ( new 2.08 ) ====<br />
<br />
As of 2.08 there is a new spectrum keywork "nospectrum" that will bypass spectrum behavior for all spectrum lights except the one whose spectrum number you specify.<br />
This will force all spectrum lights to illuminate this entity.<br />
<br />
== Other light settings ==<br />
<br />
=== AI sight ( new 2.04 ) ===<br />
<br />
Spawnarg '''ai_see''' controls whether the light is visible to AI. It defaults to "1", i.e. the light does help AI to see. You can set this spawnarg to "0" to make accent lights that will (1) not affect the player's lightgem, and (2) won't make suspicious objects like rope arrows more visible to AI.<br />
<br />
=== AreaLock ( new 2.08 ) ===<br />
<br />
Forces the light to stop rendering when the visleaf that contains its origin is closed.<br />
<br />
== Chandeliers ==<br />
<br />
Typically chandeliers are setup with multiple particle flames, but just one light entity (for better performance). Bind the candles to the chandelier, then if one is doused, all will extinguish. (See the prefab for an example.)<br />
<br />
<br />
== Lighting Textures ==<br />
<br />
[[Image:LT_Projectedlight.png|400px|thumb|Rich_is_Bored's Example]]<br />
<br />
The lighting textures are also accessed in the light inspector. <br />
<br />
<br />
Lights can be modified by two different texture types:<br />
<br />
* Projection Image - This is the texture that is projected on the surface<br />
* LightFalloffImage - This texture varies the intensity of the light through the volume along the Z Axis <br />
* (Notes: While the Falloff Image is a 2D texture it is rendered as 1D (one dimensional). You will notice that almost all Falloff Images are thin strips with perpendicular stripes. Traditionally, Falloff will be used to diminish the light with distance to the source but you can violate the physics of real lights and have the intensity increase with distance or vary intensity from bright to dim to bright... etc. )<br />
<br />
These textures allow the mapper to change the intensity and falloff of a light. <br />
<br />
Light textures with the addition of material keywords like [https://modwiki.dhewm3.org/Scroll_(Material_stage_keyword) scroll],[https://modwiki.dhewm3.org/Rotate_(Material_stage_keyword) rotate], etc. will grant lights the ability to animate and produce special effects such as; <br />
<br />
* A moving light for a fireplace <br />
* A candle or torch<br />
* A light flickering along with sound volume. <br />
<br />
One can also apply a fog texture to the light (the only way built into Doom 3 to create fog). Color is of a similar concern when [[A_-_Z_Beginner_Full_Guide_Page_3#Fog|creating fog]], as noted in [[Light Properties#Color|Color]]<br />
<br />
* A typical "Light Shader" [https://iddevnet.dhewm3.org/doom3/materials.html material] definition<br />
<br />
<pre><br />
<br />
lights/My_Custom_Light1<br />
{<br />
<br />
lightFalloffImage makeIntensity( textures/My_Custom_Light1_Z ) // Falloff Image<br />
<br />
{ <br />
forceHighQuality<br />
map textures/My_Custom_Light1_XY // Z-Projection Image<br />
zeroClamp<br />
}<br />
<br />
}<br />
<br />
</pre> <br />
<br />
(For advanced detail and techniques see [[Light Textures and Falloff Images]] )<br />
<br />
== Further reading == <br />
<br />
* [[Performance:_Essential_Must-Knows#Lighting_Performance_Options|Lighting Performance Options]]<br />
* [[Relighting Lights]]<br />
* A great tutorial on outdoor lighting can be found here: [https://www.katsbits.com/tutorials/idtech/dynamic-outdoor-lighting-techniques.php Dynamic outdoor lighting techniques]<br />
* Modwiki's summarized Doom 3 lighting article: [https://modwiki.dhewm3.org/Light Light]<br />
<br />
<br />
{{tutorial-editing}}<br />
[[Category:Lighting]]<br />
[[Category:Ambient Light]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Prop_bishop_hat.png&diff=30929File:Prop bishop hat.png2023-11-28T23:30:58Z<p>Datiswous: Changed redirect target from Prop hat bishop.png to File:Prop hat bishop.png</p>
<hr />
<div>#REDIRECT [[File:Prop hat bishop.png]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Prop_bishop_hat.png&diff=30928File:Prop bishop hat.png2023-11-28T23:29:41Z<p>Datiswous: Changed redirect target from File:Prop hat bishop .png to Prop hat bishop.png</p>
<hr />
<div>#REDIRECT [[Prop hat bishop.png]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Talk:TDM_Script_Reference/2.02%26action%3Dedit%26redlink%3D1&diff=30927Talk:TDM Script Reference/2.02&action=edit&redlink=12023-11-28T23:28:15Z<p>Datiswous: Changed redirect target from Talk:TDM Script Reference/2.02 to Talk:TDM Script Reference</p>
<hr />
<div>#REDIRECT [[Talk:TDM Script Reference]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=What%27s_New_in_2.02&diff=30926What's New in 2.022023-11-28T23:27:01Z<p>Datiswous: Changed redirect target from What's new in 2.02 to What's new in TDM 2.02</p>
<hr />
<div>#REDIRECT [[What's new in TDM 2.02]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Vocal_Script:_Noblewoman&diff=30925Vocal Script: Noblewoman2023-11-28T23:25:39Z<p>Datiswous: Changed redirect target from Vocal Script: Lady to Vocal script: Lady</p>
<hr />
<div>#REDIRECT [[Vocal script: Lady]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Untethered&diff=30924Untethered2023-11-28T23:24:18Z<p>Datiswous: Changed redirect target from Untethered TDM to Missing assets for standalone TDM</p>
<hr />
<div>#REDIRECT [[Missing assets for standalone TDM]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=How_to_make_a_prefab_skybox&diff=30923How to make a prefab skybox2023-11-28T23:23:07Z<p>Datiswous: Changed redirect target from Skybox Basics to Skybox Basic Details</p>
<hr />
<div>#REDIRECT [[Skybox Basic Details]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Gui&diff=30922Gui2023-11-28T23:21:54Z<p>Datiswous: Changed redirect target from GUI Scripting to GUI Scripting Language</p>
<hr />
<div>#REDIRECT [[GUI Scripting Language]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=GUI_Definitions&diff=30921GUI Definitions2023-11-28T23:20:54Z<p>Datiswous: Changed redirect target from GUI Scripting to GUI Scripting Language</p>
<hr />
<div>#REDIRECT [[GUI Scripting Language]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=GUI_Scripting&diff=30920GUI Scripting2023-11-28T23:20:16Z<p>Datiswous: Changed redirect target from GUI Scripting: Parsing of Set 'Cmd' to GUI Scripting Language</p>
<hr />
<div>#REDIRECT [[GUI Scripting Language]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Editing_Troubleshooting_FAQ&diff=30919Editing Troubleshooting FAQ2023-11-28T23:17:52Z<p>Datiswous: Changed redirect target from Editing FAQ (Troubleshooting & How-To) to Editing FAQ - Troubleshooting & How-To</p>
<hr />
<div>#REDIRECT [[Editing FAQ - Troubleshooting & How-To]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=DarkRadiant_-_Compiling_in_Mac_OS_X&diff=30918DarkRadiant - Compiling in Mac OS X2023-11-28T23:15:53Z<p>Datiswous: Changed redirect target from DarkRadiant - Compiling in OS X to DarkRadiant - Compiling in macOS</p>
<hr />
<div>#REDIRECT [[DarkRadiant - Compiling in macOS]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Special_Delivery_(FM)_promo_4.jpg&diff=30917File:Special Delivery (FM) promo 4.jpg2023-11-28T23:05:04Z<p>Datiswous: /* Description */</p>
<hr />
<div>== Description ==<br />
<br />
Promotional screenshot from the FM ''[[A Special Delivery (FM)|A Special Delivery]]'' (2009).<br />
<br />
[[Category:Fan Mission images]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Special_Delivery_(FM)_promo_1.jpg&diff=30916File:Special Delivery (FM) promo 1.jpg2023-11-28T23:04:39Z<p>Datiswous: /* Description */</p>
<hr />
<div>== Description ==<br />
<br />
Promotional screenshot from the FM ''[[A Special Delivery (FM)|A Special Delivery]]'' (2009).<br />
<br />
[[Category:Fan Mission images]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Special_Delivery_(FM)_promo_2.jpg&diff=30915File:Special Delivery (FM) promo 2.jpg2023-11-28T23:04:27Z<p>Datiswous: /* Description */</p>
<hr />
<div>== Description ==<br />
<br />
Promotional screenshot from the FM ''[[A Special Delivery (FM)|A Special Delivery]]'' (2009).<br />
<br />
[[Category:Fan Mission images]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=File:Special_Delivery_(FM)_promo_3.jpg&diff=30914File:Special Delivery (FM) promo 3.jpg2023-11-28T23:03:55Z<p>Datiswous: /* Description */</p>
<hr />
<div>== Description ==<br />
<br />
Promotional screenshot from the FM ''[[A Special Delivery (FM)|A Special Delivery]]'' (2009).<br />
<br />
[[Category:Fan Mission images]]</div>Datiswoushttps://wiki.thedarkmod.com/index.php?title=Git_and_Github_for_Mappers&diff=30913Git and Github for Mappers2023-11-28T22:58:19Z<p>Datiswous: </p>
<hr />
<div>== Introduction ==<br />
<br />
=== Overview ===<br />
This article is about using Git and Github in the context of developing a TDM fan mission. It is important to note that Git and Github are not the same thing, rather they are used together to accomplish something: the versioning and safe storage of your work in a remote location.<br />
<br />
There is a perception that Git is a complicated tool and isn't really needed. While it is certainly true that Git can be complicated and isn't a requirement for FM development, I will attempt to show that a basic understanding of the concepts and minimal use can have a large impact on the way you work, especially if collaboration is involved.<br />
<br />
Using Github alongside Git goes a long way to making this easier for those new to version control concepts.<br />
<br />
What this article isn't:<br />
* a Git tutorial, although it will cover the basics and will be enough to get going<br />
* an evangelism piece about the benefits of using Git over other VCS tools<br />
<br />
=== What is Git and Github? ===<br />
Git is a version control system (https://en.wikipedia.org/wiki/Version_control)<br />
<br />
Github is a cloud-based hosting service originally developed to host remote Git repositories, but has expanded to include many other services related to the software development cycle.<br />
<br />
There are other cloud-based hosting services for Git repositories such as [https://about.gitlab.com/ Gitlab] and [https://bitbucket.org/ Bitbucket] which offer similar functionality.<br />
<br />
=== What is a Git repository? ===<br />
A Git repository is a versioned collection of related files that (usually) make up a software application, or part of an application stack. In the context of this tutorial, our Git repository will only include the TDM fan mission files and nothing else.<br />
<br />
When you create a repository on Github however, a whole bunch of other features related to the repository become available to you.<br />
<br />
=== Benefits ===<br />
<br />
Using Github has the following major benefits to the mapper:<br />
* '''Versioning and history'''. Easily tell what's changed in your project, and when. Also comes in handy for fixing mistakes.<br />
* '''Data loss protection'''. Your FM code stays in the cloud, protected by a resilient hosting platform owned and operated by Microsoft. There is almost zero risk your project can be lost<br />
* '''Easier collaboration'''. If you work with others, using Github has many benefits that will be expanded upon in this article (for example, one-click synchronization of FM files for collaborators instead of passing .pk4 files around). See [[Git_and_Github_for_Mappers#Implications|'''implications''']] for more details.<br />
* '''Discovery and visibility'''. Your FM code will be publicly available in the same place for the foreseeable future (if you choose for it to be). This makes it very easy to share, for others to find on their own, or just read later if you want to remember how you did something. Want to show someone how you wrote that script? Just [https://github.com/thedarkmodcommunity/hits1/blob/main/maps/man2.script '''send them a link!''']. Can't find that .ogg file you used for secrets anywhere? [https://github.com/thedarkmodcommunity/hits1/blob/main/sound/map_specific/secret.ogg '''Just grab it!''']<br />
* '''It's free!'''. See list of features available [https://github.com/pricing#compare-features here].<br />
<br />
Other less important features that I have found useful:<br />
* A project board where you can create and manage work and track progress (similar to a [https://en.wikipedia.org/wiki/Kanban_board Kanban board]).<br />
* a built-in Wiki for your project. Useful for fleshing out story ideas.<br />
* the ability to create release artifacts. For example, you can package up your FM as a .pk4 and upload it to the project, providing a public place for others to download<br />
* a 3D model viewer<br />
* an image diff viewer<br />
<br />
It is important to note that all the above features are available in the context of your FM project. Everything is in one place.<br />
<br />
=== Why use a VCS and not just Google Drive/Dropbox? ===<br />
Although storing your files on cloud storage protects them against data loss, there are some drawbacks:<br />
<br />
{| class="wikitable"<br />
|+ <br />
|-<br />
! Feature !! Git/Github !! Traditional Cloud Storage<br />
|- <br />
| Resilient Cloud Hosting || yes || yes<br />
|-<br />
| Ease of file transfer || one or two clicks to synchronize, no manual compression or extracting required || manual zipping/extracting, uploading/downloading<br />
|-<br />
| Versioning || built-in || may be able to version files (e.g. Google Drive, but not a VCS and not practical unless packaged in a single file)<br />
|-<br />
| File visibility || all files easily browseable || no, especially if packaged (e.g. .pk4)<br />
|- <br />
| Discovery || public links, discoverable by anyone || no, private accounts, non-discoverable public links, may or may not be available<br />
|- <br />
| Online Collaboration || yes, via pull request || no<br />
|}<br />
<br />
== Tutorial ==<br />
The scope of this tutorial will:<br />
* focus on Windows users only (although Linux users can follow along just fine - Git and VS Code are available for Linux as well)<br />
* include the use of Visual Studio Code. The reason for using this is to demonstrate (using its Git plugin) that '''most Git interaction can be done without the use of the command line'''. If you have another preferred editor, check if it has a Git plugin and you can use that instead.<br />
<br />
=== Tool Setup ===<br />
==== Obtain a Github account ====<br />
If you don't already have an account, go here and create one: https://github.com/<br />
<br />
==== Install Git ====<br />
You have a couple of options here, both will work:<br />
<br />
* [https://gitforwindows.org/ Git for Windows] '''(recommended)'''. This includes some other utilities like 'Git Bash' and a 'Git GUI' which some might find useful. Note however these are not used in the tutorial.<br />
* [https://git-scm.com/download/win Git stand-alone]<br />
<br />
==== First-time Git Setup ====<br />
After installing Git, open a command prompt and type the following. You can put whatever you want for the values (enclose user.name in double quotes if it has a space)<br />
<br />
git config --global user.name <your user name here><br />
git config --global user.email <your email here><br />
<br />
<br />
Now do the following to confirm it worked:<br />
<br />
git config --global --list<br />
<br />
==== Install Visual Studio Code ====<br />
VS Code is a very good, lightweight code editor that has become a professional standard, but is just as useful for hobbyists. I prefer it because it because of its lightweight nature and you can find well-supported plugins for pretty much anything (a lot of which are maintained by Microsoft). You can get it here: https://code.visualstudio.com/<br />
<br />
=== Start using Github ===<br />
Now we are ready to create a Git repository in Github. What we are going to do here is create the FM folder in Github, and then download it to our local computer. This isn't the only way to do this, but it's the easiest.<br />
<br />
==== Create a new repository ====<br />
'''NOTE:''' if you have an existing FM that you want to add to Github now, see [[Git_and_Github_for_Mappers#Adding_an_Existing_FM_to_Github|'''Adding an Existing FM to Github''']].<br />
<br />
Log into your Github account and create a new repository. Depending if this is this first time you've logged in or not, you may see different screens. Either way, you will arrive at this screen:<br />
<br />
[[File:Create-repo.jpg|500px|left]]<br />
<br />
<br clear=all><br />
* The ''''Repository name'''' will be the root folder of the FM, and will appear under darkmod/fms on your local filesystem. So call it something relevant to your FM.<br />
* '''Public or Private'''. This is up to you. If you choose public, your code will be visible to the internet. If you choose private, only yourself and collaborators will be able to access it. You can change it later if you want.<br />
<br />
'''IMPORTANT:'''<br />
Choose one or both of the following options. If you don't choose one, the repository will be empty when we 'clone' it later, and be more difficult to work with:<br />
* '''README file'''. Readmes are markdown files that render in the Github UI automatically when you browse to a repository. Good as a 'landing page' for your project that is immediately viewable to the user.<br />
* '''.gitignore'''. You can list file extensions in here of files that you do not want to store in Git (e.g. .proc or .cm files). If you choose this, it forces you to choose a template - just pick any one for now (e.g. VisualStudio)<br />
<br />
When ready, click 'Create repository'<br />
<br />
==== Clone the repository to your local filesystem ====<br />
Now that we've created the remote Git repository for our project, we can download it ('clone' in Git parlance) to our computer. Essentially we will now have a copy (clone) of the Git repository on our local computer.<br />
<br />
Browse to the repository and click the 'Code' button. A pop-up will appear with a number of options. Ensure that 'HTTPS' is selected and click the 'copy' button on the right:<br />
[[File:Clone.jpg|500px|left]]<br />
<br />
<br clear=all><br />
Now, open up a command prompt '''inside your darkmod/fms''' directory and type the following:<br />
<br />
git clone <paste the item from your clipboard><br />
<br />
For example, using the repo in the screenshot we'd have:<br />
<br />
git clone https://github.com/tdmuser/tutorialfm.git<br />
<br />
Now, the repository should be present as a child of the FMs directory, named ''''tutorialfm''''<br />
<br />
F:\games\darkmod_testing\fms>dir<br />
Volume in drive F is DATA<br />
Volume Serial Number is D43B-9D4F<br />
Directory of F:\games\darkmod_testing\fms<br />
23/05/2021 15:05 <DIR> .<br />
23/05/2021 15:05 <DIR> ..<br />
23/05/2021 15:01 45 consolehistory.dat<br />
23/05/2021 15:01 <DIR> hareinthesnare_v1_0_3_release<br />
23/05/2021 15:01 593 missions.tdminfo<br />
04/04/2021 20:05 <DIR> newjob<br />
04/04/2021 20:02 <DIR> saintlucia<br />
04/04/2021 20:05 <DIR> stlucia<br />
04/04/2021 20:05 <DIR> training_mission<br />
23/05/2021 15:05 <DIR> '''tutorialfm'''<br />
2 File(s) 638 bytes<br />
8 Dir(s) 674,346,885,120 bytes free<br />
<br />
==== Create a new Map in DarkRadiant ====<br />
Now that we have our FM directory sorted, we can create a map in DR.<br />
<br />
# Create a 'maps' folder in darkmod\fms\tutorialfm folder<br />
# Open up DR and create a new map file<br />
# create a simple brush on the map (or else DR won't be able to open it later)<br />
# Click 'Save' and make sure you save it to the `darkmod\fms\tutorialfm\maps` folder. We'll call ours 'gitmap.map'<br />
<br />
==== Open the FM folder in Visual Studio Code ====<br />
# Start VS Code and click File -> Open Folder...<br />
# Browse to darkmod\fms and click the 'tutorialfm' folder to open it<br />
<br />
You will now see something like this:<br />
[[File:Vs-code-initial-view.jpg|500px|left]]<br />
<br />
<br clear=all><br />
* The green highlighted files indicate these files have been modified (added or updated, according to Git)<br />
* The two circled items on the left are the different 'views' in VS Code. The top (current) view is the file explorer where you'll spend most of your time. The bottom one is the 'source control' view, which we'll use to commit/push the files to Git/Github.<br />
<br />
==== Commit the files to local Git repository ====<br />
Even though our map doesn't have much in it, we can still commit it to source control. This is equivalent to the [https://git-scm.com/docs/git-commit '''git commit'''] command.<br />
<br />
# Switch to the 'version control' view in VS Code<br />
# Enter a commit message in the text box<br />
# Click the checkmark to commit the file locally<br />
<br><br />
<br />
[[File:Vs-code-commit.jpg|500px|left]]<br />
<br />
<br clear=all><br />
You'll notice that the green files have now disappeared from the source control view. This means that your local files are 'up to date' with those in Git repository on your computer.<br />
<br />
==== Push the files to Github (remote repository) ====<br />
We have committed the files to our local repository where they are now version-controlled with a commit message. But we also want to make sure we 'push' them to Github so we have a copy of our changes safely stored in the cloud. The command-line equivalent is [https://git-scm.com/docs/git-push '''git push'''].<br />
<br />
At the bottom of your screen, you should see a 'loop' icon like so, with some arrows next to it:<br />
[[File:Vs-code-push.jpg|500px|left]]<br />
<br />
<br clear=all><br />
The '1' next to the up arrow means there is one commit ready to push. '''Click the icon to push the files to Github.'''<br />
<br />
'''NOTE:''' At this point, you will need to authenticate with Github. Although you may be logged into the Github UI in your browser, you are not logged in on your PC. We were able to clone the repository anonymously because we made it public. Now that we want to write to it, we must authenticate.<br />
<br />
You will get a pop up asking for your Github credentials, and then a request to authorize the VS Code Git extension to allow access to your Github account. Just click through until this is all done ('''NOTE:''' If using [[Git_and_Github_for_Mappers#Use_SSH_for_Github_Authentication|'''SSH''']], all of this goes away). When finished, the code will be there in your Github repo.<br />
<br />
Now, if you browse to your Github repository you'll see your new files:<br />
[[File:Github-view-map.jpg|500px|left]]<br />
<br />
<br clear=all><br />
From this point onwards, any files you change, add or delete locally can be similarly committed and pushed to Github where they will be safely stored. If anything happens to your local files (deletion or your computer dies), you can re-clone the Github repository and be back to where you left off.<br />
<br />
==== Running the map in TDM ====<br />
You will have noticed that the FM folder we cloned from Github is now sitting within your darkmod/fms folder. This means TDM will see it as a fan mission. If you have all the required files for a FM (e.g. startingmap.txt, map file, etc) and your FM is playable, all you need to do is start TDM and install the mission in the same manner as you would if using a .pk4 file, run DMAP and off you go.<br />
<br />
For a full example of a fully developed and released mission in Github, see [https://github.com/thedarkmodcommunity/hits1 The Hare in the Snare, Part 1] in the TDM Github Community Organization.<br />
<br />
=== Collaboration (Advanced) ===<br />
==== Introduction ====<br />
Let's say we have two mappers who want to work on the same FM together. Without using Git, there would need to be some mechanism to share the FM files (probably by zipping and sharing .pk4 files, exporting and sharing prefab files, etc). Using Git, this process becomes much quicker and cleaner. There is one caveat however, in that it's not recommended to have multiple people working on the map file at the same time. This is a limitation of TDM and DarkRadiant, not Git. To be clear, multiple people can work on it and export parts of it (prefabs, etc), but if more than one person pushes changes, merge conflicts will likely occur in the .map file that will be next to impossible to reconcile.<br />
<br />
In our scenario, let's assume the following:<br />
* mapper A: mapping and scripting. Also owns the Git repository in Github<br />
* mapper B: models, textures, readables, etc. Basically anything but mapping. They don't own the Github repository, but they have a Github account and can be added as a collaborator.<br />
<br />
==== A word about branches ====<br />
I haven't mentioned anything about branching in Git until now because I only wanted to introduce concepts as they are needed. However, if you are planning to collaborate you will need to understand how to use branches. The basics are enough, and you can read about it [https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches '''here'''] first.<br />
<br />
Essentially, what we are proposing is the following:<br />
* the default (also called 'main' by default) branch is protected, and nobody (not even mapper A, the owner) can push directly to it. This helps prevent screw ups and is highly recommended for collaborative projects.<br />
* both mapper A and mapper B work on their own branches<br />
* when mapper A and mapper B are finished their current task (or just want to get stuff merged), they merge their work into the default branch using something called a pull request. They can do this at any time and independently of one another (except if approvals are required - more on that later).<br />
<br />
==== Project Initialization ====<br />
Since mapper A will be the owner of the Github project, they create the repository in Github as described above on this page. They get the map into a good enough state for others to start working on it, and they push their changes to Github. Everything is on the 'main' branch and ready to go.<br />
<br />
==== Protect the default branch ====<br />
'''NOTE:''' this feature is only available to free accounts if you are using public repositories!<br />
<br />
As mentioned previously, it is highly recommended to protect the default branch (called 'main' by default) to avoid damaging the code (intentionally or unintentionally). You can read more about this [https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches#working-with-protected-branches here].<br />
To protect the default branch, '''mapper A''' should follow the instructions [https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule#creating-a-branch-protection-rule here].<br />
<br />
The following settings are recommended at minimum:<br />
* for 'branch name pattern' choose 'main', as this will be the name of the default branch we want to protect (unless for some reason mapper A changed the name of the default branch).<br />
* tick 'require pull requests before merging'<br />
* set 'required approving reviews' to at least 1. You can set this to 2, and then both mapper A and mapper B would need to approve any merge to the default branch but his might become a hassle/hindrance. Entirely up to the mappers to decide.<br />
* tick 'Dismiss stale pull request approvals when new commits are pushed'. This will require a new approval on an existing pull request if new commits are pushed.<br />
<br><br />
[[File:Github-branch-rule.jpg|500px|left]]<br />
<br />
<br clear=all><br />
<br><br />
<br />
==== Add a collaborator to the Github project ====<br />
Now mapper A wants to invite mapper B to the project. Assuming mapper B also has a Github account, mapper A should then invite mapper B to the repository by following the instructions [https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository here].<br />
<br />
Note that adding a collaborator entitles them to many permissions on the repository. See [https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/managing-user-account-settings/permission-levels-for-a-user-account-repository#collaborator-access-for-a-repository-owned-by-a-user-account here] for more information.<br />
<br />
Mapper B will now get an invite in their email to join the repository.<br />
<br />
==== Collaborator clones the repository ====<br />
Mapper B can now clone the repository by following the instructions [[Git_and_Github_for_Mappers#Clone_the_repository_to_your_local_filesystem|above]]<br />
<br />
==== Create 'feature' branches ====<br />
A 'feature branch' is just Git jargon to mean any branch that is being used to add new features to the codebase, so anything other than the default branch ('main' in our case), or if you are using other branches for testing or release.<br />
<br />
Both mapper A and mapper B should now do the following:<br />
<br />
To create a new branch using VS Code, do the following:<br />
# In the bottom left of VS Code, click the branch icon that says 'main' next to it. '''NOTE:''' this will always display the name of the current working branch. If you're not sure what branch you are on, just check here.<br />
# a pop up will appear. Select '+ Create new branch'<br />
# type in a name for your branch (no spaces), like 'mapper-b-work' or 'add-model' and press enter.<br />
<br><br />
[[File:Vs-code-branch.jpg|500px|left]]<br />
<br clear=all><br />
<br><br />
You should now have a new branch in your '''local''' Git repository. Both mapper A and mapper B can now carry on and work, committing and pushing their changes to their respective remote branches in Github.<br />
<br />
<br clear=all><br />
==== Merging your work: raising a pull request ====<br />
Say mapper B has now finished his task and wants to merge his work. Since we protected the default branch, he can't just merge it and push to it to Github. Instead, he needs to create a '''pull request''' on Github.<br />
<br />
A pull request is essentially just a 'thing' you create that says '''"Hey, I want to merge these files from this branch into that branch. Can someone please review and approve?"'''<br />
<br />
In essence, mapper B should do the following:<br />
# Make sure his changes are pushed to Github on his branch<br />
# Raise a pull request as detailed [https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request#creating-the-pull-request '''here''']<br />
<br><br />
'''NOTE:''' If you have recently pushed to Github on a branch and are logged into the UI, you will see a message like the following that makes it even easier to create a pull request:<br />
[[File:Github-create-pr.jpg|500px|thumb|left]]<br />
<br clear=all><br />
<br />
==== Merging your work: approving a pull request ====<br />
Now that mapper B has raised his pull request, mapper A can review and approve it. In our scenario, a merge requires at least 1 approval. This needs to be done by mapper A because mapper B cannot approve his own pull requests.<br />
<br />
To approve the pull request, mapper A needs to:<br />
# in the Github UI, navigate to the repository and then 'pull requests'<br />
# click on the pull request to review, and then click on 'Files changed' to review the changes<br />
# click on 'Review changes' and then 'approve'. Mapper A could instead choose to only comment, or request changes (meaning the PR can't be merged until mapper A sees and approves the desired changes).<br />
<br />
[[File:Github-approve.jpg|500px|left]]<br />
<br clear=all><br />
<br />
==== Merging your work: merging a pull request ====<br />
Now that mapper A has approved mapper B's pull request, mapper B can then merge it. To do this, follow the instructions [https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-changes-from-a-pull-request/merging-a-pull-request#merging-a-pull-request-on-github '''here'''].<br />
<br />
==== Merging your work: quick and dirty version ====<br />
Back when we set up our branch protection rule to protect the default branch ('main'), notice we didn't tick the box that said 'Include administrators':<br />
<br><br />
[[File:Github-branch-rule-2.jpg|500px|left]]<br />
<br clear=all><br />
<br />
What this means is that administrators of the repository (i.e. mapper A) can merge this pull request without bothering with approvals. He will get a screen like this when he views the PR:<br />
<br />
[[File:Github-merge-admin.jpg|500px|left]]<br />
<br clear=all><br />
<br />
This is handy for the following scenarios:<br />
* you are working alone, but still want to protect the default branch against accidental pushes<br />
* in a collaboration scenario where mapper A wants to merge his own work without having to bother to get approvals from other collaborators<br />
<br />
==== Getting the latest version of the code ====<br />
Now that mapper B has his changes merged, mapper A wants to get his hands on it. He has 2 choices here. He can either:<br />
# merge main into his feature branch (recommended)<br />
# merge his changes into main via pull request, update his local main branch, and then resume work on a new feature branch<br />
<br />
===== Option 1: merge from main branch =====<br />
This is the simplest option. This will just merge changes from the main branch into the feature branch. Mapper A should:<br />
# Commit all changes to his local branch (and optionally push)<br />
# Switch to the main branch by clicking the branch icon in the bottom left of VS code (the same icon we used to create a new branch - just choose the main branch instead of creating a new one this time)<br />
# Update the local 'main' branch by clicking the 'loop' icon in the bottom left of VS Code (the same icon we used for push). This is equivalent of performing a [https://git-scm.com/docs/git-pull '''git pull'''] on the command-line.<br />
# switch back to the feature branch (again, the branch icon)<br />
# From the source control view, click the 3 dots at the top of the view, and select Branch -> Nerge branch... and then select the 'main' branch<br />
<br />
Mapper A will now have the latest changes from main, and can continue working.<br />
<br><br />
[[File:Vs-code-merge.jpg|500px|left]]<br />
<br />
<br clear=all><br />
<br />
===== Option 2: merge, pull and create new branch =====<br />
There is no real reason to do this except if you are afraid of screwing up the merge. All the merging will be handled by Github. If you want to do this, then:<br />
# Commit, push and merge your current work as detailed above<br />
# switch to the main branch, and do a git pull by clicking the 'loop' icon in the bottom left of VS Code. This will pull the changes from mapper B and your changes from your feature branch that you just merged.<br />
# create a new branch off main and continue working.<br />
<br />
==== Implications ====<br />
So why do all this? It seems like a hassle right? Well no, because even though it seems like you have to do a lot here, actually performing the steps takes mere seconds. Let's look at what's happening here:<br />
# Mapper A and B can both work on the same FM<br />
# Mapper B can apply his changes to the FM and push them with a couple of clicks<br />
# Mapper A can then retrieve mapper B's changes and see them in his own map with a couple of clicks<br />
# Mapper A can run DMAP and play the changes from mapper B immediately<br />
<br />
In real time, this process takes less than a minute, easily. No zipping files, no uploading/downloading from Dropbox, no extracting/copying files, etc.<br />
<br />
Another useful feature of this is mapper A or mapper B can see each others work by simply switching branches. Say mapper B is working on a new section of the map that he is going to export as a prefab later. Mapper A is getting impatient and wants to look at it. All the team needs to do is:<br />
# ensure both have committed and pushed their latest code to Github (again, a couple of seconds)<br />
# Mapper A pulls the latest code (loop icon at bottom left in VS Code) and switches to mapper B's branch<br />
# Mapper A views the work in DR, or runs DMAP and runs the map in TDM to have a look<br />
# when finished, Mapper A switches back to his own branch and resumes his work<br />
<br />
Again, all of this would only take seconds.<br />
<br />
=== Release Management ===<br />
==== Features ====<br />
Use of Github's other features such as Issues, pull requests and releases is very useful for managing the release cycle of your FM. With it, you can:<br />
# use it as your own personal bug tracker for just this particular FM. If it's public, then anyone can see it (or raise bugs if they have a Github account). You can also attach screenshots to the bug tracker entries.<br />
# use the projects feature to organise your work into columns (e.g. to do, in progress, done, etc)<br />
# host the .pk4 files for download by your beta testers<br />
# create automated changelogs (aka Release Notes) for new releases so everyone knows what's been fixed<br />
<br />
==== Setup ====<br />
* [https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels Add labels] to your repo that you think you might need. There are a bunch of defaults, but you may want to add more (e.g. 'gameplay', 'improvement', 'readables', etc.)<br />
* Once you have your labels, [https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes add the required YAML file] to your repo for generating automated release notes.<br />
<br />
==== Initial Beta Release ====<br />
You're ready for beta and want to make the .pk4 available for your beta testers. Do the following:<br />
# Ensure all your branches are cleaned up and your main branch is up to date<br />
# Do a clean DMAP of your FM (i.e. delete all .proc, .cm, .aas files, etc. first)<br />
# Package up the .pk4. I use a Powershell script, but you can do whatever suits you.<br />
# Test the .pk4 on a clean install of TDM. I have a separate 'test' install and just delete/reinstall the .pk4 whenever I have a new version.<br />
# Once you're happy there are no issues, [https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository create a release] in your Github repo. Use something like 'v1.0-beta', or 'v0.1' for the tag name to indicate it's a pre-release.<br />
# Attach the .pk4 file to the release by dropping it into the release page. You can edit the release and add it after if you forget.<br />
# Share the link to the .pk4 with your beta testers.<br />
<br />
==== Bugfix Workflow ====<br />
Now that testers have got ahold of your beta FM, the bug reports start rolling in.<br />
This is my own personal workflow for handling these. It suits me, and helps keep me organised and makes it easy to share progress with beta testers.<br />
<br />
'''It is strongly recommended to have [[Git_and_Github_for_Mappers#Protect_the_default_branch|branch protection]] turned on for this workflow.''' This will prevent any accidental changes.<br />
<br />
Essentially what we're doing here is performing each fix in a separate pull request. The reason for this is to take advantage of the automated release notes, which expect each individual fix or change to be in its own PR. It looks like a lot of steps, but like other parts of this tutorial it becomes second nature and only takes a few seconds to perform.<br />
<br />
# Once a bug or change is identified, [https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue create an issue] in your repository. For example, let's say we now have issue #8.<br />
# When you are ready to tackle the bug, make sure your local main branch is synced and create a new branch off of main in your repo just for this issue. Call the branch something like 'fix/8' to associate the branch with the actual issue you are fixing.<br />
# If you have DarkRadiant open already, '''reload the map'''. If you don't do this, DR will notify you with a pop-up message saying the underlying file has changed.<br />
# Make your changes in DR for the bugfix and test it, etc.<br />
# When you are ready to commit the fix, commit and push the new branch to Github.<br />
# Go to your Github repo in the browser and view the 'code' section. Github should notify you that a new branch has been pushed and ask you if you want to raise a pull request. Do so.<br />
# In the pull request (PR for short), make sure the title is something descriptive as it will show up in the release notes later. For example 'Fix z-fighting on castle wall'.<br />
# In the description, reference the issue you are fixing. This will associate the PR with the issue. For example, type 'fixes #8'. If you can't remember the issue number you need, just glance up at the branch name you are merging in the PR. This is why we name the branch after the issue :-)<br />
# Add a label to the pull request (e.g. 'bug'). This will categorise the fix in the automatically generated release notes.<br />
# Click 'create pull request' and then 'merge pull request'.<br />
# Before you merge, you can add a merge commit comment. Type 'fixes #8' here as well. What this does is automatically close the issue that the PR is associated with.<br />
# Click 'confirm merge'<br />
# Delete the branch<br />
# '''At this point, if you have TDM open, close it.''' If you don't, when you change branches in the next step Git will think the local map file has been modified. I think this is because TDM locks the .map file, so when you sync from Github it was not able to update it and shows it as changed from the version you just pulled from Github.<br />
# In your local git repo on your PC, change back to the 'main' branch and sync changes (or 'git pull' if using command line).<br />
# If you didn't close TDM and git is showing the .map file has changes, just revert any local changes and pull from Github. Your changes have been stored safely in Github and branch protection will prevent anything from getting lost/overwritten.<br />
<br />
==== Subsequent Beta Releases ====<br />
This is exactly the same as the initial beta release described above, except in this case you will:<br />
* name the release (and tag) differently, say 'v0.2-beta' or 'v0.2'<br />
* When creating the release in Github, [https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes click the 'generate release notes' button]. This will auto-generate a changelog based on the pull requests that have been merged since the last tagged release. They should be categorised by label if you added the release YAML config mentioned in the setup.<br />
<br />
== Tips, Tricks and Advice ==<br />
=== Git ===<br />
<br />
==== the .gitignore file ====<br />
the .gitignore file contains a list of filename and/or patterns to exclude from versioning. For example, you might not want to bother versioning the following:<br />
* save games<br />
* DMAP-generated files (.proc, .aas32, etc)<br />
* DR backup files<br />
* console history file<br />
* pointfiles<br />
<br />
An example .gitignore used for a FM can be found [https://github.com/thedarkmodcommunity/hits1/blob/main/.gitignore here].<br />
<br />
=== Github ===<br />
==== Use SSH for Github Authentication ====<br />
You can use SSH for Github instead of HTTPS. It's convenient because it can make authentication easier (no prompts for usernames/passwords, etc.). There is much debate over which is 'better' or more secure. If you want to try this, you can start [https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent '''here'''].<br />
<br />
==== Delete branches after merging!!! ====<br />
After you merge a pull request, '''always delete the branch'''. There is usually no reason to keep it, and you'll find they pile up and pollute your repository.<br />
<br />
==== Basic Collaboration Workflow ====<br />
A suggested workflow for raising pull requests and merging goes like this:<br />
# Mapper A raises pull request and notifies Mapper B<br />
# Mapper B reviews and approves pull request<br />
# Mapper A merges pull request and deletes branch.<br />
<br />
That's it - it doesn't need to be any more complicated than that.<br />
<br />
==== Binary Files ====<br />
Contrary to what you may read elsewhere, Git and Github handle binary files just fine. However there are a couple of things you need to be aware of, namely:<br />
* if you have files larger than 100 MB, they will be [https://docs.github.com/en/github/managing-large-files/working-with-large-files/conditions-for-large-files blocked] on push. If you are making cutscenes and brief/debrief videos, keep them under 100 MB. See [https://forums.thedarkmod.com/index.php?/topic/20904-ffmpeg-cinematics-the-only-format/&do=findComment&comment=460037 '''this forum post'''] for more information.<br />
* If you want to use larger files you can use Git LFS, but there are bandwidth and file [https://docs.github.com/en/github/managing-large-files/versioning-large-files quotas and limits].<br />
<br />
==== Adding an Existing FM to Github ====<br />
If you are already working on a FM and want to add it to Github now, you can do that too. Just do the following:<br />
# Make sure you have done the prerequisites listed [[Git_and_Github_for_Mappers#Tool_Setup|'''here''']].<br />
# Create an '''empty''' Git repository by following the instructions [[Git_and_Github_for_Mappers#Create_a_new_repository|'''here''']], but '''don't add a readme or .gitignore file'''.<br />
# You will see a page that looks similar to this:<br />
[[File:Github-existing-project.jpg|500px|left]]<br />
<br clear=all><br />
<br />
Before you start executing the commands, '''please read the following:'''<br />
* what this is doing is creating a local Git repository and then pushing it to the remote repository on Github you just created<br />
* the links it displays for the remote repository will be different from the screenshot above (they will be specific to your repository, so use those)<br />
* You need to be on the command-line inside the root of your FM folder (e.g. darkmod/fms/myfm)<br />
* these commands assume you are creating a new repository from scratch and you have no files. You do have files though, so skip the first '''echo''' command to create the readme.<br />
* instead of typing '''git add README.md''' (since we skipped creating it), add all files in the current directory by typing '''git add *''' instead<br />
* you can follow the rest of the commands as is<br />
<br />
=== VS Code ===<br />
=== Other Tools ===<br />
<br />
{{tutorial-editing}}</div>Datiswous