First things first read Modding RBDoom3bfg what to know for info on what is supported.
First step in creating a mod is give your mod its own folder, create a folder and name it what your mod is called.
Second step is create a shortcut to RBDoom3bfg.exe the right click and click properties. Under target after the quotes add +set fs_game yourmodsname +set fs_resourceLoadPriority 0. Make sure there is a space between the end quote and the first +set. Click apply. You can also create a bat file with the same info, just right click and of mine and then click edit and you'll see how.
Ok now you have your own folder and a shortcut to launch your mod, if you click it now it will launch just the default game but it is looking for stuff in your folder first. When it finds nothing it will use the base folders stuff instead. Also the Generated folder will appear in your folder.
Lets do a super basic mod. In the Basedev folder are the stock files, go into the script folder and copy weapon_chaingun.script. Go back to your mods folder, create a new folder called script and paste weapon_chaingun.script into there. -
Open your weapon_chaingun.script with notepad or wordpad. At the top of the file look for #define CHAINGUN_FIRE_SHOTS_PER_SEC 8, change the 8 to 16. A few down from that you will find #define CHAINGUN_BARREL_SPEED 480, change the 480 to 960. Save it.
if you launch the game with the shortcut you made, the chaingun now spins and fires twice as fast. But it also rears up the more you fire, lets fix that.
Go back into basedev, the into the def folder and copy weapon_chaingun.def. Go back into your mods folder and create a folder named def and paste weapon_chaingun.def into it.
open your weapon_chaingun.def with notepad or wordpad and find "muzzle_kick_time" ".1" change that to ".3" right under that is "muzzle_kick_maxtime" ".6" change that number to ".3" also. right below that is "muzzle_kick_angles" "-4 -5 -10" change those numbers to "0 -0.2 0". Next is "recoilTime" "100" change that to "50" and "recoilAngles" "-1 0 0" change those to "-7 -4.5 0". Save it.
Now if you launch the game with the shortcut you made, your chaingun now is exactly the same as the one in the Ultimate BFG mod.
Congrats you made a mod.
Def stand for definition, as in it defines specifics for a entity. Script files control how those definitions are carried out. Material files control all the textures in the game and how they are applied. With those 3 you can do some fun stuff.
Another type of basic modding is skinning. Quick example, goto base/models/weapons/ and copy the folder chaingun. Go back to your mod folder and add a folder models, in that folder add weapons, in that folder paste the chaingun folder. Open with image editor like Gimp (free editor) and change the color of chaingun.tga and save it. Poof basic skinning.
If you are converting or combining mods I recommend using a file compare software like winmerge (free). Its give you a side by side of the stock file and the mods file and highlight their differences. From there you can see what needs to be added from the stock file. You can compare whole folders as well and send stuff back and forth between them.
Should also mention if you are using Doom 3 BFG Hi Def, your mod will automatically include all the textures and models from Hi def. Unless you replace them in your mod folder with something else.