<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://df-21.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Df21admin</id>
	<title>DF21 Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://df-21.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Df21admin"/>
	<link rel="alternate" type="text/html" href="https://df-21.net/wiki/?title=Special:Contributions/Df21admin"/>
	<updated>2026-05-16T12:09:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1566</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1566"/>
		<updated>2025-09-05T21:23:31Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Numerical Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:ModConfImageTrue.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== TFE Setting Overrides ====&lt;br /&gt;
Inside the TFE overrides section you can add your own custom setting overrides. For example, if you want to disable fight music  you can do so by either going into the Game Settings and check the values you want enabled  or disabled. Or you can do it by updating the MOD_CONF.txt file by adding your own overrides. For example, if you want to disable fight music in your mod with overrides, add the key &#039;&#039;&#039;&amp;quot;disableFightMusic&amp;quot;&#039;&#039;&#039; and set the value to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;. &lt;br /&gt;
 &amp;quot;disableFightMusic&amp;quot; : true &lt;br /&gt;
And if you want to always run you can add a new TFE Override &#039;&#039;&#039;autorun&#039;&#039;&#039; and set it to true.&lt;br /&gt;
 &amp;quot;autorun&amp;quot; : true&lt;br /&gt;
Below is an example of how the setting options look like in the user interface. You can get to these by going into the Settings section of The Force Engine and clicking on &amp;quot;Game Settings&amp;quot;. &lt;br /&gt;
[[File:Override Settings.png|center|thumb|677x677px]]&lt;br /&gt;
You can replicate the above using the mod_conf TFE overrides. A full example of the above picture is shown below. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
        &amp;quot;disableFightMusic&amp;quot; : true,&lt;br /&gt;
        &amp;quot;enableAutoaim&amp;quot; : true,&lt;br /&gt;
        &amp;quot;showSecretFoundMsg&amp;quot; : true,&lt;br /&gt;
        &amp;quot;bobaFettFacePlayer&amp;quot; :  true,&lt;br /&gt;
        &amp;quot;ignoreInfLimit&amp;quot; : true,&lt;br /&gt;
        &amp;quot;solidWallFlagFix&amp;quot; : true,&lt;br /&gt;
        &amp;quot;enableUnusedItem&amp;quot; :  true,&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Here is the full description of the override settings.&lt;br /&gt;
 disableFightMusic  - Turns off the fight music in your mod&lt;br /&gt;
 enableAutoaim      - Turns the autoaiming on or off. &lt;br /&gt;
 showSecretFoundMsg - Allows you to toggle the secret found message added to TFE. &lt;br /&gt;
 autorun            - Toggles the autorun option. &lt;br /&gt;
 crouchToggle       - Changes how crouch behaves. You can press it once to toggle crouching instead of holding a button.&lt;br /&gt;
 bobaFettFacePlayer - A fix to make Boba Fett face the player. &lt;br /&gt;
 smoothVUEs         - Makes VUE transitions smoother by normalizing the fractional frame indexes. &lt;br /&gt;
 ignoreInfLimit     - Removes the limit of INF scripts. &lt;br /&gt;
 stepSecondAlt      - Allows you to automatically step on to Second Altitude sectors.&lt;br /&gt;
 solidWallFlagFix   - Solid wall flag is enforced for collision with moving walls&lt;br /&gt;
 enableUnusedItem   - Enables the unused item in the inventory (delt 10).&lt;br /&gt;
Simply apply them as you see fit for your mod. This section will expand as more overrides become available. &lt;br /&gt;
&lt;br /&gt;
And now we will talk about a special TFE override setting called &#039;&#039;&#039;levelOverrrides&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Level Overrides ====&lt;br /&gt;
Inside the TFE overrides section there is also an &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be a configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
===== Structure of a Level Override Section =====&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
====== SECBASE.LEV ======&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
====== TALAY.LEV ======&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &#039;&#039;&#039;true&#039;&#039;&#039; item will be added. When set to &#039;&#039;&#039;false&#039;&#039;&#039; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;f&#039;&#039;&#039;alse. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon     - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel          - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100.&lt;br /&gt;
 floorDamageLow    - Set the low floor damage amount (player hitpoints per second, normal is 5)&lt;br /&gt;
 floorDamageHigh   - Set the high floor damage amount (player hitpoints per second, normal is 10)&lt;br /&gt;
 gasDamage         - Set the gas damage amount (player hitpoints per second, normal is 5)&lt;br /&gt;
 wallDamage        - Set the wall damage amount (player hitpoints per second, normal is 20)&lt;br /&gt;
 gravity           - Set the level&#039;s gravity for player and enemies (normal is 150)&lt;br /&gt;
 projectileGravity - Set the level&#039;s gravity for projectiles (normal is 120)&lt;br /&gt;
 shieldSuperchargeDuration  - Set the duration of the shield supercharge (seconds)&lt;br /&gt;
 weaponSuperchargeDuration  - Set the duration of the weapon supercharge (seconds)&lt;br /&gt;
 headlampBatteryConsumption - Set the headlamp battery consumption rate (float value, % per second, normal is 0.208)&lt;br /&gt;
 gogglesBatteryConsumption  - Set the IR goggles battery consumption rate (float value, % per second, normal is 0.833)&lt;br /&gt;
 maskBatteryConsumption     - Set the gasmask battery consumption rate (float value, % per second, normal is 0.833)&lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the one below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
==== HD override details ====&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=WDFUSE_Tutorial_-_Advanced_Geometry_III&amp;diff=1545</id>
		<title>WDFUSE Tutorial - Advanced Geometry III</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=WDFUSE_Tutorial_-_Advanced_Geometry_III&amp;diff=1545"/>
		<updated>2025-08-04T16:40:57Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Advanced Geometry and Texturing ==&lt;br /&gt;
&lt;br /&gt;
=== Automatic Commits ===&lt;br /&gt;
Now that you&#039;ve experienced making changes to the editor you are probably wondering if there was a way to automatically make the commits without always hitting the &#039;&#039;&#039;commit&#039;&#039;&#039; button (&#039;&#039;&#039;F3).&#039;&#039;&#039; Go ahead and bring up the &#039;&#039;&#039;Options&#039;&#039;&#039; menu with &#039;&#039;&#039;F9.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Switch to the &#039;&#039;&#039;Confirmations&#039;&#039;&#039; Tab and select the &amp;quot;&#039;&#039;&#039;Automatically Commit Changes&#039;&#039;&#039;&amp;quot; checkbox in the top right corner . &lt;br /&gt;
[[File:AutoCommit.png|thumb|thumb|817x817px|center]]&lt;br /&gt;
Now, every time you make a change it will be auto-committed and the 3D renderer will also be updated at once. Do note, this does not work on multiple map components at once as it is a dangerous operation. &lt;br /&gt;
&lt;br /&gt;
=== Texturing Tutorial ===&lt;br /&gt;
Now lets jump to &#039;&#039;&#039;Room 5 .&#039;&#039;&#039; It is the with many textures and looks like this.&lt;br /&gt;
[[File:Texture1.png|thumb|thumb|939x939px|center]]&lt;br /&gt;
Here you will learn how texturing works in Dark Forces. Lets start by looking at the wall with 3 shelves that have gray and gold flat textures.&lt;br /&gt;
&lt;br /&gt;
==== Top / Middle / Bottom ====&lt;br /&gt;
You may have noticed that in the Wall Editor there are four texture types. &#039;&#039;&#039;Top&#039;&#039;&#039;, &#039;&#039;&#039;Middle&#039;&#039;&#039;, &#039;&#039;&#039;Bottom&#039;&#039;&#039; and &#039;&#039;&#039;Sign&#039;&#039;&#039;. These describe which section of the Wall  should be updated with a texture. In the vast majority of cases you would only need to update the &#039;&#039;&#039;Middle&#039;&#039;&#039; section. However, if the wall is adjoined to another wall then you may need to update the &#039;&#039;&#039;Top&#039;&#039;&#039; or the &#039;&#039;&#039;Bottom&#039;&#039;&#039; sections. Lets look below.&lt;br /&gt;
[[File:TopMidBot.png|thumb|thumb|949x949px|center]]&lt;br /&gt;
Lets number each texture column in front of us from 1 to 8. Notice that columns 1, 2 4, 6 and 8 all have the grate texture. Because they are not adjoined to the small shelves (holes) with the fan texture the only texture you are looking at is in the &#039;&#039;&#039;Middle&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
It is important to understand the the adjoined wall to the shelf  sector &#039;&#039;&#039;always&#039;&#039;&#039; consumes the middle texture section. What would that mean for us?&lt;br /&gt;
[[File:Bot.png|thumb|thumb|354x354px|center]]&lt;br /&gt;
In column 3, the shelf is at the bottom. The shelf consumes the middle section because it is the adjoin. So the texture you are seeing above the adjoined section is the &#039;&#039;&#039;Top&#039;&#039;&#039; and is colored &#039;&#039;&#039;Grey.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the adjoin. We only see the top texture &#039;&#039;&#039;ZPGRYFIL.BM&#039;&#039;&#039; (GRAY)&lt;br /&gt;
[[File:Mid.png|thumb|thumb|390x390px|center]]&lt;br /&gt;
In column 5 the shelf is in the middle of the wall and consumes the middle adjoin section. Because we can see below the shelf we are looking at the &#039;&#039;&#039;Bottom&#039;&#039;&#039; section and it is colored &#039;&#039;&#039;Gold.&#039;&#039;&#039; We can also see above the middle shelf consuming the adjoin. So anything above is the &#039;&#039;&#039;Top&#039;&#039;&#039; section and the texture there is &#039;&#039;&#039;Grey.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the middle adjoin. We only see the top texture &#039;&#039;&#039;ZPGRYFIL.BM&#039;&#039;&#039; (GRAY) and the bottom texture &#039;&#039;&#039;ZPYFILL.BM&#039;&#039;&#039; (GOLD)&lt;br /&gt;
[[File:Top.png|thumb|thumb|451x451px|center]]&lt;br /&gt;
In column 7, the shelf is at the top. The shelf consumes the middle section because it is the adjoin. So the texture you are seeing below the adjoined section is the &#039;&#039;&#039;Bottom&#039;&#039;&#039; and is colored &#039;&#039;&#039;Gold.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the adjoin. We only see the bottom texture &#039;&#039;&#039;ZPYFILL.BM&#039;&#039;&#039; (GOLD)&lt;br /&gt;
&lt;br /&gt;
Feel free to play around with the textures in  here to make sure you understand the concept. &lt;br /&gt;
&lt;br /&gt;
You may be wondering, What happens if a sector is adjoined to more than two shelves, which texture section do you assign? The answer is &#039;&#039;&#039;NONE&#039;&#039;&#039;! Dark Forces engine (JEDI) does not support room over room rendering. This feature is in Outlaws (JEDI v2.0). &lt;br /&gt;
&lt;br /&gt;
==== Signs ====&lt;br /&gt;
Now lets look at the southern wall with the red sign. &lt;br /&gt;
[[File:SignTexture.png|thumb|thumb|870x870px|center]]&lt;br /&gt;
Signs are a special overlay texture for you wall. They always start at the bottom left corner of the wall and you move them around until they are in the place you want them to be. Signs in Nar Shaddaa mission are done this way as well as switches (More on this later).&lt;br /&gt;
&lt;br /&gt;
You can change the X/Y positions of the sign from the Wall Editor. However, it is &#039;&#039;&#039;much&#039;&#039;&#039; faster to do it if you click on the Sign offsets in the Wall Editor and,  while holding the &#039;&#039;&#039;Shift&#039;&#039;&#039; button, use the &#039;&#039;&#039;Arrow&#039;&#039;&#039; keys. &lt;br /&gt;
[[File:SignOffSets.png|thumb|thumb|316x316px|center]]&lt;br /&gt;
If you press &#039;&#039;&#039;Up&#039;&#039;&#039; while holding &#039;&#039;&#039;Shift&#039;&#039;&#039; the texture will go up and &#039;&#039;&#039;Down&#039;&#039;&#039; otherwise. The same for &#039;&#039;&#039;Left&#039;&#039;&#039; and &#039;&#039;&#039;Right&#039;&#039;&#039; arrow keys. &lt;br /&gt;
&lt;br /&gt;
Go ahead and give it a try. It&#039;s a lot faster than typing the offsets with your keyboard. &lt;br /&gt;
[[File:MoveSign.png|thumb|thumb|767x767px|center]]It is important to note. &#039;&#039;&#039;Signs always start calculating distance from the bottom left corner of the middle texture.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This means that if you have an X or Y offset for the texture then the sign will ALSO get that offset. Long story short, if you cannot find your sign, set your Middle Texture to X=0 and Y=0.&lt;br /&gt;
&lt;br /&gt;
==== Floors and Ceilings ====&lt;br /&gt;
Now lets look at the top and bottom of this sector. You may notice that the textures are not aligned. &lt;br /&gt;
[[File:FloorAlign.png|thumb|thumb|742x742px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets make them even! Switch to Sector Mode and click on the Floor Texture X and Z Offsets. &lt;br /&gt;
[[File:Floor.png|thumb|thumb|266x266px|center]]&lt;br /&gt;
Now, just like with the sign, use the &#039;&#039;&#039;Shift&#039;&#039;&#039; + &#039;&#039;&#039;Arrow Keys&#039;&#039;&#039; to align the floor  textures so they are even. &lt;br /&gt;
[[File:FloorAlign3.png|thumb|thumb|747x747px|center]]&lt;br /&gt;
Much better! &lt;br /&gt;
&lt;br /&gt;
The ceiling also looks a bit off! &lt;br /&gt;
[[File:CeilingAlign.png|thumb|thumb|769x769px|center]]&lt;br /&gt;
Now click on the X/Z offsets for the ceiling and align the ceiling texture just like you did the floor. &lt;br /&gt;
[[File:CeilingAlign2.png|thumb|thumb|769x769px|center]]&lt;br /&gt;
Now they both look good.&lt;br /&gt;
&lt;br /&gt;
One important thing to remember with floor and ceiling textures is that they must be square and of size 8x8 (or 64x64 pixels). If you use any other texture they may look distorted! (The special cases where this limit does not apply are sky textures, but that&#039;s a different thing entirely.)&lt;br /&gt;
&lt;br /&gt;
==== Stitch Aligns ====&lt;br /&gt;
Now lets look at the north wall of this sector. It is a mess. I am sure you are not excited to align all those sections. &lt;br /&gt;
[[File:StitchAlign.png|thumb|thumb|831x831px|center]]&lt;br /&gt;
Fortunately, there is a tool called &#039;&#039;&#039;Stitch&#039;&#039;&#039; that will automatically attempt to match the textures to the LEFT or RIGHT texture depending on what option you choose. Go ahead and switch to Wall Editor and Multiselect (with &#039;&#039;&#039;SHIFT&#039;&#039;&#039;) all the wall from left to right. &lt;br /&gt;
&lt;br /&gt;
It should look like this in your editor.&lt;br /&gt;
[[File:MultiSelectWalls.png|thumb|thumb|761x761px|center]]&lt;br /&gt;
Then right click on the wall and in the pop-up menu choose &#039;&#039;&#039;Stitch (&#039;&#039;&#039;Hotkey &#039;&#039;&#039;Shift+F5&#039;&#039;&#039;).  This will automatically align all the texture and save you lots of time. &lt;br /&gt;
[[File:AutoStich.png|thumb|thumb|770x770px|center]]&lt;br /&gt;
You can also reverse stitch from the right corner texture by choosing &#039;&#039;&#039;Reverse Stich&#039;&#039;&#039; option (or &#039;&#039;&#039;Shift+F6&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Pop quiz before you go - go ahead and align the texture over the passageway. Which Wall section should you update? Top, Middle or Bottom?&lt;br /&gt;
[[File:TopMidBotAlign.png|thumb|thumb|711x711px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SubSectors ===&lt;br /&gt;
In Room 4 you will see a small square-shaped sector in the middle that is completely enclosed by the room&#039;s sector. &lt;br /&gt;
[[File:SubSector1.png|thumb|thumb|467x467px|center]]&lt;br /&gt;
Sectors that are completely enclosed by another sector are called &#039;&#039;&#039;SubSectors.&#039;&#039;&#039;  For example, the Detention Center&#039;s diamond-shaped moving platform is a subsector that is completely enclosed by the cliff sector, as well as most control consoles on the floor, podiums, etc. &lt;br /&gt;
&lt;br /&gt;
With subsectors you can change the height to make either a pit or a platform. In this case you see a red platform.&lt;br /&gt;
[[File:SubSector2.png|thumb|thumb|838x838px|center]]&lt;br /&gt;
Select the Sector Editor and click on the subsector. Lets make it a pit instead! Change the &#039;&#039;&#039;Floor Altitude&#039;&#039;&#039; to -4. &lt;br /&gt;
[[File:SubSector3.png|thumb|thumb|841x841px|center]]&lt;br /&gt;
Now the SubSector is a pit.  Now lets delete the subsector and see what happens.&lt;br /&gt;
&lt;br /&gt;
As you can see the subsector is gone and now all you see are walls. Deleting subsectors is a great way to make pillars in your rooms. [[File:SubSectorr4.png|thumb|844x844px|center]]Now lets practice making subsectors. Go to Room 6 and select it. Go ahead and right click on this sector to bring up the pop-up menu.&lt;br /&gt;
[[File:SubSector5.png|thumb|thumb|720x720px|center]]&lt;br /&gt;
You can see that there is an option to &#039;&#039;&#039;Create&#039;&#039;&#039; or &#039;&#039;&#039;Delete&#039;&#039;&#039; subsectors . Go ahead and choose &amp;quot;&#039;&#039;&#039;Subsector with 6-sides&#039;&#039;&#039;&amp;quot;. &lt;br /&gt;
[[File:SubSector6.png|thumb|thumb|455x455px|center]]&lt;br /&gt;
As you can see the tool created a hexagon. Go ahead and play with the subsector tool by giving it different floor and ceiling heights. You can always undo using &#039;&#039;&#039;CTRL+Z&#039;&#039;&#039; hotkey.&lt;br /&gt;
&lt;br /&gt;
=== Sector Flags ===&lt;br /&gt;
Before we go to the next room you may notice that the next section is greyed out (Or you may not see it at all). &lt;br /&gt;
[[File:Layer1.png|thumb|thumb|605x605px|center]]&lt;br /&gt;
That&#039;s because these sectors belongs on a different layer. Go ahead and change to &#039;&#039;&#039;Layer 1&#039;&#039;&#039; by clicking on the Layer arrow in the main menu or by holding &#039;&#039;&#039;Shift&#039;&#039;&#039; and using the &#039;&#039;&#039;MouseWheel.&#039;&#039;&#039; If you click on the actual number you will get a grey outline of other layers. To see only the current layer ensure that the layer color is black, not red. Keep in mind that the layers are not here only to make editing more convenient ― they are also read and interpreted by the Dark Forces engine.  &lt;br /&gt;
[[File:Layer2.png|thumb|thumb|631x631px|center]]&lt;br /&gt;
Now lets continue with &#039;&#039;&#039;Room 7&#039;&#039;&#039; where you will learn about the various flag properties and how they affect the game. &lt;br /&gt;
&lt;br /&gt;
For this part of the tutorial, &#039;&#039;&#039;GOB&#039;&#039;&#039; your mission and start it in Dark Forces. Walk to the room and look at the here you will learn about the various flag properties and how they affect the game. When you work with flags you can turn more than one at a time. &lt;br /&gt;
&lt;br /&gt;
==== Ice Physics ====&lt;br /&gt;
Lets start with the north side of the room where the floor is marble-textured. Go ahead an walk on it.&lt;br /&gt;
[[File:FlagTut1.png|thumb|thumb|745x745px|center]]&lt;br /&gt;
You will notice that it is a slippery floor, just like in the Robotics Facility mission. &lt;br /&gt;
&lt;br /&gt;
This is done with the Sector Editor&#039;s flag settings. Go ahead and open up &#039;&#039;&#039;Flag 1&#039;&#039;&#039; section for this sector.&lt;br /&gt;
[[File:FlagTut2.png|thumb|thumb|751x751px|center]]&lt;br /&gt;
Notice that &#039;&#039;&#039;Flag 16&#039;&#039;&#039; is turned on. This makes the sector an ice sector and this is why you slide when you walk on it. &lt;br /&gt;
&lt;br /&gt;
==== Secrets ====&lt;br /&gt;
Now lets look at the sector to the left of it. You will notice it is &#039;&#039;&#039;purple&#039;&#039;&#039; (when not selected) on the mission. It means it is a &#039;&#039;&#039;Secret&#039;&#039;&#039; sector. &lt;br /&gt;
[[File:FlagTut3.png|thumb|thumb|747x747px|center]]&lt;br /&gt;
When you enter this sector the game will set your secrets value to &#039;&#039;&#039;100%&#039;&#039;&#039; in the PDA menu.&lt;br /&gt;
[[File:FlagTut4.png|thumb|thumb|748x748px|center]]&lt;br /&gt;
&lt;br /&gt;
==== Floor Damage ====&lt;br /&gt;
Now enter the room to the left with the force field floor texture. &lt;br /&gt;
[[File:FlagTut5.png|thumb|thumb|719x719px|center]]&lt;br /&gt;
You will take damage in this room. You can use the health packs to get it back to 100.&lt;br /&gt;
[[File:FlagTut6.png|thumb|thumb|703x703px|center]]&lt;br /&gt;
You will see that in the sector editor it is using flag 2048 &#039;&#039;&#039;Low Damage&#039;&#039;&#039; . This is why you take damage when you fall into the Research Facility irradiated water.&lt;br /&gt;
&lt;br /&gt;
==== Wall Reflections ====&lt;br /&gt;
The room to the left has white walls.  Try shooting them and you will see that the shots bounce off just like in Detention Center.&lt;br /&gt;
[[File:FlagTut7.png|thumb|thumb|754x754px|center]]&lt;br /&gt;
This is done with the sector editor&#039;s flag 4 &amp;quot;&#039;&#039;&#039;Shot Reflection&#039;&#039;&#039;&amp;quot; &lt;br /&gt;
[[File:FlagTut8.png|thumb|thumb|754x754px|center]]&lt;br /&gt;
Note that this is a &#039;&#039;&#039;Sector Editor&#039;&#039;&#039; flag, not a &#039;&#039;&#039;Wall Editor&#039;&#039;&#039; flag. If you want walls to reflect, it has to be done for the entire sector.&lt;br /&gt;
&lt;br /&gt;
=== Wall Flags ===&lt;br /&gt;
Now lets take a look at wall flag settings. &lt;br /&gt;
&lt;br /&gt;
Go to the room with the forcefield texture at the end.&lt;br /&gt;
[[File:FlagTut9.png|thumb|thumb|692x692px|center]]&lt;br /&gt;
When you touch this wall you will take damage. &lt;br /&gt;
[[File:FlagTut10.png|thumb|thumb|694x694px|center]]&lt;br /&gt;
It&#039;s done with the Wall Flag editor 8192 &#039;&#039;&#039;&amp;quot;Wall Damages Player&amp;quot;&#039;&#039;&#039; . &lt;br /&gt;
&lt;br /&gt;
==== Adjoin Flags ====&lt;br /&gt;
On the left you will see a room with a stormtrooper. &lt;br /&gt;
[[File:FlagTut11.png|thumb|thumb|696x696px|center]]&lt;br /&gt;
Notice that he keeps shooting you but cannot hit you since his shots don&#039;t go through the wall. Your shots as well are blocked. He also cannot exit the room he is stuck in. This is by modifying the adjoin flags - &#039;&#039;&#039;Flag 3&#039;&#039;&#039; section instead of &#039;&#039;&#039;Flag 1&#039;&#039;&#039;  that deal with wall properties. &lt;br /&gt;
[[File:FlagTut12.png|thumb|thumb|698x698px|center]]&lt;br /&gt;
This time both flags 4 (&#039;&#039;&#039;Fence&#039;&#039;&#039;)  and 8 (&#039;&#039;&#039;Cannot Fire Through Wall)&#039;&#039;&#039; are turned on.  They are added to 12 and are set as the value for &#039;&#039;&#039;Flag 3.&#039;&#039;&#039;  &lt;br /&gt;
&lt;br /&gt;
This next concept is &#039;&#039;&#039;important -&#039;&#039;&#039; pay attention! &lt;br /&gt;
&lt;br /&gt;
The room with the stormtrooper connects to the central sector as &#039;&#039;&#039;Wall 0&#039;&#039;&#039; and the big sector above connects to the stormtrooper with &#039;&#039;&#039;Wall&#039;&#039;&#039; &#039;&#039;&#039;18.&#039;&#039;&#039;  &lt;br /&gt;
[[File:FlagTut14.png|thumb|thumb|438x438px|center]]&lt;br /&gt;
If we select the stormtrooper room &#039;&#039;&#039;Wall&#039;&#039;&#039; &#039;&#039;&#039;0&#039;&#039;&#039; (you can tell by the orientation of the normal line pointing down) you can see that the Fence (4) lock is enabled. &lt;br /&gt;
&lt;br /&gt;
When you select &#039;&#039;&#039;Wall 18&#039;&#039;&#039; you will see that the &#039;&#039;&#039;Fence&#039;&#039;&#039; flag is not enabled - only cannot fire. &lt;br /&gt;
[[File:FlagTut15.png|thumb|thumb|746x746px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So what is happening? The stormtrooper is affected first by the adjoined &#039;&#039;&#039;Wall 0&#039;&#039;&#039; facing him. He won&#039;t get affected by the wall (&#039;&#039;&#039;Wall 18)&#039;&#039;&#039; from the central sector unless he tries to re-enter his room. That is why the &#039;&#039;&#039;Fence&#039;&#039;&#039; (&#039;&#039;&#039;Flag 4)&#039;&#039;&#039; is on the inner side of the room. If you remove that flag and put it on &#039;&#039;&#039;Wall 18&#039;&#039;&#039; he will be able to leave (but not able to re-enter). &lt;br /&gt;
&lt;br /&gt;
The point is to always consider the adjoined wall facing the objects in the sector. Because this is the wall that will affect the object. Because the flag &amp;quot;&#039;&#039;&#039;Cannot Walk Through Wall&amp;quot;&#039;&#039;&#039; (2) is not enabled you can traverse the adjoin at will. You will be able to enter the sector and shoot the stormtrooper and then leave. &lt;br /&gt;
&lt;br /&gt;
==== Transparency Adjoins ====&lt;br /&gt;
Go to the room next to it with the crate textures. Have you ever wondered how the holes in crates are done? &lt;br /&gt;
[[File:FlagTut16.png|thumb|thumb|687x687px|center]]&lt;br /&gt;
If you look at the Wall settings you will notice that &#039;&#039;&#039;Adjoining Mid Tx&#039;&#039;&#039; is turned on (Flag 1). This tells Dark Forces to display the texture even if it is adjoined.&lt;br /&gt;
[[File:FlagTut18.png|thumb|thumb|448x448px|center]]&lt;br /&gt;
How do you tell a texture which colors it should show and which it should not? This is done with a concept called &#039;&#039;&#039;Alpha&#039;&#039;&#039; where you choose a single color (Ex: &#039;&#039;&#039;Black&#039;&#039;&#039; ) and make that color transparent. &lt;br /&gt;
&lt;br /&gt;
If you double click on the Mid Texture of the wall (&#039;&#039;&#039;IDMGDCRT.BM)&#039;&#039;&#039; and open the Texture Resource Editor you see that there is a large black hole in the middle. &lt;br /&gt;
[[File:FlagTut19.png|thumb|thumb|704x704px|center]]&lt;br /&gt;
The flag for the texture is as &#039;&#039;&#039;Transparent&#039;&#039;&#039; and that by default, the &#039;&#039;&#039;Black&#039;&#039;&#039;  pixels are transparent. If you choose a different non-transparent solid texture (ex: &#039;&#039;&#039;IPRMCRT1.BM&#039;&#039;&#039; )  you will be able to &#039;&#039;&#039;walk through the wall.&#039;&#039;&#039; &lt;br /&gt;
[[File:FlagTut20.png|thumb|thumb|601x601px|center]]&lt;br /&gt;
&lt;br /&gt;
==== Adjoin Blocks ====&lt;br /&gt;
Finally, the last room to the left of the crates is unique. You will notice you cannot enter it.&lt;br /&gt;
[[File:FlagTut21.png|thumb|thumb|630x630px|center]]&lt;br /&gt;
This is because the &#039;&#039;&#039;Flag 3&#039;&#039;&#039;  section is set as &#039;&#039;&#039;Cannot Walk Through Wall&#039;&#039;&#039; (2).&lt;br /&gt;
[[File:FlagTut22.png|thumb|thumb|520x520px|center]]&lt;br /&gt;
You can use this feature to put up invisible walls so the player accidentally does not fall off a cliff for example.&lt;br /&gt;
&lt;br /&gt;
You may also notice that the wall at the bottom is &#039;&#039;&#039;not visible&#039;&#039;&#039; on the map when you play. &lt;br /&gt;
[[File:NoVisibleWall.png|thumb|thumb|795x795px|center]]&lt;br /&gt;
That&#039;s because the wall flag at the bottom is set to &#039;&#039;&#039;Hide On Map.&#039;&#039;&#039; This is useful for secrets or when you want to hide sectors with logic (more on that later). &lt;br /&gt;
[[File:FlagHideWall.png|thumb|thumb|686x686px|center]]&lt;br /&gt;
&lt;br /&gt;
Now you have a better concept of Sector and Wall flags. Remember &#039;&#039;&#039;- you can combine flags&#039;&#039;&#039; - to create different effects. &lt;br /&gt;
&lt;br /&gt;
Feel free to experiment and then lets jump to the [[WDFUSE Tutorial - Objects|&#039;&#039;&#039;Object&#039;&#039;&#039;]] tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WDFUSE Tutorials&#039;&#039;&#039;&lt;br /&gt;
#[[WDFUSE Tutorial - Introduction|Introduction]]&lt;br /&gt;
# [[WDFUSE Tutorial - Configuration]]&lt;br /&gt;
#[[WDFUSE Tutorial - Basic Geometry]]&lt;br /&gt;
#[[WDFUSE Tutorial - Basic Geometry II]] &lt;br /&gt;
#[[WDFUSE Tutorial - 3D Renderer]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry II]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry III]]&lt;br /&gt;
#[[WDFUSE Tutorial - Objects]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting II]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting III]]&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=WDFUSE_Tutorial_-_Advanced_Geometry_III&amp;diff=1544</id>
		<title>WDFUSE Tutorial - Advanced Geometry III</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=WDFUSE_Tutorial_-_Advanced_Geometry_III&amp;diff=1544"/>
		<updated>2025-07-31T18:29:35Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Advanced Geometry and Texturing ==&lt;br /&gt;
&lt;br /&gt;
=== Automatic Commits ===&lt;br /&gt;
Now that you&#039;ve experienced making changes to the editor you are probably wondering if there was a way to automatically make the commits without always hitting the &#039;&#039;&#039;commit&#039;&#039;&#039; button (&#039;&#039;&#039;F3).&#039;&#039;&#039; Go ahead and bring up the &#039;&#039;&#039;Options&#039;&#039;&#039; menu with &#039;&#039;&#039;F9.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Switch to the &#039;&#039;&#039;Confirmations&#039;&#039;&#039; Tab and select the &amp;quot;&#039;&#039;&#039;Automatically Commit Changes&#039;&#039;&#039;&amp;quot; checkbox in the top right corner . &lt;br /&gt;
[[File:AutoCommit.png|thumb|thumb|817x817px|center]]&lt;br /&gt;
Now, every time you make a change it will be auto-committed and the 3D renderer will also be updated at once. Do note, this does not work on multiple map components at once as it is a dangerous operation. &lt;br /&gt;
&lt;br /&gt;
=== Texturing Tutorial ===&lt;br /&gt;
Now lets jump to &#039;&#039;&#039;Room 5 .&#039;&#039;&#039; It is the with many textures and looks like this.&lt;br /&gt;
[[File:Texture1.png|thumb|thumb|939x939px|center]]&lt;br /&gt;
Here you will learn how texturing works in Dark Forces. Lets start by looking at the wall with 3 shelves that have gray and gold flat textures.&lt;br /&gt;
&lt;br /&gt;
==== Top / Middle / Bottom ====&lt;br /&gt;
You may have noticed that in the Wall Editor there are four texture types. &#039;&#039;&#039;Top&#039;&#039;&#039;, &#039;&#039;&#039;Middle&#039;&#039;&#039;, &#039;&#039;&#039;Bottom&#039;&#039;&#039; and &#039;&#039;&#039;Sign&#039;&#039;&#039;. These describe which section of the Wall  should be updated with a texture. In the vast majority of cases you would only need to update the &#039;&#039;&#039;Middle&#039;&#039;&#039; section. However, if the wall is adjoined to another wall then you may need to update the &#039;&#039;&#039;Top&#039;&#039;&#039; or the &#039;&#039;&#039;Bottom&#039;&#039;&#039; sections. Lets look below.&lt;br /&gt;
[[File:TopMidBot.png|thumb|thumb|949x949px|center]]&lt;br /&gt;
Lets number each texture column in front of us from 1 to 8. Notice that columns 1, 2 4, 6 and 8 all have the grate texture. Because they are not adjoined to the small shelves (holes) with the fan texture the only texture you are looking at is in the &#039;&#039;&#039;Middle&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
It is important to understand the the adjoined wall to the shelf  sector &#039;&#039;&#039;always&#039;&#039;&#039; consumes the middle texture section. What would that mean for us?&lt;br /&gt;
[[File:Bot.png|thumb|thumb|354x354px|center]]&lt;br /&gt;
In column 3, the shelf is at the bottom. The shelf consumes the middle section because it is the adjoin. So the texture you are seeing above the adjoined section is the &#039;&#039;&#039;Top&#039;&#039;&#039; and is colored &#039;&#039;&#039;Grey.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the adjoin. We only see the top texture &#039;&#039;&#039;ZPGRYFIL.BM&#039;&#039;&#039; (GRAY)&lt;br /&gt;
[[File:Mid.png|thumb|thumb|390x390px|center]]&lt;br /&gt;
In column 5 the shelf is in the middle of the wall and consumes the middle adjoin section. Because we can see below the shelf we are looking at the &#039;&#039;&#039;Bottom&#039;&#039;&#039; section and it is colored &#039;&#039;&#039;Gold.&#039;&#039;&#039; We can also see above the middle shelf consuming the adjoin. So anything above is the &#039;&#039;&#039;Top&#039;&#039;&#039; section and the texture there is &#039;&#039;&#039;Grey.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the middle adjoin. We only see the top texture &#039;&#039;&#039;ZPGRYFIL.BM&#039;&#039;&#039; (GRAY) and the bottom texture &#039;&#039;&#039;ZPYFILL.BM&#039;&#039;&#039; (GOLD)&lt;br /&gt;
[[File:Top.png|thumb|thumb|451x451px|center]]&lt;br /&gt;
In column 7, the shelf is at the top. The shelf consumes the middle section because it is the adjoin. So the texture you are seeing below the adjoined section is the &#039;&#039;&#039;Bottom&#039;&#039;&#039; and is colored &#039;&#039;&#039;Gold.&#039;&#039;&#039; You can see in the image above that we do not see the &#039;&#039;&#039;IPSEC1.BM&#039;&#039;&#039; texture because it is consumed by the adjoin. We only see the bottom texture &#039;&#039;&#039;ZPYFILL.BM&#039;&#039;&#039; (GOLD)&lt;br /&gt;
&lt;br /&gt;
Feel free to play around with the textures in  here to make sure you understand the concept. &lt;br /&gt;
&lt;br /&gt;
You may be wondering, What happens if a sector is adjoined to more than two shelves, which texture section do you assign? The answer is &#039;&#039;&#039;NONE&#039;&#039;&#039;! Dark Forces engine (JEDI) does not support room over room rendering. This feature is in Outlaws (JEDI v2.0). &lt;br /&gt;
&lt;br /&gt;
==== Signs ====&lt;br /&gt;
Now lets look at the southern wall with the red sign. &lt;br /&gt;
[[File:SignTexture.png|thumb|thumb|870x870px|center]]&lt;br /&gt;
Signs are a special overlay texture for you wall. They always start at the bottom left corner of the wall and you move them around until they are in the place you want them to be. Signs in Nar Shaddaa mission are done this way as well as switches (More on this later).&lt;br /&gt;
&lt;br /&gt;
You can change the X/Y positions of the sign from the Wall Editor. However, it is &#039;&#039;&#039;much&#039;&#039;&#039; faster to do it if you click on the Sign offsets in the Wall Editor and,  while holding the &#039;&#039;&#039;Shift&#039;&#039;&#039; button, use the &#039;&#039;&#039;Arrow&#039;&#039;&#039; keys. &lt;br /&gt;
[[File:SignOffSets.png|thumb|thumb|316x316px|center]]&lt;br /&gt;
If you press &#039;&#039;&#039;Up&#039;&#039;&#039; while holding &#039;&#039;&#039;Shift&#039;&#039;&#039; the texture will go up and &#039;&#039;&#039;Down&#039;&#039;&#039; otherwise. The same for &#039;&#039;&#039;Left&#039;&#039;&#039; and &#039;&#039;&#039;Right&#039;&#039;&#039; arrow keys. &lt;br /&gt;
&lt;br /&gt;
Go ahead and give it a try. It&#039;s a lot faster than typing the offsets with your keyboard. &lt;br /&gt;
[[File:MoveSign.png|thumb|thumb|767x767px|center]]It is important to note. &#039;&#039;&#039;Signs always start calculating distance from the bottom left corner of the middle texture.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This means that if you have an X or Y offset for the texture then the sign will ALSO get that offset. Long story short, if you cannot find your sign, set your Middle Texture to X=0 and Y=0.&lt;br /&gt;
&lt;br /&gt;
==== Floors and Ceilings ====&lt;br /&gt;
Now lets look at the top and bottom of this sector. You may notice that the textures are not aligned. &lt;br /&gt;
[[File:FloorAlign.png|thumb|thumb|742x742px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets make them even! Switch to Sector Mode and click on the Floor Texture X and Z Offsets. &lt;br /&gt;
[[File:Floor.png|thumb|thumb|266x266px|center]]&lt;br /&gt;
Now, just like with the sign, use the &#039;&#039;&#039;Shift&#039;&#039;&#039; + &#039;&#039;&#039;Arrow Keys&#039;&#039;&#039; to align the floor  textures so they are even. &lt;br /&gt;
[[File:FloorAlign3.png|thumb|thumb|747x747px|center]]&lt;br /&gt;
Much better! &lt;br /&gt;
&lt;br /&gt;
The ceiling also looks a bit off! &lt;br /&gt;
[[File:CeilingAlign.png|thumb|thumb|769x769px|center]]&lt;br /&gt;
Now click on the X/Z offsets for the ceiling and align the ceiling texture just like you did the floor. &lt;br /&gt;
[[File:CeilingAlign2.png|thumb|thumb|769x769px|center]]&lt;br /&gt;
Now they both look good.&lt;br /&gt;
&lt;br /&gt;
One important thing to remember with floor and ceiling textures is that they must be square and of size 8x8 (or 64x64 pixels). If you use any other texture they may look distorted! (The special cases where this limit does not apply are sky textures, but that&#039;s a different thing entirely.)&lt;br /&gt;
&lt;br /&gt;
==== Stitch Aligns ====&lt;br /&gt;
Now lets look at the north wall of this sector. It is a mess. I am sure you are not excited to align all those sections. &lt;br /&gt;
[[File:StitchAlign.png|thumb|thumb|831x831px|center]]&lt;br /&gt;
Fortunately, there is a tool called &#039;&#039;&#039;Stitch&#039;&#039;&#039; that will automatically attempt to match the textures to the LEFT or RIGHT texture depending on what option you choose. Go ahead and switch to Wall Editor and Multiselect (with &#039;&#039;&#039;SHIFT&#039;&#039;&#039;) all the wall from left to right. &lt;br /&gt;
&lt;br /&gt;
It should look like this in your editor.&lt;br /&gt;
[[File:MultiSelectWalls.png|thumb|thumb|761x761px|center]]&lt;br /&gt;
Then right click on the wall and in the pop-up menu choose &#039;&#039;&#039;Stitch (&#039;&#039;&#039;Hotkey &#039;&#039;&#039;Shift+F5&#039;&#039;&#039;).  This will automatically align all the texture and save you lots of time. &lt;br /&gt;
[[File:AutoStich.png|thumb|thumb|770x770px|center]]&lt;br /&gt;
You can also reverse stitch from the right corner texture by choosing &#039;&#039;&#039;Reverse Stich&#039;&#039;&#039; option (or &#039;&#039;&#039;Shift+F6&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Pop quiz before you go - go ahead and align the texture over the passageway. Which Wall section should you update? Top, Middle or Bottom?&lt;br /&gt;
[[File:TopMidBotAlign.png|thumb|thumb|711x711px|center]]&lt;br /&gt;
&lt;br /&gt;
=== SubSectors ===&lt;br /&gt;
In Room 4 you will see a small square-shaped sector in the middle that is completely enclosed by the room&#039;s sector. &lt;br /&gt;
[[File:SubSector1.png|thumb|thumb|467x467px|center]]&lt;br /&gt;
Sectors that are completely enclosed by another sector are called &#039;&#039;&#039;SubSectors.&#039;&#039;&#039;  For example, the Detention Center&#039;s diamond-shaped moving platform is a subsector that is completely enclosed by the cliff sector, as well as most control consoles on the floor, podiums, etc. &lt;br /&gt;
&lt;br /&gt;
With subsectors you can change the height to make either a pit or a platform. In this case you see a red platform.&lt;br /&gt;
[[File:SubSector2.png|thumb|thumb|838x838px|center]]&lt;br /&gt;
Select the Sector Editor and click on the subsector. Lets make it a pit instead! Change the &#039;&#039;&#039;Floor Altitude&#039;&#039;&#039; to -4. &lt;br /&gt;
[[File:SubSector3.png|thumb|thumb|841x841px|center]]&lt;br /&gt;
Now the SubSector is a pit.  Now lets delete the subsector and see what happens.&lt;br /&gt;
&lt;br /&gt;
As you can see the subsector is gone and now all you see are walls. Deleting subsectors is a great way to make pillars in your rooms. [[File:SubSectorr4.png|thumb|844x844px|center]]Now lets practice making subsectors. Go to Room 6 and select it. Go ahead and right click on this sector to bring up the pop-up menu.&lt;br /&gt;
[[File:SubSector5.png|thumb|thumb|720x720px|center]]&lt;br /&gt;
You can see that there is an option to &#039;&#039;&#039;Create&#039;&#039;&#039; or &#039;&#039;&#039;Delete&#039;&#039;&#039; subsectors . Go ahead and choose &amp;quot;&#039;&#039;&#039;Subsector with 6-sides&#039;&#039;&#039;&amp;quot;. &lt;br /&gt;
[[File:SubSector6.png|thumb|thumb|455x455px|center]]&lt;br /&gt;
As you can see the tool created a hexagon. Go ahead and play with the subsector tool by giving it different floor and ceiling heights. You can always undo using &#039;&#039;&#039;CTRL+Z&#039;&#039;&#039; hotkey.&lt;br /&gt;
&lt;br /&gt;
=== Sector Flags ===&lt;br /&gt;
Before we go to the next room you may notice that the next section is greyed out (Or you may not see it at all). &lt;br /&gt;
[[File:Layer1.png|thumb|thumb|605x605px|center]]&lt;br /&gt;
That&#039;s because these sectors belongs on a different layer. Go ahead and change to &#039;&#039;&#039;Layer 1&#039;&#039;&#039; by clicking on the Layer arrow in the main menu or by holding &#039;&#039;&#039;Shift&#039;&#039;&#039; and using the &#039;&#039;&#039;MouseWheel.&#039;&#039;&#039; If you click on the actual number you will get a grey outline of other layers. To see only the current layer ensure that the layer color is black, not red. Keep in mind that the layers are not here only to make editing more convenient ― they are also read and interpreted by the Dark Forces engine.  &lt;br /&gt;
[[File:Layer2.png|thumb|thumb|631x631px|center]]&lt;br /&gt;
Now lets continue with &#039;&#039;&#039;Room 7&#039;&#039;&#039; where you will learn about the various flag properties and how they affect the game. &lt;br /&gt;
&lt;br /&gt;
For this part of the tutorial, &#039;&#039;&#039;GOB&#039;&#039;&#039; your mission and start it in Dark Forces. Walk to the room and look at the here you will learn about the various flag properties and how they affect the game. When you work with flags you can turn more than one at a time. &lt;br /&gt;
&lt;br /&gt;
==== Ice Physics ====&lt;br /&gt;
Lets start with the north side of the room where the floor is marble-textured. Go ahead an walk on it.&lt;br /&gt;
[[File:FlagTut1.png|thumb|thumb|745x745px|center]]&lt;br /&gt;
You will notice that it is a slippery floor, just like in the Robotics Facility mission. &lt;br /&gt;
&lt;br /&gt;
This is done with the Sector Editor&#039;s flag settings. Go ahead and open up &#039;&#039;&#039;Flag 1&#039;&#039;&#039; section for this sector.&lt;br /&gt;
[[File:FlagTut2.png|thumb|thumb|751x751px|center]]&lt;br /&gt;
Notice that &#039;&#039;&#039;Flag 16&#039;&#039;&#039; is turned on. This makes the sector an ice sector and this is why you slide when you walk on it. &lt;br /&gt;
&lt;br /&gt;
==== Secrets ====&lt;br /&gt;
Now lets look at the sector to the left of it. You will notice it is &#039;&#039;&#039;purple&#039;&#039;&#039; (when not selected) on the mission. It means it is a &#039;&#039;&#039;Secret&#039;&#039;&#039; sector. &lt;br /&gt;
[[File:FlagTut3.png|thumb|thumb|747x747px|center]]&lt;br /&gt;
When you enter this sector the game will set your secrets value to &#039;&#039;&#039;100%&#039;&#039;&#039; in the PDA menu.&lt;br /&gt;
[[File:FlagTut4.png|thumb|thumb|748x748px|center]]&lt;br /&gt;
&lt;br /&gt;
==== Floor Damage ====&lt;br /&gt;
Now enter the room to the left with the force field floor texture. &lt;br /&gt;
[[File:FlagTut5.png|thumb|thumb|719x719px|center]]&lt;br /&gt;
You will take damage in this room. You can use the health packs to get it back to 100.&lt;br /&gt;
[[File:FlagTut6.png|thumb|thumb|703x703px|center]]&lt;br /&gt;
You will see that in the sector editor it is using flag 2048 &#039;&#039;&#039;Low Damage&#039;&#039;&#039; . This is why you take damage when you fall into the Research Facility irradiated water.&lt;br /&gt;
&lt;br /&gt;
==== Wall Reflections ====&lt;br /&gt;
The room to the left has white walls.  Try shooting them and you will see that the shots bounce off just like in Detention Center.&lt;br /&gt;
[[File:FlagTut7.png|thumb|thumb|754x754px|center]]&lt;br /&gt;
This is done with the sector editor&#039;s flag 4 &amp;quot;&#039;&#039;&#039;Shot Reflection&#039;&#039;&#039;&amp;quot; &lt;br /&gt;
[[File:FlagTut8.png|thumb|thumb|754x754px|center]]&lt;br /&gt;
Note that this is a &#039;&#039;&#039;Sector Editor&#039;&#039;&#039; flag, not a &#039;&#039;&#039;Wall Editor&#039;&#039;&#039; flag. If you want walls to reflect, it has to be done for the entire sector.&lt;br /&gt;
&lt;br /&gt;
=== Wall Flags ===&lt;br /&gt;
Now lets take a look at wall flag settings. &lt;br /&gt;
&lt;br /&gt;
Go to the room with the forcefield texture at the end.&lt;br /&gt;
[[File:FlagTut9.png|thumb|thumb|692x692px|center]]&lt;br /&gt;
When you touch this wall you will take damage. &lt;br /&gt;
[[File:FlagTut10.png|thumb|thumb|694x694px|center]]&lt;br /&gt;
It&#039;s done with the Wall Flag editor 8192 &#039;&#039;&#039;&amp;quot;Wall Damages Player&amp;quot;&#039;&#039;&#039; . &lt;br /&gt;
&lt;br /&gt;
==== Adjoin Flags ====&lt;br /&gt;
On the left you will see a room with a stormtrooper. &lt;br /&gt;
[[File:FlagTut11.png|thumb|thumb|696x696px|center]]&lt;br /&gt;
Notice that he keeps shooting you but cannot since his shots don&#039;t go through the wall. Your shots as well are blocked. He also cannot exit the room he is stuck in. This is by modifying the adjoin flags - &#039;&#039;&#039;Flag 3&#039;&#039;&#039; section instead of &#039;&#039;&#039;Flag 1&#039;&#039;&#039;  that deal with wall properties. &lt;br /&gt;
[[File:FlagTut12.png|thumb|thumb|698x698px|center]]&lt;br /&gt;
This time both flags 4 (&#039;&#039;&#039;Fence&#039;&#039;&#039;)  and 8 (&#039;&#039;&#039;Cannot Fire Through Wall)&#039;&#039;&#039; are turned on.  They are added to 12 and are set as the value for &#039;&#039;&#039;Flag 3.&#039;&#039;&#039;  &lt;br /&gt;
&lt;br /&gt;
This next concept is &#039;&#039;&#039;important -&#039;&#039;&#039; pay attention! &lt;br /&gt;
&lt;br /&gt;
The room with the stormtrooper connects to the central sector as &#039;&#039;&#039;Wall 0&#039;&#039;&#039; and the big sector above connects to the stormtrooper with &#039;&#039;&#039;Wall&#039;&#039;&#039; &#039;&#039;&#039;18.&#039;&#039;&#039;  &lt;br /&gt;
[[File:FlagTut14.png|thumb|thumb|438x438px|center]]&lt;br /&gt;
If we select the stormtrooper room &#039;&#039;&#039;Wall&#039;&#039;&#039; &#039;&#039;&#039;0&#039;&#039;&#039; (you can tell by the orientation of the normal line pointing down) you can see that the Fence (4) lock is enabled. &lt;br /&gt;
&lt;br /&gt;
When you select &#039;&#039;&#039;Wall 18&#039;&#039;&#039; you will see that the &#039;&#039;&#039;Fence&#039;&#039;&#039; flag is not enabled - only cannot fire. &lt;br /&gt;
[[File:FlagTut15.png|thumb|thumb|746x746px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So what is happening? The stormtrooper is affected first by the adjoined &#039;&#039;&#039;Wall 0&#039;&#039;&#039; facing him. He won&#039;t get affected by the wall (&#039;&#039;&#039;Wall 18)&#039;&#039;&#039; from the central sector unless he tries to re-enter his room. That is why the &#039;&#039;&#039;Fence&#039;&#039;&#039; (&#039;&#039;&#039;Flag 4)&#039;&#039;&#039; is on the inner side of the room. If you remove that flag and put it on &#039;&#039;&#039;Wall 18&#039;&#039;&#039; he will be able to leave (but not able to re-enter). &lt;br /&gt;
&lt;br /&gt;
The point is to always consider the adjoined wall facing the objects in the sector. Because this is the wall that will affect the object. Because the flag &amp;quot;&#039;&#039;&#039;Cannot Walk Through Wall&amp;quot;&#039;&#039;&#039; (2) is not enabled you can traverse the adjoin at will. You will be able to enter the sector and shoot the stormtrooper and then leave. &lt;br /&gt;
&lt;br /&gt;
==== Transparency Adjoins ====&lt;br /&gt;
Go to the room next to it with the crate textures. Have you ever wondered how the holes in crates are done? &lt;br /&gt;
[[File:FlagTut16.png|thumb|thumb|687x687px|center]]&lt;br /&gt;
If you look at the Wall settings you will notice that &#039;&#039;&#039;Adjoining Mid Tx&#039;&#039;&#039; is turned on (Flag 1). This tells Dark Forces to display the texture even if it is adjoined.&lt;br /&gt;
[[File:FlagTut18.png|thumb|thumb|448x448px|center]]&lt;br /&gt;
How do you tell a texture which colors it should show and which it should not? This is done with a concept called &#039;&#039;&#039;Alpha&#039;&#039;&#039; where you choose a single color (Ex: &#039;&#039;&#039;Black&#039;&#039;&#039; ) and make that color transparent. &lt;br /&gt;
&lt;br /&gt;
If you double click on the Mid Texture of the wall (&#039;&#039;&#039;IDMGDCRT.BM)&#039;&#039;&#039; and open the Texture Resource Editor you see that there is a large black hole in the middle. &lt;br /&gt;
[[File:FlagTut19.png|thumb|thumb|704x704px|center]]&lt;br /&gt;
The flag for the texture is as &#039;&#039;&#039;Transparent&#039;&#039;&#039; and that by default, the &#039;&#039;&#039;Black&#039;&#039;&#039;  pixels are transparent. If you choose a different non-transparent solid texture (ex: &#039;&#039;&#039;IPRMCRT1.BM&#039;&#039;&#039; )  you will be able to &#039;&#039;&#039;walk through the wall.&#039;&#039;&#039; &lt;br /&gt;
[[File:FlagTut20.png|thumb|thumb|601x601px|center]]&lt;br /&gt;
&lt;br /&gt;
==== Adjoin Blocks ====&lt;br /&gt;
Finally, the last room to the left of the crates is unique. You will notice you cannot enter it.&lt;br /&gt;
[[File:FlagTut21.png|thumb|thumb|630x630px|center]]&lt;br /&gt;
This is because the &#039;&#039;&#039;Flag 3&#039;&#039;&#039;  section is set as &#039;&#039;&#039;Cannot Walk Through Wall&#039;&#039;&#039; (2).&lt;br /&gt;
[[File:FlagTut22.png|thumb|thumb|520x520px|center]]&lt;br /&gt;
You can use this feature to put up invisible walls so the player accidentally does not fall off a cliff for example.&lt;br /&gt;
&lt;br /&gt;
You may also notice that the wall at the bottom is &#039;&#039;&#039;not visible&#039;&#039;&#039; on the map when you play. &lt;br /&gt;
[[File:NoVisibleWall.png|thumb|thumb|795x795px|center]]&lt;br /&gt;
That&#039;s because the wall flag at the bottom is set to &#039;&#039;&#039;Hide On Map.&#039;&#039;&#039; This is useful for secrets or when you want to hide sectors with logic (more on that later). &lt;br /&gt;
[[File:FlagHideWall.png|thumb|thumb|686x686px|center]]&lt;br /&gt;
&lt;br /&gt;
Now you have a better concept of Sector and Wall flags. Remember &#039;&#039;&#039;- you can combine flags&#039;&#039;&#039; - to create different effects. &lt;br /&gt;
&lt;br /&gt;
Feel free to experiment and then lets jump to the [[WDFUSE Tutorial - Objects|&#039;&#039;&#039;Object&#039;&#039;&#039;]] tutorial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WDFUSE Tutorials&#039;&#039;&#039;&lt;br /&gt;
#[[WDFUSE Tutorial - Introduction|Introduction]]&lt;br /&gt;
# [[WDFUSE Tutorial - Configuration]]&lt;br /&gt;
#[[WDFUSE Tutorial - Basic Geometry]]&lt;br /&gt;
#[[WDFUSE Tutorial - Basic Geometry II]] &lt;br /&gt;
#[[WDFUSE Tutorial - 3D Renderer]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry II]]&lt;br /&gt;
#[[WDFUSE Tutorial - Advanced Geometry III]]&lt;br /&gt;
#[[WDFUSE Tutorial - Objects]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting II]]&lt;br /&gt;
#[[WDFUSE Tutorial - Scripting III]]&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Dark_Forces_Wiki&amp;diff=1543</id>
		<title>Dark Forces Wiki</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Dark_Forces_Wiki&amp;diff=1543"/>
		<updated>2025-06-16T13:37:07Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Dark Forces Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; font-size: x-large; padding: 1em;&amp;quot;&amp;gt;[[File:WikiLogo.png|center|frameless|561x561px]]&#039;&#039;&#039;Welcome to the {{SITENAME}}!&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This community is dedicated to the 1995 game &#039;&#039;Star Wars: Dark Forces&#039;&#039; with an emphasis on modding and map making .  &lt;br /&gt;
&lt;br /&gt;
If you would like to contribute please create an account and help expand this wiki. &lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Editors ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;[[WDFUSE]]&#039;&#039;&#039; - (&#039;&#039;&#039;The original Dark Forces Editor)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;[[TFE-EDITOR]]&#039;&#039;&#039; - &#039;&#039;&#039;(The Force Engine Editor)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;[https://df-21.net/downloads/utilities.php CYBERDARK] - (Obsolete)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How To Guides ===&lt;br /&gt;
* [https://df-21.net/wiki/?title=DF-21_Mission_Components Submitting DF-21 Missions]&lt;br /&gt;
* [https://df-21.net/wiki/?title=Converting_Classic_Maps Converting Old DF-21 Missions]&lt;br /&gt;
* [https://df-21.net/wiki/?title=How_To:_Good_MIDI How to get good sounding MIDI in Dark Forces]&lt;br /&gt;
* [https://df-21.net/wiki/?title=WAX_File_Generator How to generate an Enemy WAX file with Blender]]&lt;br /&gt;
* [https://df-21.net/wiki/?title=Blender_3DO_Guide How to create a 3DO file with Blender]]&lt;br /&gt;
* [[Level creation tips]]&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Reference ===&lt;br /&gt;
* [[Dark Forces Unofficial Specifications]]&lt;br /&gt;
* [[Dark Forces Remaster Unofficial Specs]]&lt;br /&gt;
* [[Teleporter Basic]]&lt;br /&gt;
* [[VUE Camera transforms]]&lt;br /&gt;
* [[Logics and AI reference]]&lt;br /&gt;
* [[Weapons reference]]&lt;br /&gt;
&lt;br /&gt;
=== The Force Engine Reference ===&lt;br /&gt;
* [[TFE_Mod_Overrides|Mod Overrides with MOD_CONF]]&lt;br /&gt;
* [[TFE Custom Logics]]&lt;br /&gt;
* [[TFE Projectile Data]]&lt;br /&gt;
* [[TFE Pickup Data]]&lt;br /&gt;
* [[TFE Weapon Data]]&lt;br /&gt;
&lt;br /&gt;
==== TFE Scripting ====&lt;br /&gt;
* [[TFE Level Script]]&lt;br /&gt;
* [[Math Script API]]&lt;br /&gt;
* [[System Script API]]&lt;br /&gt;
* [[Level Script API]]&lt;br /&gt;
* [[Game Script API]]&lt;br /&gt;
* [[Player Script API]]&lt;br /&gt;
&lt;br /&gt;
* [[Script Sector]]&lt;br /&gt;
* [[Script Wall]]&lt;br /&gt;
* [[Script Object]]&lt;br /&gt;
* [[Script Texture]]&lt;br /&gt;
* [[Script Elevator]]&lt;br /&gt;
&lt;br /&gt;
=== Vault ===&lt;br /&gt;
* [[:Category:Demo Assets|Assets included with the Dark Forces demo]]&lt;br /&gt;
&lt;br /&gt;
 [[Category:{{SITENAME}}]]&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1449</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1449"/>
		<updated>2024-12-08T22:32:03Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;youtube&amp;gt;qqPXz9iDfPk&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1448</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1448"/>
		<updated>2024-12-08T22:31:32Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;youtube&amp;gt;qqPXz9iDfPk&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nowiki&amp;amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;CCz1kmfqL7g&amp;lt;/youtube&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;amp;lt;/nowiki&amp;amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1446</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1446"/>
		<updated>2024-12-08T22:30:13Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;qqPXz9iDfPk&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;nowiki&amp;amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;CCz1kmfqL7g&amp;lt;/youtube&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;amp;lt;/nowiki&amp;amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1445</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1445"/>
		<updated>2024-12-08T22:29:58Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;qqPXz9iDfPk&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;amp;lt;nowiki&amp;amp;gt;&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;CCz1kmfqL7g&amp;lt;/youtube&amp;gt;&amp;gt;&amp;amp;lt;/nowiki&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1442</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1442"/>
		<updated>2024-12-08T22:18:52Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;qqPXz9iDfPk&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;CCz1kmfqL7g&amp;lt;/youtube&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1441</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1441"/>
		<updated>2024-12-08T22:09:45Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;qqPXz9iDfPk&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1440</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1440"/>
		<updated>2024-12-08T22:08:47Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;[https://www.youtube.com/watch?v=qqPXz9iDfPk qqPXz9iDfPk]&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1439</id>
		<title>Testpage</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Testpage&amp;diff=1439"/>
		<updated>2024-12-08T21:59:27Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;‎&amp;lt;&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;https://www.youtube.com/watch?v=qqPXz9iDfPk&amp;lt;/&#039;&#039;&#039;youtube&#039;&#039;&#039;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1422</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1422"/>
		<updated>2024-12-01T16:02:06Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:ModConfImageTrue.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== TFE Setting Overrides ====&lt;br /&gt;
Inside the TFE overrides section you can add your own custom setting overrides. For example, if you want to disable fight music  you can do so by either going into the Game Settings and check the values you want enabled  or disabled. Or you can do it by updating the MOD_CONF.txt file by adding your own overrides. For example, if you want to disable fight music in your mod with overrides, add the key &#039;&#039;&#039;&amp;quot;disableFightMusic&amp;quot;&#039;&#039;&#039; and set the value to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;. &lt;br /&gt;
 &amp;quot;disableFightMusic&amp;quot; : true &lt;br /&gt;
And if you want to always run you can add a new TFE Override &#039;&#039;&#039;autorun&#039;&#039;&#039; and set it to true.&lt;br /&gt;
 &amp;quot;autorun&amp;quot; : true&lt;br /&gt;
Below is an example of how the setting options look like in the user interface. You can get to these by going into the Settings section of The Force Engine and clicking on &amp;quot;Game Settings&amp;quot;. &lt;br /&gt;
[[File:Override Settings.png|center|thumb|677x677px]]&lt;br /&gt;
You can replicate the above using the mod_conf TFE overrides. A full example of the above picture is shown below. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
        &amp;quot;disableFightMusic&amp;quot; : true,&lt;br /&gt;
        &amp;quot;enableAutoaim&amp;quot; : true,&lt;br /&gt;
        &amp;quot;showSecretFoundMsg&amp;quot; : true,&lt;br /&gt;
        &amp;quot;bobaFettFacePlayer&amp;quot; :  true,&lt;br /&gt;
        &amp;quot;ignoreInfLimit&amp;quot; : true,&lt;br /&gt;
        &amp;quot;solidWallFlagFix&amp;quot; : true,&lt;br /&gt;
        &amp;quot;enableUnusedItem&amp;quot; :  true,&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Here is the full description of the override settings.&lt;br /&gt;
 disableFightMusic  - Turns off the fight music in your mod&lt;br /&gt;
 enableAutoaim      - Turns the autoaiming on or off. &lt;br /&gt;
 showSecretFoundMsg - Allows you to toggle the secret found message added to TFE. &lt;br /&gt;
 autorun            - Toggles the autorun option. &lt;br /&gt;
 crouchToggle       - Changes how crouch behaves. You can press it once to toggle crouching instead of holding a button.&lt;br /&gt;
 bobaFettFacePlayer - A fix to make Boba Fett face the player. &lt;br /&gt;
 smoothVUEs         - Makes VUE transitions smoother by normalizing the fractional frame indexes. &lt;br /&gt;
 ignoreInfLimit     - Removes the limit of INF scripts. &lt;br /&gt;
 stepSecondAlt      - Allows you to automatically step on to Second Altitude sectors.&lt;br /&gt;
 solidWallFlagFix   - Solid wall flag is enforced for collision with moving walls&lt;br /&gt;
 enableUnusedItem   - Enables the unused item in the inventory (delt 10).&lt;br /&gt;
Simply apply them as you see fit for your mod. This section will expand as more overrides become available. &lt;br /&gt;
&lt;br /&gt;
And now we will talk about a special TFE override setting called &#039;&#039;&#039;levelOverrrides&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Level Overrides ====&lt;br /&gt;
Inside the TFE overrides section there is also an &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be a configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
===== Structure of a Level Override Section =====&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
====== SECBASE.LEV ======&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
====== TALAY.LEV ======&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &#039;&#039;&#039;true&#039;&#039;&#039; item will be added. When set to &#039;&#039;&#039;false&#039;&#039;&#039; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;f&#039;&#039;&#039;alse. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the one below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
==== HD override details ====&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:Override_Settings.png&amp;diff=1421</id>
		<title>File:Override Settings.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:Override_Settings.png&amp;diff=1421"/>
		<updated>2024-12-01T15:36:48Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Settings overrides&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=DF-21_Mission_Components&amp;diff=1399</id>
		<title>DF-21 Mission Components</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=DF-21_Mission_Components&amp;diff=1399"/>
		<updated>2024-11-15T14:05:31Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* 1. Creating the new zip */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations! You&#039;ve made a custom mission and now you want to upload it to DF-21.net and so it is available like the [https://df-21.net/downloads/levels/ats2lp/ Lava Planet] mission.    &lt;br /&gt;
[[File:LavaPlanet.png|center|thumb|1016x1016px]]&lt;br /&gt;
The missions that are stored on DF-21 must follow standard formats so they can easily be loaded by various game engines such as DOS, Dark Forces Remaster and The Force Engine. Here we will go in detail over each component. These are &#039;&#039;&#039;required&#039;&#039;&#039; to be displayed on the DF-21 website.   &lt;br /&gt;
&lt;br /&gt;
As we discuss the mission components we will use the custom mission &#039;&#039;&#039;Anchor Hed&#039;&#039;&#039; as an example. You can download it [https://df-21.net/downloads/missions.php?viewid=48824574 Here] - the filename is &#039;&#039;&#039;anchor2.zip&#039;&#039;&#039;.      &lt;br /&gt;
&lt;br /&gt;
====== &#039;&#039;&#039;Important!!!&#039;&#039;&#039; ======&lt;br /&gt;
Make sure you fully test your mission!!&lt;br /&gt;
&lt;br /&gt;
* Ensure the missions can be completed without cheats&lt;br /&gt;
* Make sure it can be completed on &#039;&#039;&#039;every&#039;&#039;&#039;  difficulty&lt;br /&gt;
* Have other players (Someone in the DF-21&#039;s [https://discord.gg/6T9NvMh2MC Discord] ) test to ensure the logic makes sense or upload a video walkthrough on YouTube. &lt;br /&gt;
* Check for accessibility - flashing lights and some scrolling textures may cause headaches and nausea.&lt;br /&gt;
&lt;br /&gt;
=== What must a modern map support include? ===&lt;br /&gt;
# It must support running in &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; and preferably &#039;&#039;&#039;&#039;&#039;Dark Forces Remaster&#039;&#039;. DOS&#039;&#039;&#039; support is preferable but optional.&lt;br /&gt;
# The mission may have bugs but it &#039;&#039;&#039;must be completable&#039;&#039;&#039;  &#039;&#039;&#039;-&#039;&#039;&#039; that is - it must have objectives that can result in a &#039;&#039;&#039;Mission Complete&#039;&#039;&#039; message.&lt;br /&gt;
# It must have a single entry point - a &#039;&#039;&#039;&amp;lt;missionname&amp;gt;.bat&#039;&#039;&#039; file - that a user or a mod loader would execute. &#039;&#039;&#039;This is not required for &#039;&#039;TFE&#039;&#039; support.&#039;&#039;&#039;&lt;br /&gt;
# It must have a &#039;&#039;&#039;metadata.txt&#039;&#039;&#039; file that includes information such as the author, name of the mission, release date, version information as well as optional walkthroughs or reviews.&lt;br /&gt;
# For DOS and &#039;&#039;Remaster&#039;&#039; support it should attempt to clean up any stale LFD files (Such as &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039;) so as not to pollute the directory.&lt;br /&gt;
# It should support multiple game stores such as STEAM and GOG.&lt;br /&gt;
# It should have a mission briefing as well as objectives.&lt;br /&gt;
# It should include a few screenshots that show off the mission.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Mission Zip Structure&#039;&#039;&#039; ===&lt;br /&gt;
All Dark Forces missions should be in a &#039;&#039;&#039;zip&#039;&#039;&#039; file format (not a rar!). They need to have four components. &lt;br /&gt;
&lt;br /&gt;
# The &#039;&#039;&#039;GOB&#039;&#039;&#039; that is the mission file itself&lt;br /&gt;
# The &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; that contains the briefing information as well as mission objectives&lt;br /&gt;
# The batch file that should start the mission.&lt;br /&gt;
# The &#039;&#039;&#039;README.TXT&#039;&#039;&#039; file (or any .TXT file that explains mission instructions).&lt;br /&gt;
&lt;br /&gt;
Lets look at the &#039;&#039;&#039;anchor2.zip&#039;&#039;&#039; example. &lt;br /&gt;
&lt;br /&gt;
It includes three files. The  &#039;&#039;&#039;anchor.bat , ANCHOR.TXT&#039;&#039;&#039; as well as &#039;&#039;&#039;ANCHOR.GOB.&#039;&#039;&#039; The GOB is the mission itself and what we will need to modernize. You will notice it is missing the &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; file&#039;&#039;&#039;,&#039;&#039;&#039; we will have to create it ourselves.&lt;br /&gt;
&lt;br /&gt;
==== 1. Ensure the map is completable ====&lt;br /&gt;
When you submit a mission to DF-21.net the first thing you need to do is make sure the mission can be finished with modern engines. Go ahead and play it using &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; or &#039;&#039;&#039;&#039;&#039;Dark Forces: Remaster&#039;&#039;.&#039;&#039;&#039; Your goal is to ensure you get to the &#039;&#039;Mission Completed&#039;&#039; message.  &lt;br /&gt;
&lt;br /&gt;
To test using the &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; simply put the &#039;&#039;&#039;anchor2.zip&#039;&#039;&#039; &#039;&#039;(it must be in a zip!)&#039;&#039;  and select it from the MOD menu. Play through it and ensure you get Mission Completed message. If the mission has critical bugs, you (or someone else) will need to fix them using [https://df-21.net/wiki/?title=WDFUSE WDFUSE]  or another editor which is out of scope for this guide.  &lt;br /&gt;
[[File:Anchor 2 TFE .png|center|thumb|926x926px]]&lt;br /&gt;
If you are testing using &#039;&#039;&#039;&#039;&#039;Dark Forces:&#039;&#039;&#039; &#039;&#039;&#039;Remaster&#039;&#039;&#039;&#039;&#039; make a &#039;&#039;&#039;copy&#039;&#039;&#039; the &#039;&#039;&#039;khnosu_shipping_&amp;lt;store_name&amp;gt;_x64&#039;&#039;&#039; executable in your Steam or GOG directory to &#039;&#039;&#039;dark.exe.&#039;&#039;&#039; You can use CTRL-C and CTRL-V on your executable to make a copy and then you can rename it to &#039;&#039;&#039;dark.exe.&#039;&#039;&#039; When done, it should look like this folder.   &lt;br /&gt;
[[File:Darkexe.png|center|thumb|617x617px]]&lt;br /&gt;
&lt;br /&gt;
==== 2. Simple Batch File Creation ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lets create a basic batch file (using Notepad for example) and call it &#039;&#039;&#039;anchor.bat&#039;&#039;&#039;. Put this text inside the batch file, it will autolaunch the mission. &lt;br /&gt;
 dark -uanchor.gob&lt;br /&gt;
The &#039;&#039;&#039;-u&#039;&#039;&#039; parameter tells Dark Forces to use a custom a mission. In this case it will launch &#039;&#039;&#039;anchor.gob&#039;&#039;&#039;. For other missions you just replace anchor.gob with the GOB you are working with such as &#039;&#039;&#039;bobafett.gob&#039;&#039;&#039; or &#039;&#039;&#039;academy.gob&#039;&#039;&#039; etc... .  &lt;br /&gt;
&lt;br /&gt;
In the example of &#039;&#039;&#039;anchor2.zip&#039;&#039;&#039; we already have a file called anchor2.bat that runs the GOB through Dark Forces. All we need to do is &#039;&#039;&#039;rename&#039;&#039;&#039; it to the standard name &#039;&#039;&#039;anchor.bat.&#039;&#039;&#039; It should look like this after you rename it. Be sure to put the file in your Star Wars folder where &#039;&#039;&#039;dark.exe&#039;&#039;&#039; is located.   &lt;br /&gt;
&lt;br /&gt;
[[File:Anchorbat.png|left|thumb]]&lt;br /&gt;
[[File:Batchfile location.png|frameless|575x575px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To run the mission just double click on &#039;&#039;&#039;anchor.bat&#039;&#039;&#039; and the &#039;&#039;&#039;&#039;&#039;Remaster&#039;&#039;&#039;&#039;&#039; (now named as &#039;&#039;&#039;dark.exe&#039;&#039;&#039;) will start the mission. Be sure you can complete it!&lt;br /&gt;
&lt;br /&gt;
=== Briefing File ===&lt;br /&gt;
Each modernized mission must have a briefing and objectives. This data is stored in a file called &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; and must be present in the zip to be loaded by &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; or simply extracted to be visible by the &#039;&#039;&#039;&#039;&#039;Remaster&#039;&#039;&#039;&#039;&#039;. Some missions already have this file so you can skip this step. However, many missions do not so this guide will talk about creating a DFBRIEF file from scratch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note:&#039;&#039;&#039; This guide assumes there is only ONE mission in the GOB file (which is the vast majority of missions) . If there are multiple missions, then you will need to create objectives and briefing file for &#039;&#039;&#039;each mission!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== 1. Figuring out briefing details and objectives ====&lt;br /&gt;
&lt;br /&gt;
To populate the briefing file you need to give it a description of the mission and some objectives. Typically, you can get this from the readme file that comes with the mission. If you do not have this file, you will need to come up with a few sentences that explain what needs to be done. Here is an example from ANCHOR.TXT &lt;br /&gt;
 ================================================================&lt;br /&gt;
 Title                   : Anchor Hed: Tusken Raid mini level v2.0&lt;br /&gt;
 Filename                : anchor.ZIP&lt;br /&gt;
 Author                  : Barry Brien&lt;br /&gt;
 Email Address           : harachi@oceanfree.net&lt;br /&gt;
 Misc. Author Info       :&lt;br /&gt;
 Description             : You are Luke Skywalker, farm boy on Tatooine. You  have just received a distress call from your&lt;br /&gt;
   friend Windy, who is trapped in the village of Anchor Hed during a particularly bad Tusken raid.&lt;br /&gt;
   You rush to aid your friend in you T-16 Skyhopper, landing just outside the village gate, you&lt;br /&gt;
   are completely unarmed&lt;br /&gt;
 			  OBJECTIVES:&lt;br /&gt;
 		          Find Windy (Make sure not to kill him!)&lt;br /&gt;
 			  Get back to your ship&lt;br /&gt;
&lt;br /&gt;
Here the author graciously provided us the information we need to create the DFBRIEF ourselves. &lt;br /&gt;
&lt;br /&gt;
===== ReadMe Template =====&lt;br /&gt;
If you want to create you own ReadMe file we have a template you can download [https://df-21.net/downloads/conf_files/GOB_AUTH.txt Here] .  &lt;br /&gt;
&lt;br /&gt;
The example is also listed below. Please fill it out as best as you can and leave the rest blank.  &lt;br /&gt;
 ================================================================&lt;br /&gt;
 Title                   :    &lt;br /&gt;
 Filename                : xxxx.GOB&lt;br /&gt;
 Author                  : Your name here&lt;br /&gt;
 Email Address           :&lt;br /&gt;
 Discord Contact         :&lt;br /&gt;
 Other Contacts          :&lt;br /&gt;
 Misc. Author Info       : &lt;br /&gt;
 Game Compatibility      : DOS/Remaster/The Force Engine&lt;br /&gt;
 Additional Credits to   : Who helped you make this mod? Did you use custom assets like WAX or BMs? &lt;br /&gt;
                           List the asset and the authors here. &lt;br /&gt;
 Description             : Set the mood here.&lt;br /&gt;
 &lt;br /&gt;
 ================================================================&lt;br /&gt;
 &lt;br /&gt;
 * Play Information *&lt;br /&gt;
 &lt;br /&gt;
 Level(s) replaced       : levelname1(,levelname2,...)&lt;br /&gt;
 Difficulty Settings     : Yes/Not implemented&lt;br /&gt;
 New BMs                 : Yes/No&lt;br /&gt;
 New FMEs                : Yes/No&lt;br /&gt;
 New WAXs                : Yes/No&lt;br /&gt;
 New 3DOs                : Yes/No&lt;br /&gt;
 New VOCs                : Yes/No&lt;br /&gt;
 New GMDs                : Yes/No&lt;br /&gt;
 New VUEs                : Yes/No&lt;br /&gt;
 &lt;br /&gt;
 * Construction *&lt;br /&gt;
 &lt;br /&gt;
 Base                    : New level from scratch/Modified levelname&lt;br /&gt;
 Editor(s) used          : &lt;br /&gt;
 Known Bugs              : &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 * Copyright / Permissions *&lt;br /&gt;
 &lt;br /&gt;
 Authors (MAY/may NOT) use this level as a base to build additional&lt;br /&gt;
 levels.  &lt;br /&gt;
 &lt;br /&gt;
 (One of the following)&lt;br /&gt;
 &lt;br /&gt;
 You MAY distribute this GOB, provided you include this file, with&lt;br /&gt;
 no modifications.  You may distribute this file in any electronic&lt;br /&gt;
 format (BBS, Diskette, CD, etc) as long as you include this file &lt;br /&gt;
 intact.&lt;br /&gt;
 &lt;br /&gt;
 You MAY not distribute this GOB file in any format.&lt;br /&gt;
 &lt;br /&gt;
 You may do whatever you want with this file.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 * Where to get this GOB *&lt;br /&gt;
 &lt;br /&gt;
 Websites:&lt;br /&gt;
 &lt;br /&gt;
 Other:&lt;br /&gt;
&lt;br /&gt;
==== 2. Mapping briefing file to the mission ====&lt;br /&gt;
Dark Forces has 14 missions with names like &#039;&#039;&#039;SECBASE&#039;&#039;&#039;, &#039;&#039;&#039;TALAY&#039;&#039;&#039; or &#039;&#039;&#039;IMPCITY&#039;&#039;&#039;. We need to know which of the missions is being replaced and needs to have a briefing file. To do that we have to open the GOB file and look at the contents. There are many tools we can use but the easiest one is called CONMAN which you can download [https://df-21.net/downloads/utilities.php Here]  . Simply download and unzip the CONMAN program and then open the GOB file (in our case &#039;&#039;&#039;ANCHOR.GOB&#039;&#039;&#039;) . Here is what it looks like. &lt;br /&gt;
&lt;br /&gt;
[[File:Anchorgob.png|center|thumb|801x801px]]&lt;br /&gt;
As you see, there are many files here but the one we need is called &#039;&#039;&#039;JEDI.LVL .&#039;&#039;&#039; If you extract it - by either CTRL-C / CTRL-V the file into a folder or choosing &#039;&#039;&#039;File --&amp;gt; Extract Files&#039;&#039;&#039; option , then you can open it in &#039;&#039;&#039;notepad&#039;&#039;&#039; (or any other text editor) and see which original mission is being replaced. In our case, the mission being replaced is &#039;&#039;&#039;JABSHIP&#039;&#039;&#039; so this is what we will need to create a mission briefing for.&lt;br /&gt;
 LEVELS 1&lt;br /&gt;
 Anchor Hed,        JABSHIP&lt;br /&gt;
 //      (Comments must be at the end of this file)&lt;br /&gt;
 //      This file contains the list of all the levels in Jedi,&lt;br /&gt;
 //      and the DOS names for those levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now that we have information on the mission being replaced and the description and objectives we should be ready to create a DFBRIEF.LFD file.&lt;br /&gt;
&lt;br /&gt;
The full list of the 14 mission names that can be replaced is below. Look for them in the GOB container. &lt;br /&gt;
 1.  SECBASE &lt;br /&gt;
 2.  TALAY&lt;br /&gt;
 3.  SEWERS&lt;br /&gt;
 4.  TESTBASE&lt;br /&gt;
 5.  GROMAS&lt;br /&gt;
 6.  DTENTION&lt;br /&gt;
 7.  RAMSHED&lt;br /&gt;
 8.  ROBOTICS&lt;br /&gt;
 9.  NARSHADA&lt;br /&gt;
 10. JABSHIP&lt;br /&gt;
 11. IMPCITY&lt;br /&gt;
 12. FUELSTAT&lt;br /&gt;
 13. EXECUTOR&lt;br /&gt;
 14. ARC&lt;br /&gt;
&lt;br /&gt;
==== 3. Creating a new DFBRIEF.LFD file ====&lt;br /&gt;
LFD files can also be opened with the CONMAN tool you used to open up the GOB in the previous step. Our goal is to create the Mission Briefing and the PDA objectives.  If you open &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; with conman you will see the contents of the file.  &lt;br /&gt;
 [[File:Dfbriefcontents.png|center|thumb|545x545px]]&lt;br /&gt;
&lt;br /&gt;
In our case they are stored in the &#039;&#039;&#039;JABSHIP.ANIM&#039;&#039;&#039; and the  &#039;&#039;&#039;JABSHIP.DELT&#039;&#039;&#039; files. Specifically, the ANIM file contains the mission objective overlays (Ex: Blue and Yellow color overlays) and the DELT file contains the mission briefing itself. These are the files that we must update.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this is a highly complicated process that requires you to ensure you have pixel-perfect images all stored in proper formats. Because the learning curve is steep, we&#039;ve created an automated briefing generator at DF-21 which generates you the entire &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; file in seconds.! All you need to do is fill in the objective and mission description information!  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start by going to the briefing generator page [https://df-21.net/briefing/ here]  On this page you need to fill out the briefing information such as the mission name, the background and mission details and, finally, the objectives themselves. Be sure to select JABSHIP as the level you are placing (or the DFBRIEF.LFD won&#039;t work in game). It should look like this. &lt;br /&gt;
[[File:Briefingpage.png|center|thumb|1048x1048px]]&lt;br /&gt;
When you are done - press &#039;&#039;&#039;&amp;quot;Create DFBRIEF.LFD&amp;quot;&#039;&#039;&#039; button and in seconds you will download the finished file. To quickly validate the LFD file with &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; simply place it inside &#039;&#039;anchor2.zip&#039;&#039; and run the mission from the Mod menu. Otherwise, for the &#039;&#039;&#039;&#039;&#039;Remaster&#039;&#039;&#039;&#039;&#039;, copy &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; to the same folder as the d&#039;&#039;&#039;ark.exe&#039;&#039;&#039; executable. Now you can test your briefing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the mission starts you should see the new briefing file! This was automatically generated with the text you put in it on the website!  &lt;br /&gt;
[[File:Anchorbriefing.png|center|thumb|898x898px]]&lt;br /&gt;
Additionally, if you click on the PDA objectives you will see them created as well. &lt;br /&gt;
[[File:Anchorobjs.png|center|thumb|794x794px]]&lt;br /&gt;
If you are having issues seeing your new briefing it is most likely due to you choosing the wrong level to replace on the webpage (as shown in the &#039;&#039;&#039;JEDI.LVL&#039;&#039;&#039; file) or the game cannot find the &#039;&#039;&#039;DFBRIEF.LFD&#039;&#039;&#039; file (maybe you&#039;ve made a typo?). Ask in the DF-21&#039;s [https://discord.gg/6T9NvMh2MC discord] if you are stuck!  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; for multiple missions. If you have multiple missions then you need to create the ANIM and DELT files &#039;&#039;&#039;&#039;&#039;for each mission&#039;&#039;&#039;&#039;&#039; to replace. You can use the briefing generator yourself to make new DFBRIEF.LFD file and then use CONMAN to copy each of the ANIM/DELT files into a single LFD container.&lt;br /&gt;
&lt;br /&gt;
==== 4. Dealing with Images in the briefing ====&lt;br /&gt;
The briefing and the objectives in game are &#039;&#039;&#039;JUST IMAGES&#039;&#039;&#039; that are stored in a DELT format. Under the hood it is an 8-BIT (256 color) BMP file converted to a DELT file. If you create a new briefing you will be shown a preview of your image. If you click on it, you can download the raw BMP file which you can then edit yourself.  &lt;br /&gt;
[[File:Bmpbrief.png|center|thumb|775x775px]]&lt;br /&gt;
Once you click on the image and download it, you can use any image program, including PAINT to make your changes. Go ahead and do that now. Here we drew a smiley face in the middle of the briefing as a simple example. &lt;br /&gt;
[[File:Anchorpaintexample.png|center|thumb|954x954px]]&lt;br /&gt;
Once you are done, save the file as an 8-BIT BMP file (in the &#039;&#039;&#039;SAVE AS&#039;&#039;&#039; options). In this case we saved it as &#039;&#039;&#039;anchor.bmp.&#039;&#039;&#039; Then to convert it back to DELT format simply go back to the briefing generator page and select the BMP you&#039;ve created and press &#039;&#039;&#039;UPLOAD&#039;&#039;&#039; to create a new DELT file.&lt;br /&gt;
&lt;br /&gt;
[[File:Uploaddelt.png|center|thumb|1003x1003px]]&lt;br /&gt;
The webpage program will convert the BMP to DELT format and you will download a file called &#039;&#039;&#039;converted_&amp;lt;uniqueid&amp;gt;.DELT&#039;&#039;&#039;.  You need to rename it to the mission name, in our case &#039;&#039;&#039;JABSHIP.DELT&#039;&#039;&#039; and put the DELT file (using CONMAN) back into DFBRIEF.LFD to see your changes. Place the updated LFD back into the anchor.zip as you did before and you will be able to see your changes!   &lt;br /&gt;
&lt;br /&gt;
[[File:Smileybriefing.png|center|thumb|998x998px]]&lt;br /&gt;
See - it is pretty easy to do whatever you want with custom briefings! You can easily add custom images of starships or Darth Vader from the movies. Just be cognizant that the original game only supports images up to 198 pixels in length! &lt;br /&gt;
&lt;br /&gt;
=== Batch File Details ===&lt;br /&gt;
We&#039;ve talked [https://df-21.net/wiki/?title=Converting_Classic_Maps#4._Simple_Batch_File_Creation earlier]  about creating a batch file to start the mission. Now let&#039;s look at the details of what the batch file must contain. We need a uniform way to start all the missions. To do that we will create a batch file named &#039;&#039;&#039;anchor.bat&#039;&#039;&#039; ( or generally &#039;&#039;&#039;&amp;lt;missionname&amp;gt;.bat&#039;&#039;&#039; ) that will start our mission automatically.   &lt;br /&gt;
&lt;br /&gt;
We start with this simple code in our batch file and go from there.    &lt;br /&gt;
 dark -u&amp;lt;MISSIONNAME&amp;gt;.GOB&lt;br /&gt;
Great - now we need to ensure that the batch file supports multiple Dark Forces executables! &lt;br /&gt;
&lt;br /&gt;
==== 1. Dark Forces Executable Support ====&lt;br /&gt;
There are multiple versions of Dark Forces out there. Some own Dark Forces through DOS, some have it through &#039;&#039;&#039;&#039;&#039;Night Dive&#039;s Remaster&#039;&#039;&#039;&#039;&#039;. Because of this variety, it is important to support all types of executables. The application name we always expect to have is &#039;&#039;&#039;dark.exe .&#039;&#039;&#039; It is the default name in DOS but is different in Night Dive&#039;s release. For Steam the executable is named &#039;&#039;&#039;&#039;&#039;khonsu_Shipping_Steam_x64.exe&#039;&#039;&#039;&#039;&#039; and for GOG it is called &#039;&#039;&#039;&#039;&#039;khonsu_Shipping_Galaxy_x64.exe.&#039;&#039;&#039;&#039;&#039; We must ensure we have a copy of &#039;&#039;&#039;dark.exe&#039;&#039;&#039; in the folder where the mission GOB is located, so the batch script would be needed to make a copy of the executable if it is missing. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is how we do it in the batch file. &lt;br /&gt;
 @echo off&lt;br /&gt;
 set dark_executable=dark.exe&lt;br /&gt;
 set steam=khonsu_shipping_steam_x64.exe&lt;br /&gt;
 set gog=khonsu_shipping_galaxy_x64.exe&lt;br /&gt;
 &lt;br /&gt;
 if not exist &amp;quot;%dark_executable%&amp;quot; (&lt;br /&gt;
     if exist &amp;quot;%steam%&amp;quot; (&lt;br /&gt;
         copy &amp;quot;%steam%&amp;quot; &amp;quot;%dark_executable%&amp;quot;&lt;br /&gt;
     ) else if exist &amp;quot;%gog%&amp;quot; (&lt;br /&gt;
         copy &amp;quot;%gog%&amp;quot; &amp;quot;%dark_executable%&amp;quot;&lt;br /&gt;
     ) else (&lt;br /&gt;
         echo &amp;quot;Cannot find Dark Forces executable!&amp;quot;&lt;br /&gt;
         pause&lt;br /&gt;
         exit&lt;br /&gt;
     )&lt;br /&gt;
 )&lt;br /&gt;
Without going into details, this script ensures you have dark.exe in your game directory. Simply add this to your batch file. &lt;br /&gt;
&lt;br /&gt;
==== 2. Handling DFBRIEF.LFD ====&lt;br /&gt;
We need the DFBIEF.LFD file to override the default mission briefings in the game. However, if we do not clean it up after playing a custom mission the briefing will always override the original game briefings and also for any other mod you choose to play. This is why it is important to clean up this briefing file, or simply, rename the briefing file when you start and end the mission. &lt;br /&gt;
&lt;br /&gt;
Here is the template to rename the briefing file inside the batch script. Just replace &amp;lt;gobname&amp;gt; with the name of the mission in the script below. &lt;br /&gt;
 if exist &amp;lt;gobname&amp;gt;.tmp ren &amp;lt;gobname&amp;gt;.tmp dfbrief.lfd&lt;br /&gt;
 DARK -u&amp;lt;gobname&amp;gt;&lt;br /&gt;
 ren dfbrief.lfd &amp;lt;gobname&amp;gt;.tmp &lt;br /&gt;
 exit&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;, we also add an &#039;&#039;&#039;&#039;&#039;exit&#039;&#039;&#039;&#039;&#039; call at the end so the script always exits and we don&#039;t get a hanging window after finishing a mission.  &lt;br /&gt;
&lt;br /&gt;
==== 3. Combined Batch Script Example ====&lt;br /&gt;
Combining all the parts here is what the batch script &#039;&#039;&#039;anchor.bat&#039;&#039;&#039; should look like. Don&#039;t forget to replace &amp;lt;gobname&amp;gt; with your own level (Ex: &#039;&#039;&#039;anchor&#039;&#039;&#039;) &lt;br /&gt;
 @echo off&lt;br /&gt;
 set dark_executable=dark.exe&lt;br /&gt;
 set steam=khonsu_shipping_steam_x64.exe&lt;br /&gt;
 set gog=khonsu_shipping_galaxy_x64.exe&lt;br /&gt;
 &lt;br /&gt;
 if not exist &amp;quot;%dark_executable%&amp;quot; (&lt;br /&gt;
     if exist &amp;quot;%steam%&amp;quot; (&lt;br /&gt;
         copy &amp;quot;%steam%&amp;quot; &amp;quot;%dark_executable%&amp;quot;&lt;br /&gt;
     ) else if exist &amp;quot;%gog%&amp;quot; (&lt;br /&gt;
         copy &amp;quot;%gog%&amp;quot; &amp;quot;%dark_executable%&amp;quot;&lt;br /&gt;
     ) else (&lt;br /&gt;
         echo &amp;quot;Cannot find Dark Forces executable!&amp;quot;&lt;br /&gt;
         pause&lt;br /&gt;
         exit&lt;br /&gt;
     )&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 if exist &amp;lt;gobname&amp;gt;.tmp ren &amp;lt;gobname&amp;gt;.tmp dfbrief.lfd&lt;br /&gt;
 DARK -u&amp;lt;gobname&amp;gt;.gob&lt;br /&gt;
 ren dfbrief.lfd &amp;lt;gobname&amp;gt;.tmp &lt;br /&gt;
 exit&lt;br /&gt;
This is what it looks like for the mission &#039;&#039;&#039;anchor.gob.&#039;&#039;&#039; When you run &#039;&#039;&#039;anchor.bat&#039;&#039;&#039;  we will be able to run the missions in the remaster, tfe or dos. &lt;br /&gt;
[[File:Anchormap.png|center|thumb|728x728px]]&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; When you save your &#039;&#039;&#039;anchor.bat&#039;&#039;&#039; make sure you &#039;&#039;&#039;TEST IT !!&#039;&#039;&#039; It is easy to make a typo and we don&#039;t want players fail attempting to play the mission. Be absolutely sure your batch file works without problems! Don&#039;t skip this step.  &lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
It is important to take some screenshots of the mission. Go ahead and load it in either &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039; and the &#039;&#039;&#039;&#039;&#039;Remaster&#039;&#039;&#039;&#039;&#039; and take some nice screens. You can use (by default) F12 in Steam to take screenshots or Print Screen when using &#039;&#039;&#039;&#039;&#039;The Force Engine&#039;&#039;&#039;&#039;&#039;. Additionally, you can press the combination &#039;&#039;&#039;&#039;&#039;Windows Key + Shift + S&#039;&#039;&#039;&#039;&#039; to take a snap of the screen by dragging your cursor around the area of the screen you want saved. Then simply paste (CTRL-V) into any paint program. &lt;br /&gt;
&lt;br /&gt;
To view the Steam screenshots just click on &#039;&#039;&#039;&#039;&#039;View&#039;&#039;&#039;&#039;&#039; in &#039;&#039;&#039;Steam&#039;s&#039;&#039;&#039; top navigation bar, then press &#039;&#039;&#039;Screenshots&#039;&#039;&#039;.  For &#039;&#039;&#039;&#039;&#039;TFE&#039;&#039;&#039;&#039;&#039;  just open explorer and go to this path &lt;br /&gt;
 %userprofile%\Documents\TheForceEngine\Screenshots\&lt;br /&gt;
When you take screenshots make sure to turn off the GUI and your weapon with F7 and F8. It also helps to use the cheat &#039;&#039;&#039;LAREDLITE&#039;&#039;&#039; so all the enemies stop in their place. &lt;br /&gt;
[[File:Screenshot.png|center|thumb|975x975px]]&lt;br /&gt;
Save each image as 1.png 2.png etc... . Ideally you want to have 3-5 Screenshots of the missions. Choose some good ones! Furthermore, if you have video recording software, you can record and create some gifs which can be used the same way as the png screenshots. Simply name them 1.gif 2.gif etc...&lt;br /&gt;
&lt;br /&gt;
Please have at least &#039;&#039;&#039;3&#039;&#039;&#039; screenshots/gifs of your level. &lt;br /&gt;
&lt;br /&gt;
=== Putting all the mission versions together ===&lt;br /&gt;
Now that you have all the components of a mission, lets get them organized in a single zip! &lt;br /&gt;
&lt;br /&gt;
==== 1. Creating the new zip ====&lt;br /&gt;
First place all the assets in a zip. You should have &#039;&#039;&#039;at least&#039;&#039;&#039; four items in the mission zip.&lt;br /&gt;
&lt;br /&gt;
# The mission name (Ex: &#039;&#039;&#039;anchor.gob&#039;&#039;&#039; )&lt;br /&gt;
# The briefing file &#039;&#039;&#039;dfbrief.lfd&#039;&#039;&#039;&lt;br /&gt;
# The batch file &#039;&#039;&#039;anchor.bat&#039;&#039;&#039;&lt;br /&gt;
# The Read Me file &#039;&#039;&#039;anchor.txt&#039;&#039;&#039; . (If missing - please provide a basic description of the mission. You can use [https://df-21.net/downloads/conf_files/GOB_AUTH.txt this]  example and fill it out as much as you can).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note:&#039;&#039;&#039; Please make sure all the files are in lowercase!   &lt;br /&gt;
&lt;br /&gt;
Save the zip as &amp;lt;gobname&amp;gt;_modern.zip (or &#039;&#039;&#039;&#039;&#039;anchor_modern.zip&#039;&#039;&#039;&#039;&#039; in our case). &#039;&#039;&#039;Modern&#039;&#039;&#039; is just a version identifier but it tells people that it is the new version over the classic ones. Here is what the zip should look like.  &lt;br /&gt;
&lt;br /&gt;
[[File:Zip contents.png|center|thumb|608x608px]]&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; You should also &#039;&#039;&#039;rename&#039;&#039;&#039; the original mission zip to &#039;&#039;&#039;&amp;lt;gobname&amp;gt;_classic.zip&#039;&#039;&#039; . This way we will know that this is the original mission.&lt;br /&gt;
&lt;br /&gt;
==== 2. MetaData File ====&lt;br /&gt;
This is a crucial last step of the process. We need a way to keep track of all the mission versions. To do this, we have a metadata file stored in JSON format. The format is very simple but basically contains nested &#039;&#039;&#039;key-value&#039;&#039;&#039; pairs like &amp;quot;hello&amp;quot; = &amp;quot;world&amp;quot;. You can learn about the format [https://www.w3schools.com/js/js_json_intro.asp here]  .&lt;br /&gt;
&lt;br /&gt;
The name of the file we will use is called &#039;&#039;&#039;metadata.txt .&#039;&#039;&#039; Here is what it looks like for the mission &#039;&#039;&#039;anchor.gob&#039;&#039;&#039;.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Anchor Hed: Tusken Raid&amp;quot;,&lt;br /&gt;
     &amp;quot;rating&amp;quot;: 3,&lt;br /&gt;
     &amp;quot;author&amp;quot;: &amp;quot;Barry Brien&amp;quot;,&lt;br /&gt;
     &amp;quot;versions&amp;quot;: {&lt;br /&gt;
         &amp;quot;classic&amp;quot;: {&lt;br /&gt;
             &amp;quot;name&amp;quot;: &amp;quot;Classic Version&amp;quot;,&lt;br /&gt;
             &amp;quot;release_date&amp;quot;: &amp;quot;2002-06-07&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;modern&amp;quot;: {&lt;br /&gt;
             &amp;quot;name&amp;quot;: &amp;quot;Modern Version&amp;quot;,&lt;br /&gt;
             &amp;quot;release_date&amp;quot;: &amp;quot;2024-01-26&amp;quot;&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;review&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://darkforces.reviews/missions/anchor-hed-tusken-raid-mini-level&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
     &amp;quot;description&amp;quot;: &amp;quot;You are Luke Skywalker, farm boy on Tatooine. You  have just received a distress call from your friend Windy, who is trapped in the village of Anchor Hed during a particularly bad Tusken raid. You rush to aid your friend in you T-16 Skyhopper, landing just outside the village gate, you are completely unarmed. You must save Windy!&amp;quot;,&lt;br /&gt;
     &amp;quot;walkthrough&amp;quot;: &amp;quot;&amp;lt;nowiki&amp;gt;https://www.youtube.com/watch?v=_11GIjcx8eg&amp;lt;/nowiki&amp;gt;&amp;quot;,&lt;br /&gt;
     &amp;quot;create_date&amp;quot;: &amp;quot;2002-06-07&amp;quot;, &lt;br /&gt;
     &amp;quot;last_mod_date&amp;quot;: &amp;quot;2024-01-26&amp;quot;,&lt;br /&gt;
     &amp;quot;dos_support&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
     &amp;quot;remaster_support&amp;quot; : &amp;quot;false&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Lets take a look at what is happening here and go over all the fields. All are required unless tagged as optional. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; - This is the name of the mission&lt;br /&gt;
* &#039;&#039;&#039;rating&#039;&#039;&#039; - This is the rating of the mission. Look at the rating in the [https://docs.google.com/spreadsheets/d/12ph7O8k80gGU2GdtdRoQ4qLxJyDzeGU1czZasoSETA4/edit#gid=0 mission list] and place it here. If it is missing, just set it to &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;author&#039;&#039;&#039;  - The author of the map. If you do not know who it is - &#039;&#039;&#039;do not put your own&#039;&#039;&#039; - contact DF-21 staff! &lt;br /&gt;
* &#039;&#039;&#039;versions&#039;&#039;&#039; - This is a listing of all the variants of the map. You can have one or more versions. Each one contains the name of the version and the release date. You can name them whatever you want. You can figure out the release date of the classic mission by looking at the time the files were last modified. Note: The version names in the list &#039;&#039;&#039;must correspond to the zip file suffixes!&#039;&#039;&#039; Ex: modern points to &#039;&#039;&#039;&#039;&#039;anchor_modern.zip&#039;&#039;&#039;&#039;&#039; and is the modernized version of the map and classic points to &#039;&#039;&#039;&#039;&#039;anchor_classic.zip&#039;&#039;&#039;&#039;&#039;. If you have a version named 2.0 then you must have a zip called &#039;&#039;&#039;&#039;&#039;anchor_2.0.zip .&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;Always&#039;&#039;&#039; place the latest version at the bottom of the list!!! &lt;br /&gt;
* &#039;&#039;&#039;review&#039;&#039;&#039; [&#039;&#039;&#039;optional]&#039;&#039;&#039; - If you know there is a review place the URL here. Otherwise don&#039;t even add this line. You can find Dark Forces reviews here https://darkforces.reviews/&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - The description of the mission. It is likely in the original read me file. &lt;br /&gt;
* &#039;&#039;&#039;walkthrough&#039;&#039;&#039; &#039;&#039;&#039;[optional]&#039;&#039;&#039; - maybe there is a walkthrough on youtube? Check out [https://www.youtube.com/@MaxDuckwall here] for walkthroughs.&lt;br /&gt;
* &#039;&#039;&#039;create_date&#039;&#039;&#039; - This is original creation date of the map (should be the same as classic). &lt;br /&gt;
* &#039;&#039;&#039;last_mod_date&#039;&#039;&#039; - This is date of the latest version. (Usually the day you created the modern version).&lt;br /&gt;
* &#039;&#039;&#039;dos_support&#039;&#039;&#039;  - Set this to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; if the &#039;&#039;&#039;LATEST&#039;&#039;&#039; mission supports DOS (&#039;&#039;&#039;Note&#039;&#039;&#039;: &#039;&#039;The Force Engine&#039;&#039; support is implied)&lt;br /&gt;
* &#039;&#039;&#039;remaster_support&#039;&#039;&#039;  - Set this to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; if the &#039;&#039;&#039;LATEST&#039;&#039;&#039; mission supports Night Dive&#039;s Remaster &lt;br /&gt;
&lt;br /&gt;
It&#039;s important to remember that for each version definition you &#039;&#039;&#039;must&#039;&#039;&#039; have a &#039;&#039;&amp;lt;gobname&amp;gt;_&amp;lt;version&amp;gt;.zip&#039;&#039; available! &lt;br /&gt;
&lt;br /&gt;
Don&#039;t get confused when you make your own metadata file , simply use the example for anchor.gob and update the values! If stuck, ask the DF-21 staff! &lt;br /&gt;
&lt;br /&gt;
==== 3. What a DF-21 mission folder should look like ====&lt;br /&gt;
Now that you have all your components. Lets put all the mission versions in a single folder (preferably called the same as the gob file. In our case &#039;&#039;&#039;anchor&#039;&#039;&#039;). Lets add the screenshots we took and lets add the metadata.txt file. &lt;br /&gt;
[[File:Modern mission format.png|center|thumb|849x849px]]&lt;br /&gt;
There we go! This is the file format that DF-21 uses to host the modern missions. When you are ready, zip this whole folder structure and upload it [https://df-21.net/downloads/upload.php here] .&lt;br /&gt;
&lt;br /&gt;
Thank you so much for doing this work! It is greatly appreciated.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1398</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1398"/>
		<updated>2024-10-31T13:38:43Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: removing quotes from false/true&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:ModConfImageTrue.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &#039;&#039;&#039;true&#039;&#039;&#039; item will be added. When set to &#039;&#039;&#039;false&#039;&#039;&#039; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;f&#039;&#039;&#039;alse. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the one below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
==== HD override details ====&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: false,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: true,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : true,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:ModConfImageTrue.png&amp;diff=1397</id>
		<title>File:ModConfImageTrue.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:ModConfImageTrue.png&amp;diff=1397"/>
		<updated>2024-10-31T13:34:08Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mod Conf Image Example&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1373</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1373"/>
		<updated>2024-10-17T14:20:01Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:MOD CONF Ex.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the one below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
==== HD override details ====&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1372</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1372"/>
		<updated>2024-10-17T14:19:12Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:MOD CONF Ex.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the one below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
=== HD override details ===&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1371</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1371"/>
		<updated>2024-10-17T14:18:24Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: Added HD changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this. At the moment, there are two types of overrides. One type is processed only by TFE and another is processed by both Dark Forces Remaster and TFE. We will first talk about the TFE-only overrides. &lt;br /&gt;
[[File:MOD CONF Ex.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== THE Override Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Remaster HD Overrides ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This is strictly optional and really should only be used to fix incorrect textures shown in the remaster!&lt;br /&gt;
&lt;br /&gt;
There is another optional type of override that can be added to MOD_CONF.txt file. These overrides change the quality of assets that are loaded into the game. The game will either load the High Definition (HD) or original low quality assets. This is required because, by default, the assets in the Dark Forces Remaster skip texture paletting and only show the HD version of the texture even if it doesn&#039;t fit the modded level. Most of the time you will never have to deal with this but some custom maps that use the GROMAS, JABSHIP, SEWERS or TALAY palettes will look strange in the remaster. &lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF HD.png|center|thumb]]&lt;br /&gt;
For now, lets go over the structure of the HD overrides. Just like before, you add the JSON overrides to MOD_CONF.txt like before. The idea is that you can specify whether to show HD or non HD versions of the PDA menu and the Mission Briefings. Additionally, you can specify per level, which textures you can override to show the non-HD versions instead of the HD versions. The asset types you can override are &#039;&#039;&#039;BMs&#039;&#039;&#039; (Textures), &#039;&#039;&#039;FMEs&#039;&#039;&#039; (Frames - Ex: Ammo Pick up) , WAX (Sprites like enemy stormtroopers) . &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each asset type you would list the asset that should show the &#039;&#039;&#039;original&#039;&#039;&#039; version instead of the HD version. So if you want to show the original low-quality version of &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039; you would add it to the list of BMs. &lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the low quality version of the &#039;&#039;&#039;GPDIRTRD.BM&#039;&#039;&#039;. If this override is added to MOD_CONF.txt then Dark Forces Remaster and TFE will show the original low quality version.&lt;br /&gt;
[[File:GPDIRTD LOW.png|center|thumb]]&lt;br /&gt;
If you remove the texture from the list it will show the default high-res version like the on below. &lt;br /&gt;
[[File:GPDIRTRD HIGH RES.png|center|thumb]]&lt;br /&gt;
The same concept works for FME and WAX assets. Just add them to the list of assets. &lt;br /&gt;
&lt;br /&gt;
=== HD override details ===&lt;br /&gt;
Here are the &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; overrides for high resolution PDA or briefing. Both the Dark Forces Remaster and TFE will process these settings.&lt;br /&gt;
 HD_PDA -    Display the original or the high resolution version of the PDA. This is useful for custom imperial codes (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;)&lt;br /&gt;
 HD_BRIEF -  Display the original or the high resolution version of the Mission Briefing (&#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039;). &lt;br /&gt;
Then we have a list of levels that should be overrides. Just like before you would write the name of the mission like SECBASE.LEV or TALAY.LEV and then list the types of assets that should show the low quality versions. The asset lists can be BMs FMEs or WAXs and are comma separated surrounded by brackets. &lt;br /&gt;
 &amp;lt;level_name&amp;gt;.LEV - Name of Level to override HD assets. Can be SECBASE.LEV, TALAY.LEV etc...&lt;br /&gt;
 &amp;lt;asset_type&amp;gt; - Must be either BM, WAX or FME. &lt;br /&gt;
An example is below for mission &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
  &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you add this override, it will show the low-quality version of textures &#039;&#039;&#039;GPDIRTRD.BM,  SPSEWGE3.BM&#039;&#039;&#039; and &#039;&#039;&#039;GPMINE1X.BM&#039;&#039;&#039; from the BM list&#039;&#039;&#039;.&#039;&#039;&#039; It will also display the low-quality version of &#039;&#039;&#039;GFPIPEIS1.FME&#039;&#039;&#039; frame in the FME list. Finally, the Kell Dragon will be of low quality due to &#039;&#039;&#039;KELL.WAX&#039;&#039;&#039; being added to the WAX list. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putting it altogether your MOD_CONF may look like this. Don&#039;t forget to ALWAYS check that you do not have any typos and validate with this website --&amp;gt;https://jsonlint.com/&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     },&lt;br /&gt;
     &amp;quot;HD_PDA&amp;quot;: false,&lt;br /&gt;
     &amp;quot;HD_BRIEF&amp;quot;: false,&lt;br /&gt;
     &amp;quot;SECBASE.LEV&amp;quot; : {&lt;br /&gt;
         &amp;quot;BM&amp;quot;: [&lt;br /&gt;
             &amp;quot;GPDIRTRD.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;SPSEWGE3.BM&amp;quot;,&lt;br /&gt;
             &amp;quot;GPMINE1X.BM&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;FME&amp;quot;: [&lt;br /&gt;
             &amp;quot;GFPIPES1.FME&amp;quot;&lt;br /&gt;
         ],&lt;br /&gt;
         &amp;quot;WAX&amp;quot;: [&lt;br /&gt;
             &amp;quot;KELL.WAX&amp;quot;&lt;br /&gt;
         ]&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Remember, if you are stuck or confused somewhere ask in the DF-21 [https://discord.gg/6T9NvMh2MC Discord]  .&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:GPDIRTRD_HIGH_RES.png&amp;diff=1370</id>
		<title>File:GPDIRTRD HIGH RES.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:GPDIRTRD_HIGH_RES.png&amp;diff=1370"/>
		<updated>2024-10-17T14:00:03Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;High Res version of GPDIRT example&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:GPDIRTD_LOW.png&amp;diff=1369</id>
		<title>File:GPDIRTD LOW.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:GPDIRTD_LOW.png&amp;diff=1369"/>
		<updated>2024-10-17T13:56:59Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example of low quality texture&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF_HD.png&amp;diff=1368</id>
		<title>File:MOD CONF HD.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF_HD.png&amp;diff=1368"/>
		<updated>2024-10-17T13:33:38Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HD overrides for Mod Conf&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1367</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1367"/>
		<updated>2024-10-17T13:25:52Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF Ex.png|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top the first key is &#039;&#039;&#039;TFE_VERSION&#039;&#039;&#039; . This is a validation checks that tells the The Force Engine two things. The first is what format the MOD_CONF file is in. We may add new categories and structures to the JSON as times goes along. Additionally, the version may tell TFE what features MOD_CONF expects to be supported.  As we add more features the MOD_CONF the version will increase. At the moment, the version is &#039;&#039;&#039;1&#039;&#039;&#039; and supports all features. If this value is missing the validation is skipped and, if there are any issues, the loading of the override is skipped.  &lt;br /&gt;
&lt;br /&gt;
The second key is &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_VERSION&amp;quot; : 1,&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF_Ex.png&amp;diff=1366</id>
		<title>File:MOD CONF Ex.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF_Ex.png&amp;diff=1366"/>
		<updated>2024-10-17T12:49:59Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Example of Mod Conf File&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1340</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1340"/>
		<updated>2024-09-24T21:20:17Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon - Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
 fogLevel      - Set the fog attenuation (Gromas Mines defaults to 30). Values between 0 and 100. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1339</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1339"/>
		<updated>2024-09-24T18:39:06Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats -      Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp -    Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a Bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1338</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1338"/>
		<updated>2024-09-24T18:34:06Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1337</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1337"/>
		<updated>2024-09-24T18:31:22Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note:&#039;&#039;&#039; You must have the item in your inventory for it to be enabled, otherwise nothing will happen!   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1336</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1336"/>
		<updated>2024-09-24T18:30:48Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod.   &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Note:&#039;&#039;&#039; You must have item in your inventory for it to be enabled, otherwise nothing will happen!   &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1335</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1335"/>
		<updated>2024-09-24T18:30:25Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &#039;&#039;&#039;Note:&#039;&#039;&#039; You must have item in your inventory for it to be enabled!  &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on &lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=Dark_Forces_Wiki&amp;diff=1334</id>
		<title>Dark Forces Wiki</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=Dark_Forces_Wiki&amp;diff=1334"/>
		<updated>2024-09-23T20:06:29Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; font-size: x-large; padding: 1em;&amp;quot;&amp;gt;[[File:WikiLogo.png|center|frameless|561x561px]]&#039;&#039;&#039;Welcome to the {{SITENAME}}!&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This community is dedicated to the 1995 game &#039;&#039;Star Wars: Dark Forces&#039;&#039; with an emphasis on modding and map making .  &lt;br /&gt;
&lt;br /&gt;
If you would like to contribute please create an account and help expand this wiki. &lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Editors ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;[[WDFUSE]]&#039;&#039;&#039; - (&#039;&#039;&#039;The original Dark Forces Editor)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;[https://theforceengine.github.io/ The Force Engine Editor]&#039;&#039;&#039; - &#039;&#039;&#039;(Under Development - Coming Soon in  2024)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;[https://df-21.net/downloads/utilities.php CYBERDARK] - (Obsolete)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How To Guides ===&lt;br /&gt;
* [https://df-21.net/wiki/?title=DF-21_Mission_Components Submitting DF-21 Missions]&lt;br /&gt;
* [https://df-21.net/wiki/?title=Converting_Classic_Maps Converting Old DF-21 Missions]&lt;br /&gt;
* [https://df-21.net/wiki/?title=How_To:_Good_MIDI How to get good sounding MIDI in Dark Forces]&lt;br /&gt;
&lt;br /&gt;
=== Dark Forces Reference ===&lt;br /&gt;
* [[Dark Forces Unofficial Specifications]]&lt;br /&gt;
* [[Dark Forces Remaster Unofficial Specs]]&lt;br /&gt;
* [[Logics and AI reference]]&lt;br /&gt;
* [https://df-21.net/wiki/?title=TFE_Mod_Overrides Mod Overrides with MOD_CONF]&lt;br /&gt;
* [[Weapons reference]]&lt;br /&gt;
&lt;br /&gt;
=== Vault ===&lt;br /&gt;
* [[:Category:Demo Assets|Assets included with the Dark Forces demo]]&lt;br /&gt;
&lt;br /&gt;
 [[Category:{{SITENAME}}]]&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1333</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1333"/>
		<updated>2024-09-21T01:52:08Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;1&#039;&#039;&#039; is fists, &#039;&#039;&#039;2&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;0&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1332</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1332"/>
		<updated>2024-09-21T01:42:44Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case, the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;0&#039;&#039;&#039; is fists, &#039;&#039;&#039;1&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;9&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1331</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1331"/>
		<updated>2024-09-21T01:42:21Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* How do I create or edit a MOD_CONF.txt file and what is JSON? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word &#039;&#039;&#039;must&#039;&#039;&#039; to be surrounded with &#039;&#039;&#039;quotation&#039;&#039;&#039; &#039;&#039;&#039;marks&#039;&#039;&#039;. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;0&#039;&#039;&#039; is fists, &#039;&#039;&#039;1&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;9&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1330</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1330"/>
		<updated>2024-09-21T01:30:28Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Custom Numerical Overrides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;0&#039;&#039;&#039; is fists, &#039;&#039;&#039;1&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;9&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1329</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1329"/>
		<updated>2024-09-21T00:38:55Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s GOB archive (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your GOB archive.  &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;0&#039;&#039;&#039; are fist, &#039;&#039;&#039;1&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;9&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1328</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1328"/>
		<updated>2024-09-20T21:26:33Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* Weapons and Inventory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.|center]]&lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Numerical Overrides =====&lt;br /&gt;
 defaultWeapon -   Set your starting equipped weapon. &#039;&#039;&#039;0&#039;&#039;&#039; are fist, &#039;&#039;&#039;1&#039;&#039;&#039; is Bryar ... &#039;&#039;&#039;9&#039;&#039;&#039; is the DT Cannon. Values between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;9&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1327</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1327"/>
		<updated>2024-09-20T21:02:13Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.|center]]&lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the repeater ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1326</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1326"/>
		<updated>2024-09-20T19:40:30Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|The MOD_CONF.txt should look like this in your GOB...|center]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.|center]]&lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it!&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1325</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1325"/>
		<updated>2024-09-20T19:39:42Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|left|The MOD_CONF.txt should look like this in your GOB...]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it! &lt;br /&gt;
&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1324</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1324"/>
		<updated>2024-09-20T19:39:23Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|left|The MOD_CONF.txt should look like this in your GOB...]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it! &lt;br /&gt;
&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1323</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1323"/>
		<updated>2024-09-20T19:39:08Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: /* What is a Mod Configuration File? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|left|The MOD_CONF.txt should look like this in your GOB...]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now that you know where to place the configuration file, lets look inside it! &lt;br /&gt;
&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1322</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1322"/>
		<updated>2024-09-20T19:38:38Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF DET.png|center|thumb]]&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|left|The MOD_CONF.txt should look like this in your GOB...]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF_DET.png&amp;diff=1321</id>
		<title>File:MOD CONF DET.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF_DET.png&amp;diff=1321"/>
		<updated>2024-09-20T19:38:29Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mod Conf Example&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1320</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1320"/>
		<updated>2024-09-20T19:04:07Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. We will discuss using a custom mod configuration file that looks like this.&lt;br /&gt;
[[File:MOD CONF.png|center|thumb|647x647px]]&lt;br /&gt;
&lt;br /&gt;
== What is a Mod Configuration File? ==&lt;br /&gt;
You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). When present, this file will make TFE act differently than it would in a regular game. You could change the amount of lives you have on start, and what weapons are available. You can even start the mission wearing a Gas Mask!  &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:MOD CONF Gob.png|thumb|541x541px|left|The MOD_CONF.txt should look like this in your GOB...]]&lt;br /&gt;
[[File:MOD CONF in Zip.png|thumb|434x434px|Or like this in a Zip.]]&lt;br /&gt;
&lt;br /&gt;
=== How do I create or edit a MOD_CONF.txt file and what is JSON? ===&lt;br /&gt;
Simply open your favorite text editor (like Notepad) and create a new file. Then you will be able to edit the text as necessary. The file itself is in the format of a JSON  like the level metadata.txt. You can read about the format here --&amp;gt; [https://www.w3schools.com/js/js_json_intro.asp JSON Tutorial]  . Basically, you surround each section with brackets { and } putting configuration data inside each section. Any word has to be surrounded with quotation marks. Each configuration is in the format of &#039;&#039;&#039;KEY :&#039;&#039;&#039; VALUE&lt;br /&gt;
&lt;br /&gt;
And example could be &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; or &amp;quot;dark&amp;quot; : &amp;quot;forces&amp;quot;. In this case the name of the key is &#039;&#039;&#039;hello&#039;&#039;&#039; or &#039;&#039;&#039;dark&#039;&#039;&#039; and the value is &#039;&#039;&#039;world&#039;&#039;&#039; or &#039;&#039;&#039;forces.&#039;&#039;&#039; Then you surround everything with brackets.&lt;br /&gt;
 &#039;&#039;&#039;{&amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot;}&#039;&#039;&#039;&lt;br /&gt;
That&#039;s what a valid configuration looks like above. You can also place one configuration inside another.&lt;br /&gt;
 &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{&amp;quot;hello&amp;quot; : {&amp;quot;dark&amp;quot;: &amp;quot;forces&amp;quot;}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
So in the case above the key &#039;&#039;&#039;hello&#039;&#039;&#039; is equal to another key-value pair called {&amp;quot;dark&amp;quot; :&amp;quot;forces&amp;quot;}.  You can put as many as you want inside each other. &lt;br /&gt;
&lt;br /&gt;
If you have multiple values just add commas between them.&lt;br /&gt;
 {&amp;quot;name&amp;quot; : &amp;quot;Kyle&amp;quot;, &amp;quot;lastname&amp;quot; : &amp;quot;Katarn&amp;quot;, &amp;quot;Age&amp;quot; : 25, ...... etc... }&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT!!! It is very easy to make a typo in your JSON file. Go to this website, paste your MOD_CONF.txt&#039;&#039;&#039; contents and verify that there are no errors --&amp;gt; https://jsonlint.com/&lt;br /&gt;
&lt;br /&gt;
Remember after you create your MOD_CONF.txt to add it your ZIP file or the GOB itself (for Remaster support). &lt;br /&gt;
&lt;br /&gt;
==== What is the structure of a MOD_CONF.txt file? ====&lt;br /&gt;
Below is a an example of a level configuration. &lt;br /&gt;
&lt;br /&gt;
At the top is the key &#039;&#039;&#039;TFE_OVERRIDES&#039;&#039;&#039;. This tells the game that everything inside is used as configuration for TFE.&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;TFE_OVERRIDES&amp;quot;: {&lt;br /&gt;
         &amp;quot;levelOverrides&amp;quot;: {&lt;br /&gt;
             &amp;quot;SECBASE.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
                 &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
                 &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
                 &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
             },&lt;br /&gt;
             &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
                 &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
                 &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
Inside the overrides section is the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section. This tells the game that there will be configuration for each level name that you define.&lt;br /&gt;
&lt;br /&gt;
Inside the &#039;&#039;&#039;levelOverrides&#039;&#039;&#039; section is a comma-separated listing of levels you want to override. For example if you want to change the behavior of SECBASE you would add SECBASE.LEV configuration and if you want to configure TALAY then you would write down TALAY.LEV. You can add as many as you want depending on how many maps you have in your GOB. &lt;br /&gt;
&lt;br /&gt;
=== Structure of a Level Override Section ===&lt;br /&gt;
Lets look at the detail of level override section. You will see that it is a listing of key-value pairs. Some of them are set to &#039;&#039;&#039;true&#039;&#039;&#039; or &#039;&#039;&#039;false&#039;&#039;&#039; and some have numerical values. &lt;br /&gt;
&lt;br /&gt;
===== SECBASE.LEV =====&lt;br /&gt;
Lets look at the section for &#039;&#039;&#039;SECBASE.LEV&#039;&#039;&#039;&lt;br /&gt;
 &amp;quot;SECBASE.LEV&amp;quot;: &lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
 }&lt;br /&gt;
What each key does is change the behavior of the level in the game. Lets look at the part that says &lt;br /&gt;
    &amp;quot;pistol&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;pistol&#039;&#039;&#039; and the value is &#039;&#039;&#039;false.&#039;&#039;&#039; This means that it will &#039;&#039;&#039;remove&#039;&#039;&#039; the pistol from the mission&#039;s inventory. Lets continue...&lt;br /&gt;
    &amp;quot;rifle&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;rifle&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;add&#039;&#039;&#039; the rifle to your inventory. &lt;br /&gt;
    &amp;quot;power&amp;quot;: 300,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;power&#039;&#039;&#039; and the value is &#039;&#039;&#039;300.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the blaster rifle ammo power to 300 units.&#039;&#039;&#039; Notice that there are no quotes around 300 - that&#039;s because we don&#039;t need to do that when dealing with numbers. &lt;br /&gt;
    &amp;quot;detonator&amp;quot;: 5,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;detonator&#039;&#039;&#039; and the value is &#039;&#039;&#039;5.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the thermal detonator to 5.&#039;&#039;&#039; &lt;br /&gt;
    &amp;quot;shields&amp;quot;: 150&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;shields&#039;&#039;&#039; and the value is &#039;&#039;&#039;150.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;set the shields to 150.&#039;&#039;&#039; Note that there is no comma after 150 . &lt;br /&gt;
&lt;br /&gt;
Remember, all of these changes only apply to the SECBASE.LEV mission! &lt;br /&gt;
&lt;br /&gt;
===== TALAY.LEV =====&lt;br /&gt;
Now lets look at the next section for TALAY.LEV.  &lt;br /&gt;
 &amp;quot;TALAY.LEV&amp;quot;: {&lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
 }&lt;br /&gt;
Here, we have two key - value pairs. &lt;br /&gt;
    &amp;quot;bryarOnly&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;bryarOnly&#039;&#039;&#039; and the value is &#039;&#039;&#039;true.&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;remove&#039;&#039;&#039; your entire inventory and give you only a bryar pistol! &lt;br /&gt;
    &amp;quot;lives&amp;quot;: 1&lt;br /&gt;
In this case, the key is &#039;&#039;&#039;lives&#039;&#039;&#039;  and the value is &#039;&#039;&#039;1&#039;&#039;&#039; This means that the game will &#039;&#039;&#039;give you only 1 life!&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Full Configuration Details ===&lt;br /&gt;
Now that you know how everything works lets go over each key and what it does! &lt;br /&gt;
&lt;br /&gt;
===== Weapons and Inventory =====&lt;br /&gt;
When you set the value to &amp;quot;&#039;&#039;&#039;true&#039;&#039;&#039;&amp;quot; item will be added. When set to &amp;quot;&#039;&#039;&#039;false&#039;&#039;&#039;&amp;quot; the item will be removed from the player&#039;s inventory. So if your key is &amp;quot;&#039;&#039;&#039;pistol&#039;&#039;&#039;&amp;quot; then the two values you can set are either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. &lt;br /&gt;
 pistol -     Add or Remove the Bryar Pistol from the inventory&lt;br /&gt;
 rifle -      Add or Remove the E-11 Imperial Rifle from the inventory&lt;br /&gt;
 autogun -    Add or Remove the Repeater Gun from the inventory&lt;br /&gt;
 mortar -     Add or Remove the Packard Mortar from the inventory&lt;br /&gt;
 fusion -     Add or Remove the Fusion Cutter from the inventory&lt;br /&gt;
 concussion - Add or Remove the Concussion Rifle from the inventory&lt;br /&gt;
 cannon -     Add or Remove the Dark Trooper Cannon from the inventory&lt;br /&gt;
 mask -       Add or Remove the Gas Mask from the inventory&lt;br /&gt;
 goggles -    Add or Remove the Night Vision Goggles from the inventory&lt;br /&gt;
 cleats -     Add or Remove the Ice Cleats from the inventory&lt;br /&gt;
&lt;br /&gt;
===== Ammunition and Health =====&lt;br /&gt;
These  typically set your a numeric value for your ammunition and health. Just give the value nice whole numbers between 0 and the Max.&lt;br /&gt;
 energy -    Set the Energy (For E-11) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 power -     Set the Power (For the Repeater) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 plasma -    Set the Power (For the DT Cannon) ammunition to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;&lt;br /&gt;
 detonator - Set the Thermal Detonator count. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 shell  -    Set the Mortar Shells (for the Packard Mortar Cannon) to a specific value. Max is &#039;&#039;&#039;999&#039;&#039;&#039;.&lt;br /&gt;
 mine -      Set the Imperial Mine count. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 missile -   Set the DT Weapon missiles to a specific value.  Max is &#039;&#039;&#039;99.&#039;&#039;&#039;&lt;br /&gt;
 shields -   Set your shields to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 health -    Set your health to a specific value. Max is &#039;&#039;&#039;999.&#039;&#039;&#039;&lt;br /&gt;
 lives -     Set your lives to a specific value. Max is &#039;&#039;&#039;9.&#039;&#039;&#039;&lt;br /&gt;
 battery -   Set your battery to a specific value. This is a percentage between &#039;&#039;&#039;0&#039;&#039;&#039; and &#039;&#039;&#039;100&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===== Custom Overrides =====&lt;br /&gt;
We have some custom overrides for your mod. &lt;br /&gt;
 enableMask -        Start the mission with your Gas Mask on.&lt;br /&gt;
 enableCleats-       Start the mission with your Ice Cleats on.&lt;br /&gt;
 enableNightVision - Start the mission with your Night Vision enabled.&lt;br /&gt;
 enableHeadlamp-     Start the mission with your Head Lamp on. &lt;br /&gt;
 bryarOnly -         Start your mission with no inventory except a bryar pistol and 100 ammo just like the first misison.&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF.png&amp;diff=1319</id>
		<title>File:MOD CONF.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF.png&amp;diff=1319"/>
		<updated>2024-09-20T18:19:31Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MOD_CONF&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF_in_Zip.png&amp;diff=1318</id>
		<title>File:MOD CONF in Zip.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF_in_Zip.png&amp;diff=1318"/>
		<updated>2024-09-20T18:12:35Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MOD_CONF inside a ZIP&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1317</id>
		<title>TFE Mod Overrides</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=TFE_Mod_Overrides&amp;diff=1317"/>
		<updated>2024-09-20T18:12:10Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: Created page with &amp;quot;On this page we will discuss how to override The Force Engine (TFE) mod configurations. You can change many different aspects of your mod by placing a configuration file called &amp;#039;&amp;#039;&amp;#039;MOD_CONF.txt&amp;#039;&amp;#039;&amp;#039; inside your mod&amp;#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&amp;#039;&amp;#039;  The MOD_CONF.txt should look like this in your GOB. File:MOD CONF Gob.png|center|...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page we will discuss how to override The Force Engine (TFE) mod configurations. You can change many different aspects of your mod by placing a configuration file called &#039;&#039;&#039;MOD_CONF.txt&#039;&#039;&#039; inside your mod&#039;s ZIP folder or the GOB itself (using a tool like [https://df-21.net/downloads/utilities.php Conman] ). &#039;&#039;&#039;&#039;&#039;Note:&#039;&#039;&#039; The Dark Forces Remaster only loads MOD_CONF from the GOB!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The MOD_CONF.txt should look like this in your GOB.&lt;br /&gt;
[[File:MOD CONF Gob.png|center|thumb|541x541px]]&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
	<entry>
		<id>https://df-21.net/wiki/index.php?title=File:MOD_CONF_Gob.png&amp;diff=1316</id>
		<title>File:MOD CONF Gob.png</title>
		<link rel="alternate" type="text/html" href="https://df-21.net/wiki/index.php?title=File:MOD_CONF_Gob.png&amp;diff=1316"/>
		<updated>2024-09-20T18:10:34Z</updated>

		<summary type="html">&lt;p&gt;Df21admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MOD_CONF in the GOB&lt;/div&gt;</summary>
		<author><name>Df21admin</name></author>
	</entry>
</feed>