Difference between revisions of "Getting started creating mods using GECK"

From Nexus Mods Wiki
Jump to: navigation, search
(Added 'TIP Multiple Greetings')
(Custom NPCs: update)
 
(153 intermediate revisions by the same user not shown)
Line 44: Line 44:
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">(Replaced by '''GECK Extender'''.  Do not use both together.)</span>  Comes in a "standalone" version for the "vanilla" '''GECK''' functions, and one for '''GECK''' with '''NVSE''' functions. It fixes and improves some issues while providing the missing messages when the '''GECK''' compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by experienced mod creators.
 
">(Replaced by '''GECK Extender'''.  Do not use both together.)</span>  Comes in a "standalone" version for the "vanilla" '''GECK''' functions, and one for '''GECK''' with '''NVSE''' functions. It fixes and improves some issues while providing the missing messages when the '''GECK''' compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by experienced mod creators.
 +
:* [https://www.nexusmods.com/newvegas/mods/70962 Hot Reload (NVSE)] by '''Kormakur'''.  '''xNVSE''' plugin that allows you to edit and save scripts in '''GECK''' and update them live into the game without needing to restart it.
  
 
* There are now two wikis devoted to the '''GECK''': the official one by Bethesda, which is not very well supported and a major pain to update (Five CAPCHAs per post!), and a Modding Community '''GECKWiki''' site with everything from the official one but actively updated by the modding community.  While most links to the '''GECK''' wiki are to the official wiki, be sure to check out the Community one to see the latest info on your topic.  Anything related to "Script Extenders" like '''NVSE''' or '''JIP LN NVSE''' functions will be more current on the Community '''GECKWiki''' site.
 
* There are now two wikis devoted to the '''GECK''': the official one by Bethesda, which is not very well supported and a major pain to update (Five CAPCHAs per post!), and a Modding Community '''GECKWiki''' site with everything from the official one but actively updated by the modding community.  While most links to the '''GECK''' wiki are to the official wiki, be sure to check out the Community one to see the latest info on your topic.  Anything related to "Script Extenders" like '''NVSE''' or '''JIP LN NVSE''' functions will be more current on the Community '''GECKWiki''' site.
Line 53: Line 54:
 
:* [http://geck.bethsoft.com/index.php?title=Main_Page Official Bethesda GECK Wiki]
 
:* [http://geck.bethsoft.com/index.php?title=Main_Page Official Bethesda GECK Wiki]
 
:* [http://cs.elderscrolls.com/index.php?title=Category:Solutions TES4 Construction Set Wiki] Older, more fundamental questions and answers.
 
:* [http://cs.elderscrolls.com/index.php?title=Category:Solutions TES4 Construction Set Wiki] Older, more fundamental questions and answers.
 
  
 
=== <span id="Image_Tools"></span>Image Tools ===
 
=== <span id="Image_Tools"></span>Image Tools ===
Line 66: Line 66:
 
:: "Noob to Pro" PDF tutorial.
 
:: "Noob to Pro" PDF tutorial.
 
:: Check out the "Optional" files section for some additional functionality.  Recommended for FO3/FNV.
 
:: Check out the "Optional" files section for some additional functionality.  Recommended for FO3/FNV.
:* [http://www.nexusmods.com/oblivion/mods/42755 Blender v2.49b Portable] by '''Room207''' is also a "complete" package that is preferred by some for it's convenience.  Includes:
+
:: (Version specific manual linked under the "Portable" version entries.)
 +
:* [http://www.nexusmods.com/oblivion/mods/42755 Blender v2.49b Portable] by '''Room207''' is also a "complete" package that is preferred by some for it's convenience and because it is patched so that vertex normals won't be regenerated when going into ''edit'' mode, which is one of the reasons why a neck seam is produced.  Includes:
 
::: Python 2.6.6
 
::: Python 2.6.6
 
::: Pyffi 2.1.11
 
::: Pyffi 2.1.11
Line 76: Line 77:
 
::: Blender Tools 1.01 by Kormgar
 
::: Blender Tools 1.01 by Kormgar
 
::: [http://www.nexusmods.com/oblivion/mods/45019/? Blender TRI file scripts and Tutorial] by '''Kapaer and Deedes'''
 
::: [http://www.nexusmods.com/oblivion/mods/45019/? Blender TRI file scripts and Tutorial] by '''Kapaer and Deedes'''
 +
:* [https://archive.blender.org/wiki/index.php/Doc:2.4/Manual/ Blender v2.4x Manual] '''This version''' specific original manual.
 +
:: You can now import your ".nif" file without anything interfering with it.
 
:* [[Installation_of_Blender|Installation of Blender]] (Wiki article.)
 
:* [[Installation_of_Blender|Installation of Blender]] (Wiki article.)
 +
:* [https://www.nexusmods.com/newvegas/mods/69527 Blender 249b Nif Plugin Tutorial] by '''ACBRadio''' (Mod Description is tutorial with images).
 +
:* See also [[#Blender Mesh Editor|Blender Mesh Editor]] section for other tutorials and tips, such as how to clear the initial screen for loading a '''NIF''' file.
 +
* [https://vvvv.org/contribution/dds-converter DDS Converter 1.4] (freeware).  Convert JPG,TGA,PNG to DDS using NVIDIA Texture Tools 2.0 with CUDA Acceleration.  (Optionally resizes with [https://imagemagick.org/index.php Imagemagick]'s "Convert" feature (freeware).)
 
* [http://www.mwgfx.co.uk/programs/dxtbmp.htm DXTBmp Texture Tool] (freeware).  Images can be passed to any Paint program for editing in 24 bit and then re-imported and saved in any of the 16/24/32 bit formats.  Transparency (Alpha) channel of textures can be viewed and edited separately from the main image.
 
* [http://www.mwgfx.co.uk/programs/dxtbmp.htm DXTBmp Texture Tool] (freeware).  Images can be passed to any Paint program for editing in 24 bit and then re-imported and saved in any of the 16/24/32 bit formats.  Transparency (Alpha) channel of textures can be viewed and edited separately from the main image.
 
* [http://www.gimp.org/ GIMP: GNU Image Manipulation Program] (freeware.) A cross-platform image (texture) editor available for GNU/Linux, OS X, Windows and more operating systems.  Provides extensions through integration with many programming languages including '''Scheme, Python, Perl,''' and more.  The result is a high level of customization as demonstrated by the large number of scripts and plug-ins created by the community.  
 
* [http://www.gimp.org/ GIMP: GNU Image Manipulation Program] (freeware.) A cross-platform image (texture) editor available for GNU/Linux, OS X, Windows and more operating systems.  Provides extensions through integration with many programming languages including '''Scheme, Python, Perl,''' and more.  The result is a high level of customization as demonstrated by the large number of scripts and plug-ins created by the community.  
Line 110: Line 116:
 
::* Update parallax settings - change parallax values in shaders
 
::* Update parallax settings - change parallax values in shaders
 
::* Update MOPP code - update MOPP collision code with the proper working one
 
::* Update MOPP code - update MOPP collision code with the proper working one
 +
* [https://www.nexusmods.com/newvegas/mods/72194?tab=description TexA-DDS] (CL Tool) by '''Kuzja80'''.  Automatic tool for alignment and resizing textures (optimization) for any game.
 +
:* Supports all DDS formats (except some DX12)
 +
:* Support for 16k textures
 +
:* Fine correcting size mismatch
 +
:* Option to regenerate or not, mipmaps for all textures.  By default - mipmaps generate only if source texture contains it.
 
* [http://www.buckarooshangar.com/flightgear/tut_dds.html Working with DDS/DXT Files] (HTML article) by '''Gary "Buckaroo" Neely'''.
 
* [http://www.buckarooshangar.com/flightgear/tut_dds.html Working with DDS/DXT Files] (HTML article) by '''Gary "Buckaroo" Neely'''.
  
Line 115: Line 126:
 
* [http://www.nexusmods.com/skyrim/mods/4328/? BAIN Archive Tools - BAT] by '''Surazal'''
 
* [http://www.nexusmods.com/skyrim/mods/4328/? BAIN Archive Tools - BAT] by '''Surazal'''
 
* [http://www.nexusmods.com/newvegas/mods/64745 BSArch] (freeware) by '''zilav'''.  A command line tool for ''packing'' and unpacking Bethesda archives.  The most complete support setting the correct flags across the various games.
 
* [http://www.nexusmods.com/newvegas/mods/64745 BSArch] (freeware) by '''zilav'''.  A command line tool for ''packing'' and unpacking Bethesda archives.  The most complete support setting the correct flags across the various games.
 +
:* [https://www.nexusmods.com/newvegas/mods/69145/? BSArch BSA BA2 Batch Extractor and Packer for MO2] Batch file to simplify using '''BSArch'''.  Completely configurable and customizable.  NOTE: MO2 instructions are in a separate ReadMe file.
 
* [http://www.nexusmods.com/oblivion/mods/41042/? BSAOpt] (freeware) Tool for extracting the contents of BSA files.  Note this tool unpacks the entire BSA file.  It does not easily allow for unpacking a single file.
 
* [http://www.nexusmods.com/oblivion/mods/41042/? BSAOpt] (freeware) Tool for extracting the contents of BSA files.  Note this tool unpacks the entire BSA file.  It does not easily allow for unpacking a single file.
 
: {{BSA Extraction Warning}}
 
: {{BSA Extraction Warning}}
Line 129: Line 141:
 
=== <span id="Scripting_Tools"></span>Scripting Tools ===
 
=== <span id="Scripting_Tools"></span>Scripting Tools ===
 
* [http://www.cipscis.com/fallout/utilities/validator.aspx CIPSCIS Script Validator] (freeware.) Allows you to quickly indent your script while simultaneously checking it for several basic errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas, but is not "script extender" aware. Includes it's own tutorials.
 
* [http://www.cipscis.com/fallout/utilities/validator.aspx CIPSCIS Script Validator] (freeware.) Allows you to quickly indent your script while simultaneously checking it for several basic errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas, but is not "script extender" aware. Includes it's own tutorials.
* [http://nvse.silverlock.org/ New Vegas Script Extender (NVSE)] Site.
+
* [http://nvse.silverlock.org/ New Vegas Script Extender (NVSE)] ''Silverlock'' Site.  No longer in development.  Use '''xNVSE''', which is fully backwards compatible and with further extensions.
 +
* [https://github.com/xNVSE/NVSE/releases xNVSE] ''GitHub'' Site.  A recommended "forked" extension of the original ''Silverlock'' NVSE version.
 
:* [http://www.gribbleshnibit.com/projects/NVSEDocs/# NVSE Documentation] by '''gribbleshnibit'''.
 
:* [http://www.gribbleshnibit.com/projects/NVSEDocs/# NVSE Documentation] by '''gribbleshnibit'''.
 
:* [http://www.nexusmods.com/newvegas/mods/58277/? JIP LN NVSE plugin] by '''jazzisparis''' and '''LuthienAnarion'''.
 
:* [http://www.nexusmods.com/newvegas/mods/58277/? JIP LN NVSE plugin] by '''jazzisparis''' and '''LuthienAnarion'''.
Line 135: Line 148:
 
:* [http://geck.bethsoft.com/index.php?title=Category:Functions_(JIP) GECK: JIP Functions] (Wiki.)
 
:* [http://geck.bethsoft.com/index.php?title=Category:Functions_(JIP) GECK: JIP Functions] (Wiki.)
 
:* [http://geck.bethsoft.com/index.php?title=Category:Functions_(Lutana) GECK: Lutana (LN) Functions] (Wiki.)
 
:* [http://geck.bethsoft.com/index.php?title=Category:Functions_(Lutana) GECK: Lutana (LN) Functions] (Wiki.)
* [http://www.nexusmods.com/skyrim/mods/39434/? NMM Installer Tutorial - FOMOD - FOMM] by XunAmarox
+
:* [https://www.nexusmods.com/newvegas/mods/70962 Hot Reload (NVSE)] by '''Kormakur'''.  '''xNVSE''' plugin that allows you to edit and save scripts in '''GECK''' and update them live into the game without needing to restart it.
* [http://www.nexusmods.com/skyrim/mods/41440/? NMM ModuleConfig Creator] by Twilightassassin
+
:* [https://www.nexusmods.com/newvegas/mods/71878 SUP NVSE] by '''TommInfinite''', additional '''xNVSE''' HUD and Cursor [https://geckwiki.com/index.php?title=Category:Functions_(SUP_NVSE_Plugin) functions] (at the moment).
* [http://www.nexusmods.com/skyrim/mods/33797/? NMM Tracelog Help] by Thorne67
+
:* [https://www.nexusmods.com/newvegas/mods/70801 Improved Console (NVSE)] by '''Kormakur'''.  '''xNVSE''' plugin that enhances the in-game console's abilities to be able to execute and print results from ALL available script commands. Full scripting support inside console, including creating variables and evaluating '''NVSE''' expressions (arrays, strings) for easy mod development and prototyping. Mouse wheel scrolling included too.
 +
* [http://www.nexusmods.com/skyrim/mods/39434/? NMM Installer Tutorial - FOMOD - FOMM] by '''XunAmarox'''.
 +
* [http://www.nexusmods.com/skyrim/mods/41440/? NMM ModuleConfig Creator] by '''Twilightassassin'''.
 +
* [http://www.nexusmods.com/skyrim/mods/33797/? NMM Tracelog Help] by '''Thorne67'''.
 
* [http://notepad-plus-plus.org/ Notepad++] (freeware.) Source code editor.
 
* [http://notepad-plus-plus.org/ Notepad++] (freeware.) Source code editor.
:* [http://www.nexusmods.com/skyrim/mods/33271/? BAIN User Defined Language for Notepad++] by The_Catman
+
:* [http://www.nexusmods.com/skyrim/mods/33271/? BAIN User Defined Language for Notepad++] by '''The_Catman'''.
 
:* [http://www.nexusmods.com/newvegas/mods/62793/? Notepad++ Syntax Highlighter] (freeware) by '''DoctaSax'''. "Language" Plugin for GECK editor syntax.
 
:* [http://www.nexusmods.com/newvegas/mods/62793/? Notepad++ Syntax Highlighter] (freeware) by '''DoctaSax'''. "Language" Plugin for GECK editor syntax.
 
* [http://www.nexusmods.com/newvegas/mods/67395 RuntimeScriptProfiler] by '''lStewieAl - shadeMe'''.  An NVSE plugin to profile script execution. Ported from '''shadeMe''''s '''Oblivion''' plugin.
 
* [http://www.nexusmods.com/newvegas/mods/67395 RuntimeScriptProfiler] by '''lStewieAl - shadeMe'''.  An NVSE plugin to profile script execution. Ported from '''shadeMe''''s '''Oblivion''' plugin.
 +
* [http://www.nexusmods.com/newvegas/mods/62777 Unlocked MCM - Advanced MCM script templates] by '''DoctaSax'''.  Script templates for complex but lean [http://www.nexusmods.com/newvegas/mods/42507 Mod Configuration Manager (MCM)] menus using array maps. Switches MCM scripting from a static to a dynamic system that can be altered at any time in-game. Minimizes script size and overhead.
  
 
=== <span id="Sound_and_Voice_Tools"></span>Sound and Voice Tools ===
 
=== <span id="Sound_and_Voice_Tools"></span>Sound and Voice Tools ===
Line 147: Line 164:
 
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. (Free) Alternative Lip-sync generator for FNV.
 
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. (Free) Alternative Lip-sync generator for FNV.
 
* [http://www.nexusmods.com/newvegas/mods/61265/? Latest Ogg Vorbis Libraries] by KaneWright. The game uses it for decoding OGG audio format.
 
* [http://www.nexusmods.com/newvegas/mods/61265/? Latest Ogg Vorbis Libraries] by KaneWright. The game uses it for decoding OGG audio format.
 +
* [https://www.nexusmods.com/newvegas/mods/70815 NVVA Synth] Mod by '''Dan Ruta '''.  AI based app for creating new voice lines using neural speech synthesis.
 
* [http://www.nexusmods.com/newvegas/mods/63052/? Silent Voice Generator by Enter_77] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/63052/? Silent Voice Generator by Enter_77] Mod.
  
 
=== <span id="Misc_Other_Tools"></span>Misc Other Tools ===
 
=== <span id="Misc_Other_Tools"></span>Misc Other Tools ===
* [http://darnified.net/forums/community/ DarNified Forum Community] site.  Articles and questions on XML for the User Interface (UI) and Menus, primarily about the Oblivion version of DarNUI but there is a section for FO3.
+
* [http://cs.elderscrolls.com/index.php?title=Category:Oblivion_XML Category:Oblivion XML] Basic Bethesda XML documentation.
 +
:* [http://www.nexusmods.com/newvegas/mods/67470 The HUD Editor] Mod by '''IntenseMute'''.
 +
* [https://taleoftwowastelands.com/viewtopic.php?f=55&t=7284 DarNified UI - TTW] (Mod) Fork of the "no longer supported" original.
 +
:* [https://www.nexusmods.com/newvegas/mods/63560 DarNified UI Font Dummies] (Mod) Allows you to use DarNified UI for Fallout 3 or New Vegas without editing INI files.
 +
:* [http://darnified.net/forums/community/ DarNified Forum Community] site.  Articles and questions on XML for the User Interface (UI) and Menus, primarily about the Oblivion version of DarNUI but there is a section for FO3.
 +
* [https://www.nexusmods.com/newvegas/mods/70364 FNV Diagnostics] by '''Eddoursul'''.  Finds issues in your load order and suggests steps to fix them.  
 
* [http://www.nexusmods.com/newvegas/mods/62796/? Gamesettings profiler] Mod.  Adds intuitive, app-like, modding tool for debugging, testing, profiling, and dumping\printing to file any numeric GMST (gamesettings) records.
 
* [http://www.nexusmods.com/newvegas/mods/62796/? Gamesettings profiler] Mod.  Adds intuitive, app-like, modding tool for debugging, testing, profiling, and dumping\printing to file any numeric GMST (gamesettings) records.
 
* [http://www.nexusmods.com/skyrim/mods/60733/? Tree LOD billboard creator for xLODGen] by zilav
 
* [http://www.nexusmods.com/skyrim/mods/60733/? Tree LOD billboard creator for xLODGen] by zilav
Line 157: Line 180:
 
:* [http://tes5edit.github.io/docs/index.html Tome of xEdit] Current Online manual for all games.
 
:* [http://tes5edit.github.io/docs/index.html Tome of xEdit] Current Online manual for all games.
 
:* [http://www.nexusmods.com/newvegas/mods/38413/? xEdit/FNVEdit Training Manual] (PDF.) Older docs that generally apply to all '''xEdit''' versions for other games.
 
:* [http://www.nexusmods.com/newvegas/mods/38413/? xEdit/FNVEdit Training Manual] (PDF.) Older docs that generally apply to all '''xEdit''' versions for other games.
 +
:* [https://imgur.com/gallery/AscXD Editing records in FNVEdit] (Photo gallery) tutorial using ''creature alteration'' for the example.
 
:* [http://tes5edit.github.io/fopdoc/ Documentation for the xEdit Fallout plugin file formats]
 
:* [http://tes5edit.github.io/fopdoc/ Documentation for the xEdit Fallout plugin file formats]
  
Line 248: Line 272:
 
If you are using the '''GECK''' in ''networked developer mode'' (see [https://geckwiki.com/index.php?title=Version_Control Version Control]) instead of in ''single user mode'' the way that most people use it, and you use ''version control'' to check in your changes, then it automatically puts new things with ID numbers down well below the 16 MB boundary when you check in your changes to the ESM.  The ESP that you are merging in to create or add to your ESM can't have anything with an ID above its 16 MB boundary, but the '''GECK''' will put those IDs in the lower 16 MB of your ESM during check in, so that tends to only be an issue with the ESP that you are merging in, and not an issue with the resultant ESM.
 
If you are using the '''GECK''' in ''networked developer mode'' (see [https://geckwiki.com/index.php?title=Version_Control Version Control]) instead of in ''single user mode'' the way that most people use it, and you use ''version control'' to check in your changes, then it automatically puts new things with ID numbers down well below the 16 MB boundary when you check in your changes to the ESM.  The ESP that you are merging in to create or add to your ESM can't have anything with an ID above its 16 MB boundary, but the '''GECK''' will put those IDs in the lower 16 MB of your ESM during check in, so that tends to only be an issue with the ESP that you are merging in, and not an issue with the resultant ESM.
  
 +
Recommend four changes to the '''GECKPrefs.INI''' file settings from those given on the '''GECKWiki''' [https://geckwiki.com/index.php?title=Version_Control Version Control] page:<br>
 +
<div style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
[WhoCanMerge]<br>
 +
UserAccountName=1
 +
</div>
 +
<div style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
[WhoCanForceCheckout]<br>
 +
UserAccountName=1
 +
</div>
 +
<div style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
[SudoWhoCanMerge]<br>
 +
UserAccountName=1
 +
</div>
 +
<div style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
[SudoWhoCanForceCheckout]<br>
 +
UserAccountName=1
 +
</div>
 +
: You will also probably need to run the GECK as an '''administrator''' account.
 +
 +
<span id="Tip-VCCellsCheckIn"></span>
 +
==== TIP Version Control - Checking in new Cells ====
 +
: Thanks to '''ashtonlp101''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Loaded "new" cells into my worldspace and edited terrain in them. If I just try to "check in" the "LAND" data to '''Version Control''' it pops up with an error saying it is ''"parented to cell data that needs to be checked in"''. But say I edit some Land data in the parts of my world space I've already edited I don't have to check in the cells; I can check in just land data without parent issues,
 +
 +
(Running as an "admin" with '''Version Control''' on NVSE enabled '''GECK''' with '''GECK Extender''', and have changed the one line in the '''GECKExtender.INI''' file as required for '''Version Control''' compatibility: INI needs the line ''bVersionControlMode'' to equal "1".  This just turns off the ability to check if ESMs are an active file, which conflicts with '''Version Control''' functions.)
 +
 +
So testing shows the issue appears to be a glitch in the region editor.  It is supposed to load cells within the region I set, but for whatever reason it did not do that. Upon creating a new region the issue was resolved.
 +
</div>
 +
 +
<span id="Tip-VCNetworkCheck"></span>
 +
 +
==== TIP Version Control - network folders check ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">After setting up for [https://geckwiki.com/index.php?title=Version_Control Version Control], if you open up "Windows File Explorer" and type "\\127.0.0.1" in the address field, do you see your '''Merging''' and '''CheckInBackup''' folders?  If it's blank then you don't have your network folders set up correctly.
 +
:* Go to whatever folder where you created your '''Merging''' and '''CheckInBackup''' sub-folders.
 +
:* <Right click> on your '''Merging''' folder, then <click> on '''Properties'''.
 +
:* <Click> on the '''Sharing''' tab.
 +
::: A window should pop up saying '''Choose people to share with'''.
 +
:* In the  '''Choose people to share with''' window, type in "''Everyone''" (without the quotes) and <click> '''Add'''.
 +
::: ''Everyone'' should now appear in the box under where you typed the name. It should say ''Read'' next to it, under '''Permission Level'''.
 +
:* <Click> on where it says ''Read'', and <click> on ''Read/Write'' to select it.
 +
::: Now it should say ''Read/Write'' next to ''Everyone''.
 +
:* Now <click> on '''Share''' on the lower right, then <click> on '''Done''' when that finishes (shouldn't take long).
 +
:* Repeat these steps for your '''CheckInBackup''' folder.
 +
: When you are done, you should see both your '''Merging''' and your '''CheckInBackup''' folders if you go to address "\\127.0.0.1" in "Windows File Explorer".
 +
</div>
 
16 MB worth of stuff with ID numbers is a HUGE amount of stuff. Experienced modders have never come anywhere close to any limits with it.
 
16 MB worth of stuff with ID numbers is a HUGE amount of stuff. Experienced modders have never come anywhere close to any limits with it.
  
Line 475: Line 553:
 
It is interesting to know that a collider will relate to an object part when it encompasses it, not by the child/parent relation inside a '''Nif'''.
 
It is interesting to know that a collider will relate to an object part when it encompasses it, not by the child/parent relation inside a '''Nif'''.
  
 +
*[https://www.nexusmods.com/newvegas/mods/70791 Editing and combining vanilla armor parts in Blender and then exporting them while cleaning them in Nifskope in a way that works in game] by '''clanky4 '''.  (PDF) tutorial walkthrough of editing/combing vanilla armor parts in blender and exporting them out again. And cleaning them up in Nifskope.
 
*[http://rd.nexusmods.com/newvegas/mods/64390 Different emission Vault Signs tutorial] by '''munnibha'''. Tutorial covering the following points:  
 
*[http://rd.nexusmods.com/newvegas/mods/64390 Different emission Vault Signs tutorial] by '''munnibha'''. Tutorial covering the following points:  
  
Line 486: Line 565:
  
 
&nbsp;
 
&nbsp;
 +
 +
<span id="Tip-AlternateTextures"></span>
 +
==== TIP Alternate Textures ====
 +
: Thanks to '''SGTbayk47''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Swapping to the "alternate textures" on a model is not quite as straightforward as one might think.  There are the "[https://geckwiki.com/index.php?title=SwapTextureOnRef SwapTextureOnRef]" and "[https://geckwiki.com/index.php?title=SwapTextureEx SwapTextureEx]" functions, which work fine in the console ... but not inside an "[https://geckwiki.com/index.php?title=OnActorEquip OnActorEquip]" event as one might assume.
 +
 +
Experiments showed the ''SwapTextureEx'' function worked fine in that event when the Actor loaded after the item was added to their "base inventory" (via "[https://geckwiki.com/index.php?title=BaseAddItem BaseAddItem]" in the mods startup script), but not after using an ''AddItem'' function to equip them.  With that knowledge, changed methods to now only use the equip event to set a variable in the mod's main script, which now contains the ''SwapTextureEx'' functions inside a ''GameMode'' block. This method is now working exactly as intended: the Actor equips the armor, sets the variable in the main mod script, and then this changes the offending textures to the correct ones!
 +
 +
When calling this function on the player, it should be called in both 1st and 3rd person mode ([https://geckwiki.com/index.php?title=IsPC1stPerson IsPC1stPerson]) as needed to affect both player models as they are treated separately.
 +
</div>
  
 
<span id="Tip-BodySlots"></span>
 
<span id="Tip-BodySlots"></span>
 +
 
==== TIP Biped and Equipped Objects ====
 
==== TIP Biped and Equipped Objects ====
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 637: Line 731:
 
</div>  
 
</div>  
 
&nbsp;
 
&nbsp;
 +
 +
<span id="Tip-MultiSceneRoots"></span>
 +
==== TIP Mashing Meshes - Fix multiple SceneRoots ====
 +
: Thanks to '''madmongo''', '''M48A5''', and '''AusAllerWelt''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When attempting to "mashup" a custom mesh such as armor from parts of other different meshes, sometimes it looks just fine in '''NifSkope''', but all "stretchy" and "weird" in the '''GECK'''.
 +
 +
This is usually an indication that the "bone weights" of the "mesh rigging" to the "armature" (AKA "skeleton") are off.  This is primarily avoided by ensuring the outfits you are copying bits from all use the same armature/skeleton.
 +
 +
However, you might end up with multiple ''Scene_Root'' nodes (visible in '''NifSkope''') as the result of combining parts from different mesh NIF files in '''Blender''' (or your mesh editor of choice).  This can happen when you copy not just the specific ''blocks'' but the entire ''NiNode'' between meshes.  There should only be one ''Scene_Root'' node and it should be at the top of the NIF in '''NifScope'''.  Make sure you copy ''branches'' (''NiTriShape''s) from one NIF to the other. You should end up with a single ''Scene_Root'' and all of the various bones and mesh bits under that.
 +
 +
You can correct this problem by ensuring you remove all the armatures in the end ("Remove Branch" in '''NifScope''', or similar command in your mesh editor), and import the desired skeleton again so you only have one ''Scene_Root''/armature. If the mesh still has two after the export to a NIF you can just select the ''NiNode'' (in '''NifSkope''') that contains all parts of the mesh and use "Crop to Branch" and then rename it to ''Scene_Root''.
 +
 +
It's generally better to work on your new meshes in your mesh editor of choice, because you have more control over what you want to do and can also fix weighting issues that may arise by mashing parts of different outfits together. If you plan on making more "mashups", it's best to consider learning how to work with your mesh editor.  It's always better to use the correct tool designed for the task instead of trying to force a different one to do something not intended (like driving screws with a hammer: it will ''probably'' work; just not as well).
 +
</div>
  
 
<span id="Tip-MovableObjects"></span>
 
<span id="Tip-MovableObjects"></span>
Line 744: Line 856:
 
</pre>
 
</pre>
 
In that scenerio: placed a disabled version of the plant ('''GFMaize1''') to work out placement, angles, and scaling.  Then just give the ''placeatme'' plant '''PlacedRef''' (='''MaizePickable''') the disabled one's angle ('''RefAng''') and scale ('''RefScale''') information.
 
In that scenerio: placed a disabled version of the plant ('''GFMaize1''') to work out placement, angles, and scaling.  Then just give the ''placeatme'' plant '''PlacedRef''' (='''MaizePickable''') the disabled one's angle ('''RefAng''') and scale ('''RefScale''') information.
 +
</div>
 +
 +
<span id="Tip-TestCells"></span>
 +
==== TIP Test Cells ====
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">The '''Nukapedia Portal''' has a [https://fallout.fandom.com/wiki/Fallout:_New_Vegas_test_cells FNV Test Cells] page listing various location cell Ref-IDs used by the developers for testing a variety things you may find of use with the console '''coc <Ref-ID>''' command.
 +
 +
A list of the game cell Ref-IDs (minus the wilderness IDs) can also be found [https://fallout.fandom.com/wiki/Fallout:_New_Vegas_cell_ID#Wasteland here].
 
</div>
 
</div>
  
Line 790: Line 913:
 
* If you have water, don't forget to add a water texture in your worldspace. "Data\Textures\Water\wastelandwaterpotomac.dds" tends to work well for many different water types (river, lake, etc). I've never tried to make ocean water with it though.
 
* If you have water, don't forget to add a water texture in your worldspace. "Data\Textures\Water\wastelandwaterpotomac.dds" tends to work well for many different water types (river, lake, etc). I've never tried to make ocean water with it though.
  
* Don't ever use placable water in an exterior cell. You can, but that tends to break things.
+
* Don't ever place water objects in an exterior cell. You can, but that tends to break things.
:* The way that you adjust water height for a cell is to view that cell in your render window, click on that cell to make sure you have it selected, then click on World -> Cells...
+
:* Placed water only sticks to certain Z-axis levels which are the same for every water object in that cell no matter what you do; and there's no way to have water in all 3 levels of the fountain from Dead Money, for example.
:* If you selected the cell you want to modify, then that cell will automatically come up selected in the Cell window. From there you can change the water height and the water type.
+
:* When you add or adjust the height of a placed water object it changes the height of the water level in that cell. So just '''edit cell''' on the cell in question, reset the water level height to 0 and you're (hopefully) sorted.
 +
::* The way that you adjust water height for a cell is to view that cell in your render window, click on that cell to make sure you have it selected, then click on '''World -> Cells'''...
 +
::* If you selected the cell you want to modify, then that cell will automatically come up selected in the Cell window. From there you can change the water height and the water type.
  
 
* If you ever get an error where it says that part of the landscape height is out of bounds, the '''GECK''' will helpfully tell you that it can fix it. It can't. Your landscape is totally hosed at that point. Hopefully you saved an earlier version of your mod to go back to.
 
* If you ever get an error where it says that part of the landscape height is out of bounds, the '''GECK''' will helpfully tell you that it can fix it. It can't. Your landscape is totally hosed at that point. Hopefully you saved an earlier version of your mod to go back to.
Line 903: Line 1,028:
 
</div>
 
</div>
  
Some folks use things like "geological survey data" to generate their heightmaps. See the last couple of threads in the list of tutorials below or poke around on the net.
+
Some folks use things like "geological survey data" to generate their heightmaps. See the last couple of threads in the list of tutorials below (under the [[#Heightmaps|Heightmaps]] section) or poke around on the net.
  
 
If all is well so far, save your heightmap and save your mod. If you didn't restart the GECK earlier, chances are that right here is where the GECK will crash. The second time through this it usually works.
 
If all is well so far, save your heightmap and save your mod. If you didn't restart the GECK earlier, chances are that right here is where the GECK will crash. The second time through this it usually works.
Line 918: Line 1,043:
  
 
<span id="Tip-TerrainEditor"></span>
 
<span id="Tip-TerrainEditor"></span>
 +
 
==== TIP Terrain Editor missing texture ====
 
==== TIP Terrain Editor missing texture ====
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 929: Line 1,055:
 
</pre>
 
</pre>
 
You can safely ignore this message.  There is no such file, and it does not appear to cause any problems.
 
You can safely ignore this message.  There is no such file, and it does not appear to cause any problems.
 +
</div>
 +
 +
<span id="Tip-VWDObjects"></span>
 +
==== TIP VWD objects must be static ====
 +
: Thanks to '''ledzepiv''' of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">[[File:VWDfakeDoor.png|thumbnail|800px|VWD Fake Door Figure]]
 +
Note that objects you wish to smoothly appear in the exterior "mid to far distance" (i.e. VWD objects) must be '''static objects'''.
 +
 +
For example, if you want to add a large "door/gate" to an exterior wall of Fort McCarran, then it has to be a fake '''static''' gate '''object''' placed in front of (but not actually connected to) a "door" activator instead of simply using the usual "door" object consisting of the combined door image and activator.
 +
 +
(See [[:File:VWDfakeDoor.png|VWD Fake Door Figure]].  {{Thumbnail_enlargement_message}})<br clear=all>
 
</div>
 
</div>
  
Line 934: Line 1,075:
 
Reusing cells from one plugin to another is a great time saver, but you have to bear some things in mind.
 
Reusing cells from one plugin to another is a great time saver, but you have to bear some things in mind.
  
:* The Trick is to make your new ESP first, only dependent on the main master file.  Save and close it.
+
:* The Trick is to make your new ESP first, only dependent on the main ''master'' file ("FalloutNV.esm").  Save and close it.
 
:: Best way to make a new ESP file is to drop something in the "Render" window, then save and name the file.  So loading a cell first is needed.  Suggest "Wasteland cell / Good Springs" if you don't have any in particular in mind.  You can of course delete that cell later from your ESP if it's not needed for your purposes.
 
:: Best way to make a new ESP file is to drop something in the "Render" window, then save and name the file.  So loading a cell first is needed.  Suggest "Wasteland cell / Good Springs" if you don't have any in particular in mind.  You can of course delete that cell later from your ESP if it's not needed for your purposes.
 
:* Then open your preferred tool adding the other files from which you want to use assets, (with your new .ESP as the "active file" in GECK).
 
:* Then open your preferred tool adding the other files from which you want to use assets, (with your new .ESP as the "active file" in GECK).
 +
:* If you are creating a "DLC sized" mod with new worldspaces, you definitely need to have the GECK in ''networked developer mode'' instead of the ''single user mode'' that most people use.  (See '''Version Control''' under [[#Tip-ModSize|TIP Limit to Mod Size]].)<br>
 +
<div name="Simulated code box" class="boilerplate metadata" id="Warning Notice"
 +
style="margin:0px 10px 10px 50px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;
 +
/* Remove the next four 'white-space' lines to restore default white-space processing. */
 +
white-space: pre-wrap;      /* css-3 */
 +
white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 +
white-space: -pre-wrap;      /* Opera 4-6 */
 +
white-space: -o-pre-wrap;    /* Opera 7+ */
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Once you have version control set up, make sure that your mod's ESM is up to date both in your ''local files'' and in your ''network share''. Make sure that everything is ''checked in'' to version control and make sure that you have copied the network file version back to your local files.
 +
 +
Make sure that the mod with the worldspace that you want to add is an ESP. This won't work if it's an ESM.  Make sure that this mod doesn't depend on any other ''masters'', or else your new "DLC" mod will end up depending on those ''masters'' as well.
 +
 +
Now would be a really good time to back up all of your files, both ''local'' and ''network share''. If something screws up in the next steps, it can totally trash your mod. This is especially important because I am going from memory here and I've only done this a few times.
 +
 +
With ''networked mode'' / ''version control'' enabled, load up the '''GECK''' with your ESM mod and the ESP mod that contains the worldspace that you want to add to your mod. Go into ''version control'' in the '''GECK''' and it should list all of the things that are in the worldspace ESP as being changed since they are not in your ESM.  However, since you did not create this ESP in the '''GECK''' as a dependent mod from your new "DLC" mod, nothing is ''checked out''. So the first thing you need to do is select everything and select ''check out''. Once everything is ''checked out'', you can turn around and immediately ''check it back in'', which will remove it from the ESP and will place it into the ESM.
 +
 +
You might have to exit the '''GECK''' and restart it in between the ''check out'' and ''check in''.
 +
 +
Since your worldspace mod wasn't created with version control in mind, there are some things that can get screwed up doing this, especially if there are any conversations or script references in the ESP. But you'll get the worldspace and most things into your new "DLC" ESM properly.</div>
 +
 +
At least one novice mod creator has had success using '''Mator''''s [https://www.nexusmods.com/skyrim/mods/69905 Merge Plugins Standalone (MPS)] tool to combine two (or more) worldspace ESP plugins without having to utilize the network developer '''GECK Version Control''' approach.  This process automatically merges the selected plugins into a new plugin, which may then require editing. 
 +
 +
: Note that the resulting combined plugin still needs to conform to the 16MB file limit for "single user mode" plugins.  The '''GECK''' (but only when using '''Version Control''') re-orders the records, and places things that are accessed via offset down lower into your ESM.  Things that aren't accessed via their offset into the file (landscape, landscape textures, navmeshes, quests, etc) are placed afterwards in the file, enabling larger file sizes.  This re-ordering was not stated as an intended initial purpose of MPS, so caution is indicated.  Please take the time to read all the reasons WHY using '''Version Control''' (under [[#Tip-ModSize|TIP Limit to Mod Size]]) is still recommended.
  
At the moment we don't know of any way to duplicate exterior world spaces in GECK.  You can copy cell records between plugins in FNVEdit.  In order to change the FormID of the duplicated Worldspace, you need to work from the bottom up: changing the FormIDs of the children cells before the parent.
+
Finally, you can copy cell records between plugins in FNVEdit.  In order to change the FormID of the duplicated Worldspace, you need to work from the bottom up: changing the FormIDs of the children cells before the parent.
  
 
You can use either FNVEdit or GECK to duplicate interior cells, but this is how to use the GECK. In the GECK, load up the ESP with the cell you want but don't make it "active", while loading the ESP that you want the cell to end up in (i.e. your new ESP) as the "active file". Then just right click on the desired cell in the "source" plugin and select "Duplicate Cell". It will give the duplicate a name of whatever the cell name is plus COPY (or something like that). '''If there are any objects in the source cell that are unique to the mod you are copying it from or come from one of its masters that you don't want to include, delete those out of the copied cell.''' Then save your "active file" ESP. Do not add items to the cell or do anything else other than duplicate it or the GECK can sometimes get confused and it will mess everything up. Just duplicate the cell, remove anything you don't want in your "active file" ESP, and save. That's it. Exit and reload, and maybe rename the cell so that it doesn't have the word COPY in it, and then edit it to your heart's desire.
 
You can use either FNVEdit or GECK to duplicate interior cells, but this is how to use the GECK. In the GECK, load up the ESP with the cell you want but don't make it "active", while loading the ESP that you want the cell to end up in (i.e. your new ESP) as the "active file". Then just right click on the desired cell in the "source" plugin and select "Duplicate Cell". It will give the duplicate a name of whatever the cell name is plus COPY (or something like that). '''If there are any objects in the source cell that are unique to the mod you are copying it from or come from one of its masters that you don't want to include, delete those out of the copied cell.''' Then save your "active file" ESP. Do not add items to the cell or do anything else other than duplicate it or the GECK can sometimes get confused and it will mess everything up. Just duplicate the cell, remove anything you don't want in your "active file" ESP, and save. That's it. Exit and reload, and maybe rename the cell so that it doesn't have the word COPY in it, and then edit it to your heart's desire.
  
The GECK only includes a file as a resource if it's a "master file". If you load an ESP, the GECK won't treat it as a master (unless you have configured the GECK PowerUp to allow ESPs to be "masters"). The GECK will automatically add any master files that the other ESP loaded since those will all be loaded into your new editing session when you load both ESP files.
+
The GECK only includes a file as a resource if it's a "master file". If you load an ESP, the GECK won't treat it as a master (unless you have configured the '''GECK PowerUp''' plugin to allow ESPs to be "masters".  The '''GECK Extender''' allows this as well without configuring). The GECK will automatically add any master files that the other ESP loaded since those will all be loaded into your new editing session when you load both ESP files.
  
 
This will end up including "master files" from the "original ESP" in your "new ESP", so if you don't want them: just delete them from the GECK data screen when you select your mod for loading. However, if you accidentally left in something dependent upon one of those masters in your copied cell, deleting the master will screw up your mod.   
 
This will end up including "master files" from the "original ESP" in your "new ESP", so if you don't want them: just delete them from the GECK data screen when you select your mod for loading. However, if you accidentally left in something dependent upon one of those masters in your copied cell, deleting the master will screw up your mod.   
Line 955: Line 1,120:
  
 
There are a lot of things that FNVEdit and the GECK can both do, they just do it differently. Which one you choose to use is a matter of personal preference, but sometimes one has capabilities the other lacks.
 
There are a lot of things that FNVEdit and the GECK can both do, they just do it differently. Which one you choose to use is a matter of personal preference, but sometimes one has capabilities the other lacks.
 +
 +
<span id="Tip-SafeContainers"></span>
 +
==== TIP Making ''Safe'' containers ====
 +
: Thanks to '''GamerRick''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When you intend to make over an existing Interior cell so it has "safe storage" for the Player, you need to prevent "respawning" (which resets the cell state, including "containers" and encounters, to their original condition after three days by default).  Depending upon your needs, check these points:
 +
* the properties of all "containers" (which includes ''Actors'') to see if they have the ''Respawns'' option enabled, and disable it if supposed to be "safe storage".
 +
* the "ownership" of the Interior cell itself.  (Compare to that of other "player homes", including "factions".)
 +
* set the cell's [https://geckwiki.com/index.php?title=Encounter_Zone Encounter Zone] to one that has the ''Never Resets'' box enabled.  Then, no containers in that cell will ever reset regardless of their individual setting.  But note this also means the state of "defenses" such as traps and creatures will also not reset.
 +
</div>
  
 
== Additional Material ==
 
== Additional Material ==
Line 1,040: Line 1,218:
  
 
You should not generally attempt to change anything about a faction's relationship with another faction.  Instead create a new faction, decide which actors or other factions you want to be members of your new faction, and then establish their relationships with other factions.  If you haven't fully mapped out those inter-faction relationships, things get "surprising".
 
You should not generally attempt to change anything about a faction's relationship with another faction.  Instead create a new faction, decide which actors or other factions you want to be members of your new faction, and then establish their relationships with other factions.  If you haven't fully mapped out those inter-faction relationships, things get "surprising".
 +
 +
If a faction follower is not behaving towards others as expected, consider having it ally with itself.  For example, the game vanilla "follower faction" has got the "player faction" and itself as allies.  This appears to override all previous relationships of that follower and replace them with those of the player.
  
 
[http://fallout.gamepedia.com/Fallout:_New_Vegas_reputations Reputation] is about how members of various factions (including your own "Player" faction) feel about your character.  While related, they are separate issues.  Note you can have both positive and negative reputation (fame/infamy) with a given faction at the same time.  The "fame label" attached to your character is the result of a matrix of that positive/negative range, given in the referenced wiki article.  "Reputation" changes only apply to the Player; not to other Actors.
 
[http://fallout.gamepedia.com/Fallout:_New_Vegas_reputations Reputation] is about how members of various factions (including your own "Player" faction) feel about your character.  While related, they are separate issues.  Note you can have both positive and negative reputation (fame/infamy) with a given faction at the same time.  The "fame label" attached to your character is the result of a matrix of that positive/negative range, given in the referenced wiki article.  "Reputation" changes only apply to the Player; not to other Actors.
Line 1,177: Line 1,357:
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">Animations which play "sounds" have to be set under the "Special Idle" category in order for those respective sounds to get played.  Otherwise the animation will be silent.
 
">Animations which play "sounds" have to be set under the "Special Idle" category in order for those respective sounds to get played.  Otherwise the animation will be silent.
 +
 +
You can just replace the sounds in an existing animation easily using '''NifSkope''':
 +
<div style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
: Thanks to '''theswagnoob4''' for the comment on the Nexus "[https://www.nexusmods.com/newvegas/mods/69773?tab=posts Weapons of The New Millenia and Asurah Reanimation Pack Compatibility Patch]" mod forming the basis of the following:
 +
#  Open '''NifSkope'''.
 +
# Open the ".kf" animation file.
 +
# Navigate to the '''NiTextKeyExtraData''' node.
 +
# Open it by clicking on the arrow on the left.
 +
# Open "Text Keys".
 +
#: In each "Text Key" is a piece of text that defines the reload animation.  In at least one "Text Key" is a piece of text that says something like "Sound: WPN357RevolverCock".
 +
# Rename the "Text Key" to say something like "Sound: WPNPistol10mmReloadOut" (or whatever your replacement sound file is named).
 +
#: This example changes it from the sound of the .357 Revolvers cock sound to the 10mm pistol's "magazine out" noise.  Replace "WPN357RevolverCock" with whatever sound you want.</div>
  
 
If you are adding your own sound files, ensure they conform to the expected format as described under the [[#Music and Sounds|Music_and_Sounds]] section.
 
If you are adding your own sound files, ensure they conform to the expected format as described under the [[#Music and Sounds|Music_and_Sounds]] section.
Line 1,182: Line 1,374:
  
 
<span id="Tip-AnimationSummary"></span>
 
<span id="Tip-AnimationSummary"></span>
 +
 
====TIP Animation Summary====
 
====TIP Animation Summary====
 
: Thanks to '''pluramon''' and '''RoyBatterian''' on the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following summary:
 
: Thanks to '''pluramon''' and '''RoyBatterian''' on the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following summary:
Line 1,296: Line 1,489:
 
* [http://modsreloaded.com/creating-armor-in-fallout-3-with-blender-t3220.html Creating Armor in Fallout 3 with Blender] HTML.
 
* [http://modsreloaded.com/creating-armor-in-fallout-3-with-blender-t3220.html Creating Armor in Fallout 3 with Blender] HTML.
 
* [[Creating_armor_mashups_for_fallout|Creating armor mashups for fallout]] Wiki.
 
* [[Creating_armor_mashups_for_fallout|Creating armor mashups for fallout]] Wiki.
 +
* [https://www.nexusmods.com/newvegas/mods/70791 Editing and combining vanilla armor parts in Blender and then exporting them while cleaning them in Nifskope in a way that works in game] (PDF) Tutorial by '''clanky4'''.
 
* [[How_to_remove_the_BoS_decals_on_custom_Power_Armour|How to remove the BoS decals on custom Power Armour]] Wiki.
 
* [[How_to_remove_the_BoS_decals_on_custom_Power_Armour|How to remove the BoS decals on custom Power Armour]] Wiki.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Standalone Armor] PDF.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Standalone Armor] PDF.
Line 1,305: Line 1,499:
 
* [http://www.youtube.com/watch?v=gOTVt-y_2Ws Photoshop Rusted Metal Texture] Video.
 
* [http://www.youtube.com/watch?v=gOTVt-y_2Ws Photoshop Rusted Metal Texture] Video.
 
* [http://gomedia.com/zine/tutorials/tutorial-using-metal-and-rust-textures-to-destroy-a-design/ Using Metal and Rust textures to destroy a design] HTML.
 
* [http://gomedia.com/zine/tutorials/tutorial-using-metal-and-rust-textures-to-destroy-a-design/ Using Metal and Rust textures to destroy a design] HTML.
 +
 +
<span id="TIP-ArmorSkin"></span>
 +
==== TIP Armor Skin Tones ====
 +
: Thanks to '''AusAllerWelt''' of the Nexus "New Vegas Mod Troubleshooting" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Say you wanted some leather armor variations to have the right sleeve cut off exposing the skin of the arm. Suppose you are using a body replacer such as '''Breeze's Males''': so you edited the meshes to get a right arm piece for them and it worked, but now you're having a different skin tone on that armor itself from the rest of the body.
 +
 +
Most likely you didn't set the correct shaders for skin on the arm.
 +
It has to look like this:<br>
 +
{{filepath:NifSkope Armor Skin Shader settings.png}}
 +
</div>
  
 
<span id="Tip-BoneWeighting"></span>
 
<span id="Tip-BoneWeighting"></span>
Line 1,346: Line 1,554:
 
* [[Rigging_skinning_and_dismemberment|Rigging skinning and dismemberment (aka "meatcaps")]] Wiki article by '''Leakingroof'''.
 
* [[Rigging_skinning_and_dismemberment|Rigging skinning and dismemberment (aka "meatcaps")]] Wiki article by '''Leakingroof'''.
  
<span id="Tip-ClearDisplay"></span>
+
<span id="Tip-BlenderExport"></span>
====TIP Blender Clear the display====
+
====TIP Blender version NIF export====
: Thanks to '''M48A5''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
+
: Thanks to '''EPDGaffney''' and '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
style="margin:0px 10px 10px 30px;border:1px dashed #DAA520;color: lightgray;
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">People complain: "When I open or import a mesh into Blender, often all that shows up is a cube. No mesh, no shape, no object ... just a cube."  The solution is simple, but not obvious.
+
">When attempting to export a model from Blender as a NIF file, you get the "traceback (most recent call last):" error message box (after reporting one or more file lines) saying:
 
+
<pre>"io_scene_nif.utility.nif_utils.NiError: non-uniform scaling not supported.  Workaround: apply size and rotations (CTRL-A) on '<object>'".</pre>
 +
Most probably the issue lies in using a newer version of Blender.  These are only minimally compatible with modding the older "Gamebryo engine" games.
 +
:* You want to save your model from the newer version of Blender using ("'''Save As''' | '''Legacy Mesh Format'''") which outputs a legacy ".blend" file, and then open it in a '''v2.49b''' version of the tool.  (See [[#Image_Tools|Image Tools]] above under the "Programs and Tools" section.)  However, some things don't seem to export properly when you do it this way.  The next bullet point is a possible way around such problems, but more likely you will just have to edit it.  For this reason, many people prefer to create new meshes using '''Blender v2.49b''' since everything there just works (except hairs).
 +
:* If you try to import a mesh from a different format (example: '''fbx''') '''Blender v2.49b''' won't import it properly.  (See [[#Tip-BlenderImport|TIP: Blender Import other Model Formats.]])  Instead import it into a newer version of '''Blender''' and then export as an "OBJ" format file.  At that point you can (in the same newer version of '''Blender''') just "'''Save As''' | '''Legacy Mesh Format'''" which outputs a legacy ".blend" file, as the mesh probably doesn't contain anything fancy that wouldn't export back to a ''legacy blend''.
 +
: Most have a lot of success in general when importing "OBJ" files so they tend to use that as an intermediary format.  But it isn't required when modding images from Gambryo games such as FNV and earlier.  Note that an "OBJ" file is a lot like a "text" or "CSV" file and does '''not''' include a ''UV Map''. You will need to generate a new one after importing before you can apply a texture.  (See  4th bullet point in [[#Tip-NoobBlender|TIP: New to Blender.]])
 +
: You should generally <Ctrl+A> (apply size and rotations) to everything before moving from '''Blender''''s default to another format, or rigging, or any big changes.  It doesn't always matter, but it's a good practice.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
 +
background-color:#fff5f5;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">This needs to be done BEFORE creating "collision" or the scaling and rotation will cause the collision to not export properly.</span>  You can avoid that type of ''scaling'' in the first place by ''scaling'' in '''edit mode''' rather than '''object mode'''.</div>
 +
 
 +
<span id="Tip-ClearDisplay"></span>
 +
====TIP Clear the display====
 +
: Thanks to '''M48A5''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 30px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">People complain: "When I open or import a mesh into Blender, often all that shows up is a cube. No mesh, no shape, no object ... just a cube."  The solution is simple, but not obvious.
 +
 
 
When you first open '''Blender''', move your '''mouse''' to clear the logo.  Then press the "<a>" key twice to highlight everything.  When all the items in the display have a '''pink highlight''' around them, press the "move" (<m>) key.  A small grid will open near where you have the cursor.  Choose any of the boxes (such as the far right one on the top tier) and <Left- click> the "OK" button.  This will clear the display.
 
When you first open '''Blender''', move your '''mouse''' to clear the logo.  Then press the "<a>" key twice to highlight everything.  When all the items in the display have a '''pink highlight''' around them, press the "move" (<m>) key.  A small grid will open near where you have the cursor.  Choose any of the boxes (such as the far right one on the top tier) and <Left- click> the "OK" button.  This will clear the display.
  
Line 1,361: Line 1,587:
  
 
<span id="TIP: BlenderExport"></span>
 
<span id="TIP: BlenderExport"></span>
====TIP Blender Export Settings====
+
====TIP Export Settings====
 
: Thanks to '''AusAllerWelt''' and '''madmongo''' of the Nexus Fallout New Vegas "GECK and Modders" Forum for the basis of the following:
 
: Thanks to '''AusAllerWelt''' and '''madmongo''' of the Nexus Fallout New Vegas "GECK and Modders" Forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 1,379: Line 1,605:
 
</div>
 
</div>
  
<span id="Tip-ImportTexture"></span>
+
<span id="Tip-ImportAnimation"></span>
====TIP Import Texture====
+
==== TIP Import Animations ====
: Thanks to '''AusAllerWelt''' of the "Fallout New Vegas Mod Talk" forum for the basis of the following.
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">* Select your mesh in ''Edit Mode'' and go to ''Windows Type | UV/Image Editor''. (See Fig-1.)<br>
+
">To create your own, start with the wiki article [[Creating_character_animations|Creating Character Animations]].
[[File:BlenderImportTexture Fig-1.jpg|thumb|300px|left|Blender Import Fig-1]]<br clear=all>
+
 
* Under ''Image'' you can select ''Open'' and load your texture ".dds" file. You might have to click ''New'' first for the UV of the object to appear and then load your texture again. (See Fig-2.)<br>
+
A couple of things that aren't documented on that page:
[[File:BlenderImportTexture Fig-2.jpg|thumb|300px|left|Blender Import Fig-2]]<br clear=all>
+
 
* Once you're done with that, you only have to change the ''Draw Type'' for the Render Window to ''Textured'' to display the textures. (See Fig-3.)<br>
+
* The article makes it seem like it's always best to import an existing animation and then modify that. That has been found to be completely unnecessary if you are creating a new animation. If you just want to load up a model and a skeleton and start animating, that works just fine.
[[File:BlenderImportTexture Fig-3.jpg|thumb|200px|left|Blender Import Fig-3]]<br clear=all>
+
 
 +
* The '''GECK''' seems to have some hidden settings when you define an animation. For example, if you are creating a looping animation and you accidentally use '''Blender''''s default tags for looping instead of changing them, the '''GECK''' doesn't recognize these tags and the animation will jerk when it loops. If you fix the animation, the game will still have problems. You have to rename the animation, reassign it in the '''GECK''' so that whatever hidden variables it keeps get set properly, and then it will work. Because of this, always give your animations placeholder names like ''test1.kf'', ''test2.kf'', etc. and only give them their final names once you have them working properly.
 +
 
 +
* Also found that the '''NIF Tools''' for '''Blender''' tend to rotate things by 90 degrees. Before starting any animation design, put the skeleton into the position that you want them to start in and either play that for 15 seconds or loop it. Then you can adjust things like the height and rotation before doing anything else.
 +
 
 +
* Combat animations are tricky. You can replace existing animations easily enough, but creating custom animations that only the player character will use is definitely not straightforward.  But if you just want to play an animation on command, that's simple.
 +
 
 +
* While most animations seem to import easily into Blender, have had some animations that either went into an infinite loop of some sort and locked Blender up while importing, and had other animations that did not work correctly after importing. Most will import ok though.
 
</div>
 
</div>
  
<span id="Tip-BlenderBlackTexture"></span>
+
<span id="Tip-ImportMesh"></span>
 
+
==== TIP Import Mesh ====
==== TIP Imported NIF texture appears Black ====
+
: Thanks to '''madmongo''' and '''AusAllerWelt''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">Mesh files (*.NIF) internally point to the texture file (*.DDS) designed for themThe "vanilla" and DLC game art assets (both mesh and texture files) are stored in "Bethesda Software Archive (BSA)" files instead of under the game "Data" folder tree while using the same folder structure. (Some mod's do this as well.)  As '''Blender''' has no idea what a BSA file is, it can't find the texture file to display it. If '''Blender''' can't find the texture file, it just shows the image with a "black" texture. In order to see the textures for your mesh while looking at it in '''Blender''' you will have to extract the texture file(s) from the BSA into the appropriate folder under "Data\textures" first. Be careful to extract such files to some other location than the game "Data" folder first, and then manually copy them to the correct "Data" folder to avoid accidents.
+
">See the thread [https://forums.nexusmods.com/index.php?/topic/8825198-new-meshes-in-new-vegas/ new meshes in new vegas] for full detailsThis is merely a summary.
 +
 
 +
Assume you have a basic mesh ".blend" file posed for the skeleton you want to make into a female armor.
 +
 
 +
* First of all, your mesh needs to be UV mapped. Don't use materials for this purpose. FNV requires UV mapping for textures.
 +
 
 +
* Second, make sure that you are using '''Blender''' 2.49b. If you are using a newer version of '''Blender''', you can probably make statics with it, but anything requiring rigging isn't going to work very well. If you want things to actually work with FNV, you need to use '''Blender''' 2.49b.
 +
*: You can find the correct version of '''Blender''' here (under [[#Image_Tools|Image Tools]]). It has all of the NIF tools that you'll need.
 +
*: If you used a newer version of '''Blender''' and haven't rigged the mesh yet, advice is to export your mesh as an ".obj" file and then import it into 2.49b as an ".obj". Exporting it from a newer version of '''Blender''' as a ".blend" doesn't work.
 +
 
 +
Ok, so at this point let's assume that you have your mesh in '''Blender''' 2.49b and that all you have is the armor mesh. The way that armor typically works in FNV is that it includes the human body parts underneath. If you have something that completely covers the human body like power armor, then you don't need the human body underneath. If parts of the body are visible, then you need to include the human body underneath with your mesh. Let's take the extreme example of the typical fantasy bikini chain mail armor. Most of what you see is human skin, not the armor, so basically the entire human body needs to be in the mesh. If you have something in between, like say an armored chest piece that covers the chest and back and includes a skirt of some sort, then you only need the human arms and legs. You can include the entire human body mesh, but most outfits don't since it wastes some time in the game engine drawing polygons that all get covered up by the armor mesh anyway, and if the armor mesh fits too tightly then sometimes you can end up with the human body parts clipping through, which looks bad.
 +
 
 +
* So the first step is to import the female upper body mesh, as this includes both the skeleton and the human body parts.
 +
* Once that is done, remove any human body parts that aren't visible. Again, if it's something like power armor that completely covers the body, then you can remove the entire human body mesh. If it's bikini chain mail or something similarly revealing, you may want to leave the entire body there.
 +
*: If you created the armor separately and didn't have a body to mold it around, you may want to adjust your mesh now so that it fits better over the human body.
 +
*: You also need to add "materials" to your armor, otherwise they won't show up in game because they will lack a shader.
 +
* Now, "parent" your armor mesh to the human skeleton (armature). You have a few different options for the bone weights. You can have '''Blender''' create the bone weights when you parent the mesh, which works reasonably well, but '''Blender''' tends to screw up a few things. Once you get some experience with it you'll be able to predict what parts will get screwed up and you'll have to manually fix them afterwards. Another option is to copy the bone weights from the human body mesh. In my experience this works pretty well for tight-fitting armor and clothing, but fails miserably when the armor or clothing isn't so tight-fitting. The third option is to paint all of the weights manually, which works better for solid armor pieces like a chest plate but doesn't work so well for fabrics and such that are supposed to move and deform with the body.
 +
* Once you have the bone weights done, save your blend so that you can always get back to this point. Then export your NIF file, making sure to use the proper settings. You can get the proper settings by clicking "Restore Default Settings for Selected Game" on the "nif export" screen, then go up to the top and click on "Creature" and then "Skin" under "Collision Options", then make sure "Use BSFadeNodeRoot" is ''de-selected''.
 +
* At this point you now have a mesh that is completely invisible in-game. This is due to '''Blender''' never setting the shader flags correctly. You fix these with [[# NifSkope_Mesh_Editor|Nifskope]].
 +
** For regular armor parts, the type needs to be set to SHADER_DEFAULT, and make sure SF_SHADOW_MAP and SF_REMAPABLE_TEXTURES are both checked.
 +
** For the any visible human skin body parts (arms, legs, etc, or the entire body mesh if you included it) the type needs to be set to SHADER_SKIN, and make sure SF_SHADOW_MAP and SF_FACEGEN are both checked.
 +
*: '''Blender''' usually sets the rest of the flags correctly. If your armor has multiple meshes, you will need to fix these flags in every mesh part.
 +
* Create your new armor in the GECK, and you're done.
 +
 
 +
So basically, the TL:DR short summary version:
 +
# Create your mesh
 +
# UV map your mesh
 +
# Import the human body mesh and skeleton
 +
# Remove any human body parts that aren't visible
 +
# Parent your mesh to the skeleton
 +
# Fix the bone weights
 +
# Export to NIF
 +
# Fix the shader flags in '''NifSkope'''
 
</div>
 
</div>
  
<span id="Tip-NoobBlender"></span>
+
<span id="Tip-BlenderImport"></span>
 
+
====TIP Import other Model Formats====
====TIP New to Blender====
+
: Thanks to '''madmongo''' and '''user826''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.
 
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
style="margin:0px 10px 10px 30px;border:1px dashed #DAA520;color: lightgray;
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">The '''Blender Noob to Pro''' tutorial included in the Blender v2.49b package under the [[#Programs and Tools|Programs and Tools]] section is a good resource.
+
">The import options for other formats (example: '''fbx''') or even newer version ".blend" format files into the FNV recommended version of '''Blender (v2.49b)''' are more limited in terms of results than with later versions of '''Blender'''. It is solvable with an annoying two-step process, but by using a later version of '''Blender''' that has an import option for the model format in question you can export it from that version as an "OBJ" file, then read the "OBJ" into '''v2.49b''', which can then export it as a "NIF" file. However, it is worth noting that the NIF tools will fail in all kinds of ways if the model is too complex, so that may be an issue no matter how you do it.
Some tips that maybe aren't obvious when you are starting:
 
* Make sure you select all before exporting. Blender only exports what you have selected. Also, make sure you have the export options set properly for what you are doing. If you are making a static, click on the static button (at the top near the middle) and then below that click on the button for the closest material type (wood, metal, etc). If you are making armor, click on "creature", because armor and human skins and creature skins are all basically the same thing.
 
* Statics and clutter items need a collision mesh. Armor, clothing, and human and creature skins don't need a collision mesh, but they do need to be parented to an armature (aka "a skeleton").
 
* Blender tends to export statics and clutter objects fine, but the version recommended as most compatible for FNV (v2.49b) doesn't seem to export the shader flags correctly for skins (armor, clothing, etc.).  If you don't go into NifSkope and fix the shader flags, your skin thing (armor, clothing, creature, etc) will end up invisible in-game.
 
* There are two different approaches used for UV mapping. One is to start with the texture and fiddle with the mesh to fit it, and the other is to start with the mesh and let Blender give it a UV map (unwrap using "smart projection") and then fiddle with the texture instead. Either way works, and which is easier depends on what you are making.
 
* Start by making simple modifications to things. Here's an easy one to start with. There's a coffee table mesh ("SubCoffeeTableDirty01" in the GECK) that has an upper part and a lower part to it. Edit the mesh to get rid of the upper part, and edit the collision mesh to match, then export it and put it in a mod somewhere.
 
  
There are plenty of good tutorials out there.  Blender is a full-function 3-D editing tool that can be used to make everything from cartoon movies to games, so it's got a lot of stuff in there with lots of examples and tips scattered around the internet.  The Nexus Mods site has a wiki "category" devoted to [http://wiki.nexusmods.com/index.php/Category:Blender Blender] articles. Admittedly, there's a bit of a learning curve involved. But as long as you keep plugging away at it, you'll figure it out. It will seem easy once you get used to it.</div>
+
Some have found that with a three-step process of, after importing the "OBJ" file into '''v2.49b''', they then export it as a '''.3DS''' format file, and then re-import the '''.3DS''' file into '''v2.49b''' before then exporting it as a "NIF" file, they get a better result.
 +
</div>
  
<span id="Tip-BlenderExport"></span>
+
<span id="Tip-ImportTexture"></span>
====TIP Blender version NIF export====
+
====TIP Import Texture====
: Thanks to '''EPDGaffney''' and '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
: Thanks to '''AusAllerWelt''' of the "Fallout New Vegas Mod Talk" forum for the basis of the following.
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">When attempting to export a model from Blender as a NIF file, you get the "traceback (most recent call last):" error message box (after reporting one or more file lines) saying:
+
">* Select your mesh in ''Edit Mode'' and go to ''Windows Type | UV/Image Editor''. (See Fig-1.)<br>
<pre>"io_scene_nif.utility.nif_utils.NiError: non-uniform scaling not supported. Workaround: apply size and rotations (CTRL-A) on '<object>'".</pre>
+
[[File:BlenderImportTexture Fig-1.jpg|thumb|300px|left|Blender Import Fig-1]]<br clear=all>
Most probably the issue lies in using a newer version of Blender.  These are only minimally compatible with modding the older "Gamebryo engine" games.
+
* Under ''Image'' you can select ''Open'' and load your texture ".dds" file. You might have to click ''New'' first for the UV of the object to appear and then load your texture again.  (See Fig-2.)<br>
:* You want to save your model from the newer version of Blender using ("'''Save As''' | '''Legacy Mesh Format'''") which outputs a legacy ".blend" file, and then open it in a '''v2.49b''' version of the tool.  (See [[#Image_Tools|Image Tools]] above under the "Programs and Tools" section.)  However, some things don't seem to export properly when you do it this way.  The next bullet point is a possible way around such problems, but more likely you will just have to edit it.  For this reason, many people prefer to create new meshes using '''Blender v2.49b''' since everything there just works (except hairs).
+
[[File:BlenderImportTexture Fig-2.jpg|thumb|300px|left|Blender Import Fig-2]]<br clear=all>
:* If you try to import a mesh from a different format (example: '''fbx''') '''Blender v2.49b''' won't import it properly. (See [[#Tip-BlenderImport|TIP: Blender Import other Model Formats.]])  Instead import it into a newer version of '''Blender''' and then export as an "OBJ" format file.  At that point you can (in the same newer version of '''Blender''') just "'''Save As''' | '''Legacy Mesh Format'''" which outputs a legacy ".blend" file, as the mesh probably doesn't contain anything fancy that wouldn't export back to a ''legacy blend''.
+
* Once you're done with that, you only have to change the ''Draw Type'' for the Render Window to ''Textured'' to display the textures. (See Fig-3.)<br>
: Most have a lot of success in general when importing "OBJ" files so they tend to use that as an intermediary format.  But it isn't required when modding images from Gambryo games such as FNV and earlier.  Note that an "OBJ" file is a lot like a "text" or "CSV" file and does '''not''' include a ''UV Map''. You will need to generate a new one after importing before you can apply a texture.  (See  4th bullet point in [[#Tip-NoobBlender|TIP: New to Blender.]])
+
[[File:BlenderImportTexture Fig-3.jpg|thumb|200px|left|Blender Import Fig-3]]<br clear=all>
: You should generally <Ctrl+A> (apply size and rotations) to everything before moving from '''Blender''''s default to another format, or rigging, or any big changes.  It doesn't always matter, but it's a good practice.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
+
</div>
background-color:#fff5f5;padding:3px;
+
 
 +
<span id="Tip-BlenderBlackTexture"></span>
 +
==== TIP Import Texture NIF appears Black ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">This needs to be done BEFORE creating "collision" or the scaling and rotation will cause the collision to not export properly.</span> You can avoid that type of ''scaling'' in the first place by ''scaling'' in '''edit mode''' rather than '''object mode'''.</div>
+
">Mesh files (*.NIF) internally point to the texture file (*.DDS) designed for them.  The "vanilla" and DLC game art assets (both mesh and texture files) are stored in "Bethesda Software Archive (BSA)" files instead of under the game "Data" folder tree while using the same folder structure.  (Some mod's do this as well.) As '''Blender''' has no idea what a BSA file is, it can't find the texture file to display it.  If '''Blender''' can't find the texture file, it just shows the image with a "black" texture.  In order to see the textures for your mesh while looking at it in '''Blender''' you will have to extract the texture file(s) from the BSA into the appropriate folder under "Data\textures" first.  Be careful to extract such files to some other location than the game "Data" folder first, and then manually copy them to the correct "Data" folder to avoid accidents.
 +
</div>
  
<span id="Tip-BlenderImport"></span>
+
<span id="Tip-NIFObjectBounds"></span>
====TIP Blender Import other Model Formats====
+
==== TIP Mesh Object Bounds ====
: Thanks to '''madmongo''' and '''user826''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">The import options for other formats (example: '''fbx''') or even newer version ".blend" format files into the FNV recommended version of '''Blender (v2.49b)''' are more limited in terms of results than with later versions of '''Blender'''.  It is solvable with an annoying two-step process, but by using a later version of '''Blender''' that has an import option for the model format in question you can export it from that version as an "OBJ" file, then read the "OBJ" into '''v2.49b''', which can then export it as a "NIF" fileHowever, it is worth noting that the NIF tools will fail in all kinds of ways if the model is too complex, so that may be an issue no matter how you do it.
+
">Question: Do ''object bounds'' even matter?
 +
Noticed that the same meshes in different mods (Like '''Millenia''''s individual releases vs the same weapons in '''Weapons of the New Millenia''') often have different ''object bounds'' in '''GECK'''.  Also, since many weapon mods add silencers, extended mags/barrels, etc., the mesh parameters are bound to change.
 +
 
 +
Answer: Yes and no.  The ''object bounds'' is indirectly related to the ''collision mesh''.  On an old or performance challenged PC this might cause a bit of a performance issue, but on a modern PC it's not likely to matter.
  
Some have found that with a three-step process of, after importing the "OBJ" file into '''v2.49b''', they then export it as a '''.3DS''' format file, and then re-import the '''.3DS''' file into '''v2.49b''' before then exporting it as a "NIF" file, they get a better result.
+
Details: You need the collision mesh to cover enough of the object (e.g. weapon) so that when dropped the object lands somewhat realistically on the ground. Using a simple box will often do the trick though.
</div>
+
 
 +
If, for example, the collision mesh doesn't cover the silencer, then when the weapon drops theoretically the silencer could end up clipping through another object, which would look a little odd.  Most of the time though, when a weapon drops it's just going to land on flat ground and won't be so close to something else that the collision will really matter all that much.
 +
 
 +
In addition to the collision mesh you also have the ''object bounds'', which you can think of as a big box that surrounds the weapon or object.  (See [https://geckwiki.com/index.php?title=Bethsoft_Tutorial_Static_Collections#Blender_and_NifSkope_Considerations Bethsoft Tutorial Static Collections: Blender_and_NifSkope_Considerations].) Basically, once something is inside that box, then the game engine will check its collision mesh against the object's collision mesh. So if you make the bounding box too big the only thing that it will do is make the game engine work a little harder checking collision meshes before it really needs to.
 +
</div>
 +
 
 +
<span id="Tip-NoobBlender"></span>
 +
 
 +
====TIP Noob to Pro Tutorial====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 +
style="margin:0px 10px 10px 30px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">The '''Blender Noob to Pro''' tutorial included in the Blender v2.49b package under the [[#Programs and Tools|Programs and Tools]] section is a good resource.
 +
Some tips that maybe aren't obvious when you are starting:
 +
* Make sure you select all before exporting. Blender only exports what you have selected. Also, make sure you have the export options set properly for what you are doing. If you are making a static, click on the static button (at the top near the middle) and then below that click on the button for the closest material type (wood, metal, etc). If you are making armor, click on "creature", because armor and human skins and creature skins are all basically the same thing.
 +
* Statics and clutter items need a collision mesh. Armor, clothing, and human and creature skins don't need a collision mesh, but they do need to be parented to an armature (aka "a skeleton").
 +
* Blender tends to export statics and clutter objects fine, but the version recommended as most compatible for FNV (v2.49b) doesn't seem to export the shader flags correctly for skins (armor, clothing, etc.).  If you don't go into NifSkope and fix the shader flags, your skin thing (armor, clothing, creature, etc) will end up invisible in-game.
 +
* There are two different approaches used for UV mapping. One is to start with the texture and fiddle with the mesh to fit it, and the other is to start with the mesh and let Blender give it a UV map (unwrap using "smart projection") and then fiddle with the texture instead. Either way works, and which is easier depends on what you are making.
 +
* Start by making simple modifications to things. Here's an easy one to start with. There's a coffee table mesh ("SubCoffeeTableDirty01" in the GECK) that has an upper part and a lower part to it. Edit the mesh to get rid of the upper part, and edit the collision mesh to match, then export it and put it in a mod somewhere.
 +
 
 +
There are plenty of good tutorials out there.  Blender is a full-function 3-D editing tool that can be used to make everything from cartoon movies to games, so it's got a lot of stuff in there with lots of examples and tips scattered around the internet.  The Nexus Mods site has a wiki "category" devoted to [http://wiki.nexusmods.com/index.php/Category:Blender Blender] articles.  Admittedly, there's a bit of a learning curve involved. But as long as you keep plugging away at it, you'll figure it out. It will seem easy once you get used to it.</div>
 +
 
 +
<span id="Tip-Unweighted"></span>
 +
==== TIP Unweighted Vertices ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Sometimes '''Blender''' will not allow you to export your NIF because it has "unweighted vertices".
 +
 
 +
You're probably not doing anything wrong. '''Blender''' just can't figure out how to do the bone weights. ('''Blender''' can be a bit mentally challenged at times.)
 +
 
 +
If you are adding a ''static object'' to an Actor, you probably want all of the vertices on that object to be weighted to one bone anyway, otherwise the static object will deform as the creature/person moves. Select your static mesh (after it has been parented), go into ''weight paint'', find the bone you want to weight it to, set the weight to "1" (100 percent) in '''Blender''' (you might need to ''paint'' at least one vertex at this point), then press <F> to go into "face mode", <A> to "select all", and <Shift-K> to assign the weight value to all selected vertices.
 +
 
 +
If you DO want the object to deform as the creature moves, then you'll have to go in and paint the weights yourself. If it's selecting the entire mesh then chances are '''Blender''' is just getting itself confused and is just saying "Here, I give up. You do it yourself."
 +
 
 +
You might try using '''Blender''''s ''Create from Bone Heat'' option when parenting the object. That might do a better job of assigning weights to the vertices than the bone weight copy scripts. Then again, might not. Depends on the mesh.
 +
 
 +
Another trick is that once you get some experience with '''Blender''', you can start to predict what it's going to do right and what it's likely to screw up. You can sometimes resize or deform your mesh so that '''Blender''' will assign all of the weights properly, then edit the mesh after the weights are assigned to put it back into its original size and shape.
 +
</div>
  
 
=== Collision ===
 
=== Collision ===
Line 1,512: Line 1,822:
 
* [http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.
 
* [http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.
 
* [http://taleoftwowastelands.com/content/fnv-edit-series-converting-fo3-mods Converting F03 mods to TTW & FNV] Wiki.
 
* [http://taleoftwowastelands.com/content/fnv-edit-series-converting-fo3-mods Converting F03 mods to TTW & FNV] Wiki.
* [http://www.loverslab.com/topic/27557-new-clothing-body-style-converter-beta-v089f-10-26-2014/ New Clothing Body Style Converter] Tool, behind a "gated" "Adult (18+) Only site".
+
* [https://www.loverslab.com/topic/27557-new-clothing-body-style-converter-beta-v089f-10-26-2014/?tab=comments#comment-690766 New Clothing Body Style Converter] Tool for converting any armor from one body style to another; behind a "gated" "Adult (18+) Only site".
 
* [http://www.youtube.com/watch?v=NPKrwES9Cb4 FNVEdit Creating compatibility patches for "Brumbeks Inventory Sorting" (BIS) by JaHn3tiC] Video.
 
* [http://www.youtube.com/watch?v=NPKrwES9Cb4 FNVEdit Creating compatibility patches for "Brumbeks Inventory Sorting" (BIS) by JaHn3tiC] Video.
 
* [http://www.youtube.com/watch?v=z61u0bQUmgM FNVEdit Making a Feature (Basic Compatibility) Patch by Roy Batty] Video.
 
* [http://www.youtube.com/watch?v=z61u0bQUmgM FNVEdit Making a Feature (Basic Compatibility) Patch by Roy Batty] Video.
* [http://www.nexusmods.com/newvegas/mods/38413/? FNVEdit Training Manual] PDF. Generally applies to all 'xEdit' versions for other games.  Chapter 7 is on converting FO3 mods to FNV.
+
* [http://tes5edit.github.io/docs/index.html Tome of xEdit] Current Online manual for all game versions.
 +
* [http://www.nexusmods.com/newvegas/mods/38413/? FNVEdit Training Manual] Older version PDF. Generally applies to all 'xEdit' versions for other games.  Chapter 7 is on converting FO3 mods to FNV.
 
* [http://www.grammarly.com/ Grammarly] pretty well regarded grammar checker, with free versions of their plugins for browsers.
 
* [http://www.grammarly.com/ Grammarly] pretty well regarded grammar checker, with free versions of their plugins for browsers.
 
* [http://www.nexusmods.com/newvegas/mods/62261/? How to make a Custom Race] PDF.
 
* [http://www.nexusmods.com/newvegas/mods/62261/? How to make a Custom Race] PDF.
Line 1,631: Line 1,942:
  
 
* [http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel] HTML. (Most recommended.)
 
* [http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel] HTML. (Most recommended.)
 +
* [http://www.nexusmods.com/newvegas/mods/69752 Bringing Life to the Mojave Redux Tutorial] PDF by '''Mindboggles'''. (Techniques and an in-depth look at the process.)
 
* [http://www.nexusmods.com/fallout3/mods/5506 CMF Companion Tutorial] RTF by '''Darkfirebird CMF'''.
 
* [http://www.nexusmods.com/fallout3/mods/5506 CMF Companion Tutorial] RTF by '''Darkfirebird CMF'''.
 
* [http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Forum Thread by '''trilioth'''.
 
* [http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Forum Thread by '''trilioth'''.
Line 1,641: Line 1,953:
 
* [http://www.nexusmods.com/newvegas/mods/61538/? Hairs - Eyes - Races Auto - Patcher] mod by '''Fallout 2AM'''.
 
* [http://www.nexusmods.com/newvegas/mods/61538/? Hairs - Eyes - Races Auto - Patcher] mod by '''Fallout 2AM'''.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Quick 'n' Dirty Merchant] PDF.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Quick 'n' Dirty Merchant] PDF.
* [http://www.nexusmods.com/newvegas/mods/38059/? NCCS - NosCo Companion System] Mod.  Ready-made basic, customizable companions without the "companion wheel" (available as a plugin).  The "companion scripts" make useful examples.  There's a guide that comes with it; it's really a case of loading it up in the GECK, duplicating one of the NCCS NPCs, switching it to one of the premade scripts and dumping it in game.  Ta-da: the basic companion is done and then all you have to do is customise it.
+
* [http://www.nexusmods.com/newvegas/mods/38059/? NCCS - NosCo Companion System] Mod.  Ready-made basic, customizable companions without the "companion wheel" (available as a plugin).  The "companion scripts" make useful examples.  There's a guide that comes with it; it's really a case of loading it up in the GECK, duplicating one of the NCCS NPCs, switching it to one of the premade scripts and dumping it in game.  Ta-da: the basic companion is done and then all you have to do is customize it.
 
* [http://www.nexusmods.com/newvegas/mods/41652/? Rivens Tattoo Flash Sheets] Resource. (Copy-and-paste tattoos.)
 
* [http://www.nexusmods.com/newvegas/mods/41652/? Rivens Tattoo Flash Sheets] Resource. (Copy-and-paste tattoos.)
 +
* [http://www.nexusmods.com/newvegas/mods/43286 Tutorial: Creating a custom PC Race] RTF by '''MagicThize'''.
 
* [http://www.nexusmods.com/newvegas/mods/62261 Tutorial: How to Make a Custom Race] PDF by '''jim_uk'''.
 
* [http://www.nexusmods.com/newvegas/mods/62261 Tutorial: How to Make a Custom Race] PDF by '''jim_uk'''.
* [http://www.nexusmods.com/newvegas/mods/43286 Tutorial: Creating a custom PC Race] RTF by '''MagicThize'''.
 
 
* [http://www.nexusmods.com/newvegas/mods/62328 Tutorial: How to Make a Freakish Custom Race (Tutorial)] PDFs by '''lazyradly, beardofsocrates, and FancyPants'''.  Details on how to create ".EGMs", ".EGTs", proper NIFs, etc.
 
* [http://www.nexusmods.com/newvegas/mods/62328 Tutorial: How to Make a Freakish Custom Race (Tutorial)] PDFs by '''lazyradly, beardofsocrates, and FancyPants'''.  Details on how to create ".EGMs", ".EGTs", proper NIFs, etc.
 +
* [https://www.youtube.com/playlist?list=PLNaHr_zsRvzJ08yUc3V-8UnYKKH_9M5rX Tutorial: New Vegas Companion] Video series by '''gerokeymaster'''.  Series of 17 videos of various lengths.
  
 
<span id="Tip-ActorHeight"></span>
 
<span id="Tip-ActorHeight"></span>
Line 1,677: Line 1,990:
 
When the Actor gets far enough from the '''Target''', they then might need a '''Procedure''' to find somewhere to "hide" (break line-of-sight from the '''Target'''), wait a reasonable amount of time for any followers to stop "searching for enemies", and then resume the "Follow" / "Stalk" AI procedure.
 
When the Actor gets far enough from the '''Target''', they then might need a '''Procedure''' to find somewhere to "hide" (break line-of-sight from the '''Target'''), wait a reasonable amount of time for any followers to stop "searching for enemies", and then resume the "Follow" / "Stalk" AI procedure.
  
AI packages are in a [http://geckwiki.com/index.php?title=AI_Packages_Tab priority list] of "conditions".  ("Conditions" are just variables, often called "flags", you define and set to control things.  A common use is a "do once" variable in a "quest" script.  You are going to need to "set" and "clear" a number of them for this to indicate when to use only one procedure or package at a time.)  The first package that meets all of it's conditions as "true" then is used.  While the [http://geckwiki.com/index.php?title=AddScriptPackage AddScriptPackage] and [http://geckwiki.com/index.php?title=RemoveScriptPackage RemoveScriptPackage] functions might seem appropriate to  generally use, they have major limitations.  (See [[#TIP_Using_AI_Packages|TIP Using AI Packages]] and the linked description for more details on this.)  Just adding a package does not place the package within the [http://geckwiki.com/index.php?title=AI_Packages_Tab priority list]; instead it overrides the list for immediate implementation but goes away once completed and won't matter after that as it's conditions are never evaluated after that point.  Typically you will want to place your package in the [https://geckwiki.com/index.php?title=AI_Packages_Tab AI Packages Tab] list of packages for your "stalker" Actor, set the appropriate "conditional flag variables", and use the "Evaluate Package" (EVP) function to cause the list to be processed again to determine which is now the "first true" package.  Note that you do not use EVP with '''AddScriptPackage'''.  That function performs the equivalent immediately when called.  
+
AI packages are in a [http://geckwiki.com/index.php?title=AI_Packages_Tab priority list] of "conditions".  ("Conditions" are just variables, often called "flags", you define and set to control things.  A common use is a "do once" variable in a "quest" script.  You are going to need to "set" and "clear" a number of them for this to indicate when to use only one procedure or package at a time.)  The first package that meets all of it's conditions as "true" then is used.  While the [http://geckwiki.com/index.php?title=AddScriptPackage AddScriptPackage] and [http://geckwiki.com/index.php?title=RemoveScriptPackage RemoveScriptPackage] functions might seem appropriate to  generally use, they have major limitations.  (See [[#TIP_Using_AI_Packages|TIP Using AI Packages]] and the linked description for more details on this.)  Just adding a package does not place the package within the [http://geckwiki.com/index.php?title=AI_Packages_Tab priority list]; instead it overrides the list for immediate implementation but goes away once completed and won't matter after that as it's conditions are never evaluated after that point. (And an "AddScriptPackage" package seems to be over when the Actor "teleports", such as "catching-up the distance" when following, or between interior and exterior cells.) Typically you will want to place your package in the [https://geckwiki.com/index.php?title=AI_Packages_Tab AI Packages Tab] list of packages for your "stalker" Actor, set the appropriate "conditional flag variables", and use the "Evaluate Package" (EVP) function to cause the list to be processed again to determine which is now the "first true" package.  Note that you do not use EVP with '''AddScriptPackage'''.  That function performs the equivalent immediately when called.  
  
Each '''Package''' needs to consider that it may encounter conditions that require another '''Package''' or '''Procedure''' to take precedence and execute.  You do not simply "resume" an AI package where you left off.  It starts over whatever the current situation is when it gets invoked.  That could be in a completely different cell than where it left off.  This is why it is important to keep your "condition flags" current and updated as things change.
+
Each '''Package''' needs to consider that it may encounter conditions that require another '''Package''' or '''Procedure''' to take precedence and execute.  You do not simply "resume" an AI package where you left off.  It starts over, and the evaluation of which package is "true" starts again, whatever the current situation is when it gets invoked.  That could be in a completely different cell than where it left off.  This is why it is important to keep your "condition flags" current and updated as things change.
  
 
See also:
 
See also:
Line 1,778: Line 2,091:
 
</div>
 
</div>
  
span id="Tip-CustomRaceFaces"></span>
+
<span id="Tip-CustomNPCRace"></span>
 +
==== TIP Custom NPC Race ====
 +
: Thanks to '''Armok74''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">So, you have a custom player race (see [[#Tip-CustomRaceFaces|TIP Custom Race and Skin Textures]]) you would like to add to the NPC population and were hoping there would just be a way to add the new race to a list the game picks from.  But it seems every race in every role is a separate entry and you have to make a new entry for Goodsprings settlers, melee Powder Gangers, Fiends with rifles, Vegas gamblers in suits, armoured Rangers, etc., etc..  Is that the only option there is?
 +
 
 +
: Yep. That's the way. Edit some NPC that uses other NPCs as a template and then add your NPC to the corresponding LeveledCharacter List with the "Var-" prefix in it's ID, for example "Fiend1GunAFNV" goes to "VarFiend1GunNV".
 +
 
 +
The race "ST Robot Race" used a script to give the robot a head and "gloves" for hands, makes them an undroppable quest item and equips them.  Can that script just be attached to NPCs too?
 +
 
 +
<div style="margin:0px 10px 10px 20px;color: lightgray;background-color:#333333;padding:3px;>
 +
That script works for player only. You can write a similar Object script that equips head and gloves on spawn but you don't really need to do that. If you have "Old World Blues" (OWB) just look up how '''trauma suits''' work - they are just NPCs that use non-playable armor.
 +
 
 +
Basically what you need is make Non-Playable variants of head and gloves armors that were added by mod and add them to your NPCs. If the NPC uses a template: just uncheck the "Use Inventory" box and edit the inventory. Then you can add your NPC in the corresponding LeveledCharacter list and that's it.
 +
 
 +
But some NPCs have armor with exposed skin so you'll need to make custom armor. Same process as with head and gloves armor.
 +
 
 +
Usually generic NPCs use Leveled Item lists for armor - you can just replace it with your armor or make a leveled list of your custom armor if you want to.  (See [[#Tip-LeveledLists|TIP Adding Items to Actors aka Leveled Lists]].)</div>
 +
</div>
 +
 
 +
<span id="Tip-CustomRaceFaces"></span>
 
====TIP Custom Race and Faces====
 
====TIP Custom Race and Faces====
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 1,895: Line 2,231:
 
<span id="Tip-NPCMovement"></span>
 
<span id="Tip-NPCMovement"></span>
 
====TIP Making NPCs move aka AI Packages====
 
====TIP Making NPCs move aka AI Packages====
: Thanks to '''madmongo''', '''EPDGaffney''', and '''FiftyTifty''' of the Nexus FalloutNV 'New Vegas GECK and Modders' and '''kingbeast88''' of the 'New Vegas Mod Troubleshooting' sub-forums for the following basic summary of how to get NPCs to move:
+
: Thanks to '''madmongo''', '''EPDGaffney''', '''FiftyTifty''', and '''UnvalidUserName''' of the Nexus FalloutNV 'New Vegas GECK and Modders' and '''kingbeast88''' of the 'New Vegas Mod Troubleshooting' sub-forums for the following basic summary of how to get NPCs to move:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
Line 1,996: Line 2,332:
  
 
The other thing that might stop a companion from moving is if they aren't on a valid '''Navmesh'''. If the area that they are in isn't '''Navmeshed''', then they will just stand there.
 
The other thing that might stop a companion from moving is if they aren't on a valid '''Navmesh'''. If the area that they are in isn't '''Navmeshed''', then they will just stand there.
 +
 +
===== Waves of Actors =====
 +
To get "waves" of Actors to move according to a given package, first place the Actors of each wave where you want them to spawn, keeping them initially disabled.  However, instead of disabling the Actors all individually, have an ''xMarker'' for each "wave"; and for all of the Actors in that wave, set their "enable ref" to be the ''xMarker'' for that "wave".  Have all of the waves' ''xMarkers'' initially set to disabled and then enable each wave ''xMarker'' ref with a quest script at intervals as desired each time if the player is in the correct Cell.  The advantage of this method is that your script has one line for each wave and you don't need to keep track of all of the Actor ref-IDs; only your wave ''xMarker'' ref-IDs and you only have as many of them as you have waves.
 
</div>
 
</div>
  
Line 2,055: Line 2,394:
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">It is generally understood that you cannot add Perks to '''Companions''' in the same way as to the Player.  However, according to a [http://fallout.gamepedia.com/Blog:News/New_Vegas_dev_quote_roundup J.E. Sawyer (FNV project director) Q&A roundup]:
+
">It is generally understood that you cannot add Perks to '''Companions''' in the same way as to the Player.  Bethesda's documentation for '''AddPerk''' says that it works on any actor, which is wrong. You can't add a perk to an NPC (well, technically you can, but it doesn't do anything).  However, according to a [http://fallout.gamepedia.com/Blog:News/New_Vegas_dev_quote_roundup J.E. Sawyer (FNV project director) Q&A roundup]:
 
Quote:
 
Quote:
;<blockquote>
 
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: white;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: white;
 
background-color:#666666;padding:3px;
 
background-color:#666666;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">There is an undocumented feature in F:NV that some modders may find useful. It is the ability to give perks to companions. Or, more accurately, it is the ability to add perks to a special list on the player that will have an effect on any active followers. Here's how it works:
+
">There is an undocumented feature in F:NV that some modders may find useful. It is the ability to give perks to companions. Or, more accurately, it is the ability to add perks to a special list on the player that will have an effect on any active followers.
 +
Here's how it works:
 
<pre>player.addperk XXXXXXXXXXXXX 1</pre>
 
<pre>player.addperk XXXXXXXXXXXXX 1</pre>
 
The "1" means "put this on the special list for companions". Companions will still not store/keep perks, but we give the player a second list of non-displayed perks that only apply to companions. If you want the effect to apply to all companions, you do not need to conditionalize the perk owner conditions for the perk's entry points. If you want the perk to be special for the companion, check the NPC's ID or ref in the perk owner conditions.
 
The "1" means "put this on the special list for companions". Companions will still not store/keep perks, but we give the player a second list of non-displayed perks that only apply to companions. If you want the effect to apply to all companions, you do not need to conditionalize the perk owner conditions for the perk's entry points. If you want the perk to be special for the companion, check the NPC's ID or ref in the perk owner conditions.
Line 2,069: Line 2,408:
  
 
N.B.: The effects will ONLY work while a companion is in the party. So in the above scenario, Raul would no longer have the benefits of RaulShotgunSurgeon if he left the party.</div>
 
N.B.: The effects will ONLY work while a companion is in the party. So in the above scenario, Raul would no longer have the benefits of RaulShotgunSurgeon if he left the party.</div>
;</blockquote>
+
 
 
This tip applies to '''"companions"''' only.  Some test results of using this "feature" are found at the end of this [http://forums.bethsoft.com/topic/1142430-perks-on-companions/?p=16697594&fromsearch=1#entry16697594 Bethsoft 'Perks on Companions' thread].
 
This tip applies to '''"companions"''' only.  Some test results of using this "feature" are found at the end of this [http://forums.bethsoft.com/topic/1142430-perks-on-companions/?p=16697594&fromsearch=1#entry16697594 Bethsoft 'Perks on Companions' thread].
 +
 +
'''Radioactivelad''' contributes:<br>
 +
You may find references on loading screens and wikis to companion's getting a '''Charisma''' based [https://fallout.fandom.com/wiki/Fallout:_New_Vegas_companions#Nerve Nerve] attribute, which was an "engine side" implementation and not something which could be modded.  '''Nerve''' was supposedly completely disabled in a game patch and replaced with the [https://fallout.fandom.com/wiki/Companion_Suite Companion Suite] Perk.  However, '''Charisma''' does indeed still modify how much damage companions do in the vanilla game (1 Charisma seems to be base damage, and every point after that is a bonus).  Supposedly it also increased the "Damage Threshold" (DT) by a percentage, but that doesn't seem to be functional.  Be aware that even the '''Companion Suite''' is not doing everything it's supposed to do according to its description.
 
</div>
 
</div>
  
 
<span id="Tip-FaceFeatures"></span>
 
<span id="Tip-FaceFeatures"></span>
 +
 
====TIP Switching Custom Facial Features====
 
====TIP Switching Custom Facial Features====
 
: Thanks to '''rikkurikku''' and '''Budong''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''rikkurikku''' and '''Budong''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 2,121: Line 2,464:
 
* You can activate dialogue and travel packages by using the [http://geck.bethsoft.com/index.php?title=AddScriptPackage AddScriptPackage] function, usually in a "dialogue result" or "base effect" script.  This has the advantage that a package added in this fashion will take precedence over all other packages until it is done, and terminate as soon as it is able (check the ''Must Complete'' and/or ''Must Reach Location'' flags to prevent premature termination, but be sure you provide the means to determine it '''''IS''''' completed).
 
* You can activate dialogue and travel packages by using the [http://geck.bethsoft.com/index.php?title=AddScriptPackage AddScriptPackage] function, usually in a "dialogue result" or "base effect" script.  This has the advantage that a package added in this fashion will take precedence over all other packages until it is done, and terminate as soon as it is able (check the ''Must Complete'' and/or ''Must Reach Location'' flags to prevent premature termination, but be sure you provide the means to determine it '''''IS''''' completed).
 
* <span style="color: red; background-color:#fff5f5;">An actor can have only one script package active at a time.</span>  When calling the function twice on the same actor, the second package replaces the first one added.  Unless the ''AddScriptPackage'' has some constraint on it (''Must Complete'' and/or ''Must Reach Location''), it will be removed the next time the actor reevaluates his package.
 
* <span style="color: red; background-color:#fff5f5;">An actor can have only one script package active at a time.</span>  When calling the function twice on the same actor, the second package replaces the first one added.  Unless the ''AddScriptPackage'' has some constraint on it (''Must Complete'' and/or ''Must Reach Location''), it will be removed the next time the actor reevaluates his package.
 +
* The ''AddScriptPackage'' can get prematurely terminated when the Actor "teleports", such as when they "catch-up the distance" when following too far behind in exteriors or when moving between interior and exterior cells.  It is preferable to place such packages into the priority list so they get properly evaluated each time the list is processed.
 
* Actors evaluate their packages every 10 seconds. If no packages have true conditions then the actor will just stand there by default, unless they are in combat. So if you want a package to take effect right away, set the conditions for the package and call the [http://geck.bethsoft.com/index.php?title=EvaluatePackage EvaluatePackage] (.EVP) function on the actor: [http://geck.bethsoft.com/index.php?title=EvaluatePackage ActorREF.evp].
 
* Actors evaluate their packages every 10 seconds. If no packages have true conditions then the actor will just stand there by default, unless they are in combat. So if you want a package to take effect right away, set the conditions for the package and call the [http://geck.bethsoft.com/index.php?title=EvaluatePackage EvaluatePackage] (.EVP) function on the actor: [http://geck.bethsoft.com/index.php?title=EvaluatePackage ActorREF.evp].
 
* Sometimes it can be difficult to get the ''AddScriptPackage'' to trigger, or you don't want it to take precedence over all other packages.  The usual method to assign AI packages is to attach the package directly to the actor and give it conditions to trigger or disable activation.  On the NPC/Creature object, the first package from the top of the list ''that has true conditions'' will be the one in effect when packages are evaluated.
 
* Sometimes it can be difficult to get the ''AddScriptPackage'' to trigger, or you don't want it to take precedence over all other packages.  The usual method to assign AI packages is to attach the package directly to the actor and give it conditions to trigger or disable activation.  On the NPC/Creature object, the first package from the top of the list ''that has true conditions'' will be the one in effect when packages are evaluated.
Line 2,127: Line 2,471:
 
* AI Packages attached directly to the actor are activated or deactivated by setting the variables used in the conditional tests.  If they are only in effect in very specific circumstances (such as being in a particular cell or location), then use another variable set in a quest script to determine if the circumstances exist to avoid making the full condition checks unnecessarily.
 
* AI Packages attached directly to the actor are activated or deactivated by setting the variables used in the conditional tests.  If they are only in effect in very specific circumstances (such as being in a particular cell or location), then use another variable set in a quest script to determine if the circumstances exist to avoid making the full condition checks unnecessarily.
 
* If an Actor won't use a particular weapon type, make sure they have a "combat style" appropriate for that weapon in the package; and that the weapon has a "health" greater than zero.  They will always use the "best" weapon in their inventory for the combat situation.
 
* If an Actor won't use a particular weapon type, make sure they have a "combat style" appropriate for that weapon in the package; and that the weapon has a "health" greater than zero.  They will always use the "best" weapon in their inventory for the combat situation.
* If the AI Package has a "schedule" or timing (''start time'' and ''duration'') to it's events, make sure that schedule does not overlap or conflict with any other package assigned to the NPC.  A scheduling conflict will prevent either package from running.
+
* If the AI Package has a "schedule" or timing (''start time'' and ''duration'') to it's events, make sure that schedule does not overlap or conflict with any other package assigned to the Actor.  A scheduling conflict will prevent either package from running.
  
 
* Be aware that for Actors with the "No Low Level Processing (LLP)" flag set: The Actor does not update its AI unless the player is in the same cell as it.
 
* Be aware that for Actors with the "No Low Level Processing (LLP)" flag set: The Actor does not update its AI unless the player is in the same cell as it.
Line 2,154: Line 2,498:
 
Other sections have relevant information to this subject.  The following "Tips" in particular are applicable.
 
Other sections have relevant information to this subject.  The following "Tips" in particular are applicable.
  
* See the [[#Custom NPCs|Custom NPCs]] section regarding scripting "AI Packages".
+
* See the [[#Custom NPCs|Custom NPCs]] section regarding scripting "AI Packages" and "Conversations".
 
:* [[#TIP-CompanionWheel|TIP: Companion Wheel.]]
 
:* [[#TIP-CompanionWheel|TIP: Companion Wheel.]]
 
:* [[#Tip-Hostility|TIP: Hostility between NPCs.]]
 
:* [[#Tip-Hostility|TIP: Hostility between NPCs.]]
 +
:* [[#Tip-InterruptCombat|TIP: Interrupt combat for dialog]]
 
:* [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 
:* [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 
:* [[#Tip-CompanionPerks|TIP: Perks for Companions.]]
 
:* [[#Tip-CompanionPerks|TIP: Perks for Companions.]]
Line 2,177: Line 2,522:
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
* [http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Thread.
 
* [http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Thread.
* [http://www.youtube.com/watch?v=mm_fF4VHhw4&feature=related Crow`s Tutorial on Dialogue] Video.
+
* [http://www.youtube.com/watch?v=mm_fF4VHhw4&feature=related Crow`s FO3 NPC Dialogue Tutorial 1/3] Video series by '''marcus sawyer'''.
 
* [http://www.nexusmods.com/newvegas/mods/63034/? FEEL - Facial Expression Editor (Limited - pfft...) by Fallout 2AM] in-game facial expression editor.
 
* [http://www.nexusmods.com/newvegas/mods/63034/? FEEL - Facial Expression Editor (Limited - pfft...) by Fallout 2AM] in-game facial expression editor.
 
* [http://addons.mozilla.org/en-US/firefox/addon/text-to-voice/ FireFox Text-to-Speech Addon] Firefox plugin w/downloadable audio.
 
* [http://addons.mozilla.org/en-US/firefox/addon/text-to-voice/ FireFox Text-to-Speech Addon] Firefox plugin w/downloadable audio.
 
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. Alternative to either Skyrim or Oblivion Lip-sun generator for FNV.  NOTE: This must be installed under the "Data\Sound\voice\processing" folder.
 
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. Alternative to either Skyrim or Oblivion Lip-sun generator for FNV.  NOTE: This must be installed under the "Data\Sound\voice\processing" folder.
 
* [http://www.youtube.com/watch?v=zK09aDY8FHY GECK: Advanced Dialogue: Topic with multiple sub-topics] Video by Seddon4494.
 
* [http://www.youtube.com/watch?v=zK09aDY8FHY GECK: Advanced Dialogue: Topic with multiple sub-topics] Video by Seddon4494.
* [http://www.youtube.com/watch?v=haHdenMkeOw GECK: Companion Idle Chatter] Video.
+
* [http://www.youtube.com/watch?v=haHdenMkeOw GECK: Companion Idle Chatter] Video by '''Seddon4494'''.
 
* [http://www.moddb.com/mods/explorer/tutorials/geck-custom-holotape-voice GECK: Custom Holotape + Voice] Wiki.
 
* [http://www.moddb.com/mods/explorer/tutorials/geck-custom-holotape-voice GECK: Custom Holotape + Voice] Wiki.
* [http://youtu.be/NWtIRBPVedw GECK: Dialog and Lip Synch] Video.
+
* [http://youtu.be/NWtIRBPVedw GECK: Dialog and Lip Synch Tutorial] Video by '''Seddon4494'''. Covers basics of dialog and lipsynch.
* [http://www.youtube.com/watch?v=NWtIRBPVedw GECK: Dialog and Lip Synch Tutorial] Video by Seddon4494.
+
* [http://geck.bethsoft.com/index.php?title=Quest_and_Dialogue_Tutorial GECK: Quest and Dialogue Tutorial] Wiki.
* [http://www.youtube.com/watch?v=NvQCChzifyQ GECK: Dialogue with Lip Files] Video.
+
* [http://www.youtube.com/watch?v=BQdUQmIdvUc GECK: How to make an NPC with Basic Dialogue] Video by '''MrWoobeee'''.  Covers booth FO3 & FNV.
* [http://geck.bethsoft.com/index.php?title=Quest_and_Dialogue_Tutorial GECK: Dialogue Tutorial] Wiki.
 
* [http://www.youtube.com/watch?v=BQdUQmIdvUc GECK: How to make an NPC with Basic Dialogue] Video.
 
 
* [http://forums.nexusmods.com/index.php?/topic/826465-idle-animation-list/ GECK: Idle Animation List] Forum Thread.
 
* [http://forums.nexusmods.com/index.php?/topic/826465-idle-animation-list/ GECK: Idle Animation List] Forum Thread.
* [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video.
+
* [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video by '''Seddon4494'''. A way of scripting a conversation between two NPCs.
* [http://www.nexusmods.com/newvegas/mods/48239/? Guide to fix the lip sync function in the GECK by Capt Mitch] Text file, using Skyrim Lip-sync tool.  Oblivion Lip-sync tool will work as well, but is not as good as Skyrim's.
+
* [http://www.nexusmods.com/newvegas/mods/48239/? Guide to fix the lip sync function in the GECK] Text file by '''Capt Mitch''', using Skyrim Lip-sync tool.  Oblivion Lip-sync tool will work as well, but is not as good as Skyrim's.
 
* [http://www.nexusmods.com/newvegas/mods/63317/? Lazy Voice Finder - FInd voice assets just you want] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/63317/? Lazy Voice Finder - FInd voice assets just you want] Mod.
 +
* [https://www.nexusmods.com/newvegas/mods/70815/? NVVA Synth] Mod by '''Dan Ruta '''.  AI based app for creating '''new''' voice lines using neural speech synthesis. The app loads models individually trained on voices from several Bethesda games.
 
* [http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal Online Text to Speech Demo] Web site.
 
* [http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal Online Text to Speech Demo] Web site.
* [http://www.youtube.com/watch?v=NvQCChzifyQ Qenosa's Tutorial on Dialogue and NPC creation] Video.
+
 
 +
<span id="Tip-AnimationDialog"></span>
 +
==== TIP Adding Animation/Video to Dialog ====
 +
: Thanks to '''Radioactivelad''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">[https://geckwiki.com/index.php?title=Animation_Tab Animations] in [https://geckwiki.com/index.php?title=Dialogue Dialogue] are simply assigned in the "Response Dialog" box where you entered the dialogue. You can also have the NPC just play a selection of animations based on the emotion assigned to that dialogue.
 +
 
 +
Unfortunately there is no interface to actually tell what the animations are, but you can "preview"  them in the "idle animations" section of AI packages.
 +
 
 +
Also it can be somewhat unpredictable whether the animations will play. Some will play consistently, others sporadically, and some not at all.  Not sure if the "Use Emotion Animation" has any impact on this. It's probably broken.
 +
 
 +
A "cut scene" is a "Bink (BIK)" video file and can similarly be triggered by [https://geckwiki.com/index.php?title=PlayBink PlayBink] in a "Result Script".  Please see the "[[#Import_Custom_Videos|Import Custom Videos]]" entry.  If you have problems with other sounds while playing the video, see the [https://geckwiki.com/index.php?title=FadeSFX FadeSFX] function.
 +
</div>
  
 
<span id="Tip-GenericDialog"></span>
 
<span id="Tip-GenericDialog"></span>
Line 2,240: Line 2,599:
  
 
====TIP Conversation or Quest system====
 
====TIP Conversation or Quest system====
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
Line 2,248: Line 2,607:
  
 
What this means for FNV is that some dialog is spread out through a lot of different quests. If you want to edit '''Doc Mitchell''''s dialog during your initial character creation, for example, that's in the various ''VCGxx'' quests (''VCG01'', ''VCG02'', etc). His healing options are in ''VDoctors'', the same quest as for all of the other wasteland doctors. If you right click on '''Doc Mitchell''''s ID in the GECK and select "Use Info", you'll get a list of topics where his ID is used.
 
What this means for FNV is that some dialog is spread out through a lot of different quests. If you want to edit '''Doc Mitchell''''s dialog during your initial character creation, for example, that's in the various ''VCGxx'' quests (''VCG01'', ''VCG02'', etc). His healing options are in ''VDoctors'', the same quest as for all of the other wasteland doctors. If you right click on '''Doc Mitchell''''s ID in the GECK and select "Use Info", you'll get a list of topics where his ID is used.
 +
 +
In many conversation topics, you can easily see what the choices are at that level, since they will be linked in the Choices box to the right on the Topics tab.  If there aren't any choices, the conversation drops back a level, and here is where it gets really tricky, because if it drops all the way back to the top level then conversation options can come from just about anywhere.  This is nice in a way because you can add a quest and have the NPCs dialog options show up right at their greeting, and as long as the NPC is speaking from the top level, the option will be there.
 +
 +
Things CAN organized so that an NPCs conversations are all in one quest, so it is definitely possible to have a nice, neat, organized system using Bethesda's quest system. But Bethesda and Obsidian don't do it that way. In particular, it's been stated that Obsidian has some sort of weird home-grown conversation system that would then translate conversations into something that the GECK can understand, which seems ridiculously and unnecessarily over-complicated and is probably responsible for some of the madness in some conversation quests (*cough* '''Cass''' *cough*).
 +
 +
This should give you a rough idea of how things are organized. Note that different quests were written by different people and are often structured very differently.  It's not known if it was Obsidian's spiffy dialog system or just someone who had a weird way of doing things, but '''Cass''''s dialog is a spaghetti mess that is difficult to sort through, jumps around all over the place, and is almost impossible to mod because she rarely speaks from the top level, and figuring out where she is in her dialog quests is a royal pain.
 +
 +
There is a ''dialog tree'' option in ''Quests'' that you can use to help figure out exactly how things are organized. It seems to be a bit buggy but can be helpful to figure out where different conversations branch to.  (See also [[#Tip-OCE|TIP Obsidian Conversation Editor aka OCE]].)
  
 
Being part of a ''faction'' and using an existing ''voice type'' is enough to trigger a lot of the dialog in-game. If you only want your Actor to say what you have scripted them to say, and only that, then give them a unique ''voice type''.  Otherwise, generic dialog may get triggered unexpectedly
 
Being part of a ''faction'' and using an existing ''voice type'' is enough to trigger a lot of the dialog in-game. If you only want your Actor to say what you have scripted them to say, and only that, then give them a unique ''voice type''.  Otherwise, generic dialog may get triggered unexpectedly
 +
</div>
 +
 +
<span id="Tip-ConvoBtwnNPCs"></span>
 +
==== TIP Conversations between NPCs ====
 +
: Thanks to '''ashtoplp101''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">
 +
* See the [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video by '''Seddon4494''' once you know how to create and place NPCs into the world.  ('''Seddon4494''' has made other videos on how to do this ([https://www.youtube.com/c/Seddon4494/videos List of Videos]), including [http://www.youtube.com/watch?v=zK09aDY8FHY GECK: Advanced Dialogue: Topic with multiple sub-topics] and [https://www.youtube.com/watch?v=wuJ8AWwGw9c GECK Tutorial - Location Specific Chatter].)
 +
'''Seddon4494''' missed a key "refinement" point in his tutorial.  In the script of the NPCs you want to talk to each other, ADD the following (similar) block in the script attached to the dialog scripts of the respective NPCs, but with ''[https://geckwiki.com/index.php?title=SayToDone OnSayToDone]'', and the ''[https://geckwiki.com/index.php?title=SayTo Sayto]'' parameters shown, or your trigger won't appear to work:
 +
<div style="margin:0px 0px 0px 50px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
Begin OnSayToDone <TopicID>.
 +
  <test01ref>.sayto <test02ref> <testdialog##> 1 1
 +
END
 +
</div>
 +
: Replace the place-holder elements (within <angle brackets>) with your own Editor-IDs.
 +
: The ''SayToDone'' block is triggered when a ''[https://geckwiki.com/index.php?title=Say Say]'' or ''SayTo'' is complete.  Consequently it can also be used to set variables used by conditions enabling other topics, etc., such as a "DoOnce" flag.
 +
: You don't need to do any "EndIfs" because it only runs after the NPC whose script this is in says that specific dialogue topic.  The "END" terminates the entire script at that point.
 +
 +
So a conversation between NPCRef1 and NPCRef2 triggered by the Player entering a TriggerBox (as in the video) would fundamentally be written as:
 +
<div style="margin:0px 0px 0px 50px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
; This script would be attached to the TriggerBox used to control the distance at which <DialogueTopicA> is introduced.
 +
Begin OnTriggerEnter Player
 +
  NPCRef1.SayTo NPCRef2 <DialogueTopicA> 1 1
 +
END
 +
 +
; This is NPCRef1's script
 +
Begin OnSayToDone <DialogueTopicA>
 +
  NPCRef2.SayTo NPCRef1 <DialogueTopicB> 1 1
 +
END
 +
 +
Begin OnSayToDone <DialogueTopicC>
 +
  SetStage <QuestID> 10 ; (or whatever you want to make it do when the conversation is over)
 +
END
 +
 +
;This is NPCRef2's script
 +
Begin OnSayToDone <DialogueTopicB>
 +
  NPCRef1.SayTo NPCRef2 <DialogueTopicC> 1 1
 +
END
 +
</div>
 +
:: Insert additional "OnSayToDone <DialogTopic#>" blocks for the NPCs as needed.
 +
Note that a TriggerBox is not the only way to initiate the conversation, but other than that "triggering" event the same principles apply to other methods of initiation.
 
</div>
 
</div>
  
Line 2,293: Line 2,704:
 
">There are two parts to '''''Voices''''' in topics: the sound file, which is usually a '''.WAV''' or an '''.OGG''' format file, and the lip file ('''.LIP'''). The sound file has (obviously) the spoken sound, and the lip file has the synchronized lip movements. Without the lip file, the NPC's lips won't move as they speak, which is very weird.
 
">There are two parts to '''''Voices''''' in topics: the sound file, which is usually a '''.WAV''' or an '''.OGG''' format file, and the lip file ('''.LIP'''). The sound file has (obviously) the spoken sound, and the lip file has the synchronized lip movements. Without the lip file, the NPC's lips won't move as they speak, which is very weird.
  
The GECK as it ships is missing its lip file generator. Bethesda has updated the GECK a couple of times since its first release and still hasn't bothered to put the lip generator in it.  (They seem to like making things difficult for us.) You can use the one provided with the Oblivion or Skyrim CK installed on your computer: the same lip generator is in the '''\sound\processing''' folder. Just copy that folder to your FNV directory and you're good to go.  Or there is a "third-party" lip generator: [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files )] Mod by '''DingraThePishvaz'''.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
+
The GECK as it ships is missing its lip file generator. Bethesda has updated the GECK a couple of times since its first release and still hasn't bothered to put the lip generator in it.  You can use the one provided with the Oblivion or Skyrim CK installed on your computer: the same lip generator is in the '''\sound\processing''' folder. Just copy that folder to your FNV directory and you're good to go.  Or there is a "third-party" lip generator: [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files )] Mod by '''DingraThePishvaz'''.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
 
background-color:#fff5f5;padding:3px;
 
background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
Line 2,299: Line 2,710:
  
 
Now the question is: where is your sound coming from? If you are going to be speaking into a microphone, just bring up the topic and hit "record" near the bottom of the window. Don't forget to "save" it when you are done. If you don't like what you just said or you made a mistake, flubbed the line, whatever: then don't hit "save", and instead just hit "record" and try another "take". When you click "save" it only saves your last "take". If you have the lip generator installed, the GECK will automatically create both the '''.WAV''' and '''.LIP''' files.
 
Now the question is: where is your sound coming from? If you are going to be speaking into a microphone, just bring up the topic and hit "record" near the bottom of the window. Don't forget to "save" it when you are done. If you don't like what you just said or you made a mistake, flubbed the line, whatever: then don't hit "save", and instead just hit "record" and try another "take". When you click "save" it only saves your last "take". If you have the lip generator installed, the GECK will automatically create both the '''.WAV''' and '''.LIP''' files.
 +
 +
Note:
 +
* if you have multiple sentences in one '''.WAV''' file, the lip sync can be a little off.
 +
* if you use an ellipses ("..."), sometimes the GECK does weird things with lip sync as well.
  
 
If your sound is coming from an already existing '''.WAV''' file, it needs to be in the exact location that the GECK expects it to be in and it has to have the exact name that the GECK wants it to have. If you look down near the bottom of the topic, you'll see the file name that it wants, without the '''.WAV''' extension, which will have the topic name in it and will also have what looks like a bunch of random letters and numbers in it (they aren't random; they are '''hexadecimal'''). Sometimes the easiest way to make sure your file ends up in the right place is to record a quick 2 second ''dummy'' hello or something into the microphone and save it, then go under the '''\sound''' folder and find your mod and voice type (etc.) until you land on the files you just created. If you have to create all of the folders yourself it's very easy to make a mistake. This way (i.e. by recording ''dummy'' files) you make sure that the folder names are right and everything is in the right place. Then delete the '''.WAV''' and '''.LIP''' dummy files that you just generated, and put the actual '''.WAV''' file that you want to use in its place. You can copy the file name from the topic screen and paste that into the file name of the '''.WAV''' file.  The file names are too long and contain too many letters and numbers, so changing the name manually isn't recommended; copy-and-paste is safer.
 
If your sound is coming from an already existing '''.WAV''' file, it needs to be in the exact location that the GECK expects it to be in and it has to have the exact name that the GECK wants it to have. If you look down near the bottom of the topic, you'll see the file name that it wants, without the '''.WAV''' extension, which will have the topic name in it and will also have what looks like a bunch of random letters and numbers in it (they aren't random; they are '''hexadecimal'''). Sometimes the easiest way to make sure your file ends up in the right place is to record a quick 2 second ''dummy'' hello or something into the microphone and save it, then go under the '''\sound''' folder and find your mod and voice type (etc.) until you land on the files you just created. If you have to create all of the folders yourself it's very easy to make a mistake. This way (i.e. by recording ''dummy'' files) you make sure that the folder names are right and everything is in the right place. Then delete the '''.WAV''' and '''.LIP''' dummy files that you just generated, and put the actual '''.WAV''' file that you want to use in its place. You can copy the file name from the topic screen and paste that into the file name of the '''.WAV''' file.  The file names are too long and contain too many letters and numbers, so changing the name manually isn't recommended; copy-and-paste is safer.
  
 
Now you have a '''.WAV''' but no '''.LIP''' file.  You'll need to close the topic and re-open it, as the topic window doesn't refresh when you change the files.  Now you should see a "Y" under your '''.WAV''' near the bottom, and you should see your '''.WAV''' file listed. Select your '''.WAV''' file, click on "from wav" and click on "generate lip file", and the GECK will create the '''.LIP''' file for you. You can also do this to create '''.LIP''' files from any dialog you may have recorded before realizing that you didn't have a working '''.LIP''' generator.
 
Now you have a '''.WAV''' but no '''.LIP''' file.  You'll need to close the topic and re-open it, as the topic window doesn't refresh when you change the files.  Now you should see a "Y" under your '''.WAV''' near the bottom, and you should see your '''.WAV''' file listed. Select your '''.WAV''' file, click on "from wav" and click on "generate lip file", and the GECK will create the '''.LIP''' file for you. You can also do this to create '''.LIP''' files from any dialog you may have recorded before realizing that you didn't have a working '''.LIP''' generator.
 +
</div>
 +
 +
<span id="Tip-LocatingVoices"></span>
 +
 +
==== TIP Locating voiced dialog ====
 +
: Thanks to '''clanky4''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When you want to edit or replace an existing Actor's voice file, how do you go about locating them?
 +
 +
You could try using the [https://www.nexusmod...egas/mods/63317 Lazy Voice Finder].  Its a bit similar to the GECK in that you can load up ESM/ESP files to use dialogue data from.
 +
 +
For example, looking for Boone referring to his "beret":
 +
* Select "File | Open | '''FalloutNV.esm'''", and select the "OK" button.
 +
* Once it is done loading, type "beret" in the search bar and it'll show every dialogue line where an NPC says "beret".
 +
*: One of those is Boone, or more specifically "'''maleuniquecraigboone'''" saying "I'd really like my beret back, please."
 +
* <Right-click> on that selection and then select "Copy asset path" to get the proper location for the dialogue file. In this case:
 +
*: <code>sound\voice\falloutnv.esm\maleuniquecraigboone\vdialoguec_vdialoguecraigb_0015f1dd_1.ogg</code>
 +
*: You can also copy the '''dialogue file''' itself, as well as the '''lip file''', if you wanted those for anything.
 +
* Now from here all you'd need to do is place a '''.wav''' or '''.ogg''' file with the name you just located (e.g. "vdialoguec_vdialoguecraigb_0015f1dd_1") at the same location:
 +
*: <code>sound\voice\falloutnv.esm\maleuniquecraigboone</code>
 +
: to replace that bit of audio.
 +
 +
To replace the written dialogue bit you'd need to do some work in the GECK as outlined elsewhere in this section.
 
</div>
 
</div>
  
 
<span id="TIP-MultipleGreetings"></span>
 
<span id="TIP-MultipleGreetings"></span>
 +
 
====TIP Multiple Greetings====
 
====TIP Multiple Greetings====
 
: Thanks to '''madmongo''' of the Nexus "Fallout New Vegas Mod Talk" forum for the basis of the following:
 
: Thanks to '''madmongo''' of the Nexus "Fallout New Vegas Mod Talk" forum for the basis of the following:
Line 2,320: Line 2,762:
 
If you want them to keep saying a line and not just say it once, another option is to have the line be checked as random. Then they'll pick a random greeting.
 
If you want them to keep saying a line and not just say it once, another option is to have the line be checked as random. Then they'll pick a random greeting.
  
What is also done for more control in cases of multiple greetings like this is use a variable in the NPC's script. Then every time they say a given line, increment the variable so that they'll say the next line. When they reach the last line, reset the variable to zero (or whatever number starts your list). This guarantees that they'll say every line, but if you don't have many greetings and you speak to the NPC often you might notice the cycle. So there are advantages and disadvantages over using this compared to using a random greeting. Of course you don't have to "walk the list".  The variable value is just another condition check that can be set by other scripts under desired circumstances, such as after combat ends.
+
What is also done for more control in cases of multiple greetings like this is use a variable in the NPC's script. Then every time they say a given line, increment the variable so that they'll say the next line. When they reach the last line, reset the variable to zero (or whatever number starts your list). This guarantees that they'll say every line, but if you don't have many greetings and you speak to the NPC often you might notice the cycle. So there are advantages and disadvantages over using this compared to using a random greeting.
 +
 
 +
Of course you don't have to "walk the list".  The variable value is just another condition check that can be set by other scripts under desired circumstances; for example, after combat ends.
  
 
You can also add conditions to make them say different things. For example, you can check the time of day and have them say good morning, good afternoon, or good evening, or if your NPC is less pleasant you can make them say that they hate mornings if the hour is earlier than 10 am. If you are in a particular location, you can have the NPC check what cell they are in or you can check their distance to a particular marker. That way you can make them say "I love the smell of jet fuel in the morning!" every time they are in Nellis, for example.
 
You can also add conditions to make them say different things. For example, you can check the time of day and have them say good morning, good afternoon, or good evening, or if your NPC is less pleasant you can make them say that they hate mornings if the hour is earlier than 10 am. If you are in a particular location, you can have the NPC check what cell they are in or you can check their distance to a particular marker. That way you can make them say "I love the smell of jet fuel in the morning!" every time they are in Nellis, for example.
  
 
Be creative and have fun.
 
Be creative and have fun.
 +
 +
See also TIPs [[#TIP_Random_NPC_Comments|Random NPC Comments]], [[#TIP_Say_Once_use|Say Once use]], and [[#TIP_Standard_Dialog|Standard Dialog]].
 
</div>
 
</div>
  
Line 2,407: Line 2,853:
 
</div>
 
</div>
  
<span id="Tip-SayOnce"></span>
+
<span id="Tip-RecordVoice"></span>
 +
==== TIP Record new voice files ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Adding original voiced dialog from within the '''GECK''' can make the process less painful.  The '''GECK''' will technically record from (accept as input) any standard '''Windows''' audio '''output''' source, but you do have to also have configured '''Windows''' with an '''input''' source (microphone).  See [https://manual.audacityteam.org/man/windows_accessing_the_windows_sound_controls.html#Accessing_the_Settings_dialog Accessing the Windows Sound Controls].
 +
 
 +
What is the '''GECK''' calling your primary sound driver?  Is that your sound card's output?  What happens if you try to record from that?
 +
 
 +
The problem that you are going to run into is that most sound drivers provided by default with '''Windows''' these days don't export the main audio as a device from which the '''GECK''' can record. If your sound driver can do it, then the '''GECK''' can use it.  (Check the audio vendor website for possible alternative drivers.)  It's often referred to in '''Windows''' as some sort of "loopback device" or "mixer" in the sound driver options and it is usually disabled by default.  The device name in '''Windows''' may not be obvious (such as "Stereo Mix" or "Wave Out Mix") so experimentation is usually required.
 +
 
 +
Once you have the '''GECK''' recognizing your audio input, you are ready to record.  But you will still need to create "lip files" as described in [[#TIP_Batch_Lip_file_generation|TIP Batch Lip file generation]].
 +
</div>
 +
 
 +
<span id="Tip-SayOnce"></span>
  
 
==== TIP '''Say Once''' use ====
 
==== TIP '''Say Once''' use ====
Line 2,418: Line 2,880:
  
 
The dialogue tool is pretty versatile.  But it is not very intuitive either and one of the harder things to get proficient with in the '''GECK'''.  However, there is no one set way to do things.  See [[#TIP_Obsidian_Conversation_Editor_aka_OCE|TIP Obsidian Conversation Editor aka OCE]].
 
The dialogue tool is pretty versatile.  But it is not very intuitive either and one of the harder things to get proficient with in the '''GECK'''.  However, there is no one set way to do things.  See [[#TIP_Obsidian_Conversation_Editor_aka_OCE|TIP Obsidian Conversation Editor aka OCE]].
 +
</div>
 +
 +
<span id="Tip-SayToPlayer"></span>
 +
==== TIP SayTo Player ====
 +
: Thanks to '''ashtonlp101''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">You '''must''' include the parameters regarding "headtracking" and "subtitles" after the target "Player" reference <Dialog Topic> for this to compile correctly.  Ex: "DixieRef.SayTo Player DixieTopicMelody 1 1", where the "1 1" enables headtracking and subtitles.
 
</div>
 
</div>
  
 
<span id="Tip-DialogTabs"></span>
 
<span id="Tip-DialogTabs"></span>
 +
 
====TIP Standard Dialog====
 
====TIP Standard Dialog====
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 2,443: Line 2,916:
 
The following is intended to help clarify the above GECKWiki pages:
 
The following is intended to help clarify the above GECKWiki pages:
 
* ''GREETING'' only shows up as an option in the ''topics tab'' of your Quest when you < right-click > on the '''Topics''' tab in the left-hand pane of the GECK "Object Window" under the "Actor Data/Quest" section; and then also select/highlight the ''info response'' field in the top right-hand pane: where it shows a piece of the text and conditions.  Then you go to that small "list box" on the right side labeled "Add Topic"  and < right-click > in there to select from the list of existing ''topics'', or select '''New''' to add a completely new one.  In case it isn't clear: this ''GREETING'' is the NPC's first response when the Player first initiates dialog.  If you enable (check) the "SayOnce" box, it does not appear again '''''for that Actor'''''.  It can appear for another Actor which meets any qualifying conditions.  Do not confuse it with ''Hello'' which is all actors' way to start conversations, but usually only between NPCs.
 
* ''GREETING'' only shows up as an option in the ''topics tab'' of your Quest when you < right-click > on the '''Topics''' tab in the left-hand pane of the GECK "Object Window" under the "Actor Data/Quest" section; and then also select/highlight the ''info response'' field in the top right-hand pane: where it shows a piece of the text and conditions.  Then you go to that small "list box" on the right side labeled "Add Topic"  and < right-click > in there to select from the list of existing ''topics'', or select '''New''' to add a completely new one.  In case it isn't clear: this ''GREETING'' is the NPC's first response when the Player first initiates dialog.  If you enable (check) the "SayOnce" box, it does not appear again '''''for that Actor'''''.  It can appear for another Actor which meets any qualifying conditions.  Do not confuse it with ''Hello'' which is all actors' way to start conversations, but usually only between NPCs.
 +
* Don't use the GOODBYE topic for that dialogue directed to the Player. Its for ending a conversation between two NPC's.  Make your own "Farewell" sort of topic on the '''Topics''' tab.  Anything that is ''in dialog'' between an NPC and the Player belongs on the '''Topic''' tab, but be sure to enable the "GoodBye" checkbox under "Info Details" for your terminating line(s) of dialog.  Use the '''Conversation''' tab for conversations between two NPCs, or random comments that your follower can say.  Think '''Topics''' with the Player involved, and '''Conversations''' strictly for NPCs.
 
* Once created, ''Hello'' and ''GOODBYE'' only show up as dialog options upon < right-click > on the '''Conversation''' tab and select ''Add Topic''.  They should be "top level", with a priority of 5.  ''Hello'' is generally used for conversations between two or more NPCs, without the Player.  ''GOODBYE'' is essential to be able to terminate a conversation.  If in the '''Topics''' tab you do not set up any topic flagged as ''GOODBYE'', the dialog will end with one of those ''GOODBYE''s from the '''Conversation''' tab.
 
* Once created, ''Hello'' and ''GOODBYE'' only show up as dialog options upon < right-click > on the '''Conversation''' tab and select ''Add Topic''.  They should be "top level", with a priority of 5.  ''Hello'' is generally used for conversations between two or more NPCs, without the Player.  ''GOODBYE'' is essential to be able to terminate a conversation.  If in the '''Topics''' tab you do not set up any topic flagged as ''GOODBYE'', the dialog will end with one of those ''GOODBYE''s from the '''Conversation''' tab.
* If you want a character to say a GREETING response (the first thing any Actor will say when activating them) without activating '''Dialogue Mode''' (as in "freeze time, zoom in on their face"), check/enable the GOODBYE flag for the GREETING response.
+
* If you want a character to say a GREETING response (the first thing any Actor will say when activating them) without activating '''Dialogue Mode''' (as in "freeze time, zoom in on their face"), check/enable the GOODBYE flag under the "Info Details" section for the GREETING response.
 
*: If you have multiple such type responses (for instance: for guards that just say "move along" or "I'm watching you") when the Player tries to talk to them and they shouldn't actually go into full dialog mode, make sure to also check the RANDOM flag.  Or you can use a script variable and a condition to check for it to cycle through a bunch of responses.  Just increment the script variable and make sure to wrap it around to the start when you reach the end of the dialog options. You can also set a variable and create an AI package using the appropriate (e.g. "eating") idle so that the Actor will only say "leave me alone, I'm eating" when they are actually eating.
 
*: If you have multiple such type responses (for instance: for guards that just say "move along" or "I'm watching you") when the Player tries to talk to them and they shouldn't actually go into full dialog mode, make sure to also check the RANDOM flag.  Or you can use a script variable and a condition to check for it to cycle through a bunch of responses.  Just increment the script variable and make sure to wrap it around to the start when you reach the end of the dialog options. You can also set a variable and create an AI package using the appropriate (e.g. "eating") idle so that the Actor will only say "leave me alone, I'm eating" when they are actually eating.
 +
*  There is a "conditions" box under your entry in the "Conversation" tab on the "Dialogue" tab in the "Quests" object window.  Please see [[#TIP_Basic_conditional_test_syntax|TIP Basic conditional test syntax]].  However, the "conditions" box fields are structured slightly different enough you might be confused.  The values should be selected from the "pick list" presented to you when you click in each field.<br>{{filepath:GECKDialogConditions.png}}
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 50px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">The fields are:
 +
# the "function name" that retrieves the primary value you want to test.  As shown in the image, this will often be the "ActorID"  from function "GetIsID", to whom you wish to limit the line of dialog.
 +
# whom or what you are comparing the returned first value to; i.e. in this instance "Creature: ZRCZaar".  That is: the "ActorID" returned must be "Creature: ZRCZaar".
 +
# the "type of comparison".  In this instance it is "equals to" ("==").  (IIRC "not equal to" is given as "!=", though some languages use "<>" instead.)
 +
# the "desired result of the comparison" which should be regarded as "True".  A "True" result is always "1", and a "False" result is always "0".  But note that you may want to consider a returned "False" result (i.e. "0.00") to be the desired result making the "condition = true"; in which case you would want "0.00" to be used here.  A classic example is when you are testing that the first field is NOT the same as the second field (e.g. "GetIsID", "==", "Creature: ZRCZaar", "0.00" .)  However, it is a best practice to use the correct "logical condition" (i.e. "!=") instead of the "false" value ("0.00") in such a case because the expectation is a "condition" will be met when "true".  The rule is: whatever makes the most/clearest sense reading the statement when you come back to look at it with fresh eyes in a year.
 +
# the "logical combination with the next line" value, which is always going to be present (and equal "AND" by default), but is only meaningful if there is another condition statement following that one.  The other possible "logical combination" is "OR".  This will always be present and ignored on the very last conditional line.
 +
 +
Each condition line following the first is considered in combination with the preceding tests.
 +
* Each pair of lines connected by "AND" must all be "true" for that combination to be "true". (E.g. Only if line1 AND line2 are both "true", then the combination is "true".  If either one is "false", then the combination "false".)
 +
* Any one line or set of "AND" lines which are then connected by a trailing "OR" will be "true" if either set on either side of the "OR" statement is "true".  (E.g. if line1 OR line2 is either one "true", then the combination is "true".  Only if both are "false" is the combination "false".)
 +
* The entire set of combinations is parsed out and tested before the final result of the statement is determined.  If the results are not what you expect, it's because you are not understanding how the groupings are being parsed.  This is addressed in the referenced "Tip".
 +
 +
It helps immensely if you initially block out such a mixture of "AND/OR" conditions using parentheses to group the "AND" line pairs separately from the "OR" lines and perhaps rearrange their order to simplify the groupings before entering them into such fields.  Use parentheses to group pairs of statements to clarify in which order they should be determined: the most nested levels of parentheses first.
 +
</div>
 
* For '''combat barks''', you need to use the default topics in the COMBAT tab of your quest.
 
* For '''combat barks''', you need to use the default topics in the COMBAT tab of your quest.
 
*: Use the vanilla companion control quest (VNPCFollowers) as a reference if you're wondering how to use each topic.
 
*: Use the vanilla companion control quest (VNPCFollowers) as a reference if you're wondering how to use each topic.
Line 2,454: Line 2,947:
 
* Any dialog that does not have a "conditional test" should be considered as if in the "ELSE" portion of the hypothetical "IF ... ELSEIF ... ELSE ... ENDIF" block.  Again, if more than one response falls into this "condition", only the first will ever get processed.
 
* Any dialog that does not have a "conditional test" should be considered as if in the "ELSE" portion of the hypothetical "IF ... ELSEIF ... ELSE ... ENDIF" block.  Again, if more than one response falls into this "condition", only the first will ever get processed.
 
* Consider the use of a "''token''" (a piece of equipment flagged "unplayable" (and thus "invisible") placed in the Actor's inventory) along with the [http://geckwiki.com/index.php/GetIsID GetIsID] function to indicate which Actor is currently speaking.  (Otherwise, you would need to convert the "Ref-ID" of the Actor into their "Base-ID" using [http://geckwiki.com/index.php/GetBaseObject GetBaseObject] first in order for ''GetIsID'' to work correctly.  But remember: a "Base-ID" is a template for all "Ref-ID" instances of that form.  If more than one Actor in the conversation is based upon the same form, the "Base-ID" is not unique.  [http://geckwiki.com/index.php/GetIsReference GetIsReference] only works for "persistent" references such as unique Actors; not those dynamically spawned from "lists".  Which is why a "''token''"shifted between the speakers works better.)  You can use a "ResultScript (End)" block for each response to transfer the "token" to another Actor with the [http://geckwiki.com/index.php/MoveToContainer MoveToContainer] function.  (An example of the use of a "token" is in the GECKWiki tutorial [http://geckwiki.com/index.php/Adding_an_Options_Menu Adding an Options Menu].  "Tokens" can also be used to store information on an Actor.  See [http://geckwiki.com/index.php/ActorValue ActorValue].)
 
* Consider the use of a "''token''" (a piece of equipment flagged "unplayable" (and thus "invisible") placed in the Actor's inventory) along with the [http://geckwiki.com/index.php/GetIsID GetIsID] function to indicate which Actor is currently speaking.  (Otherwise, you would need to convert the "Ref-ID" of the Actor into their "Base-ID" using [http://geckwiki.com/index.php/GetBaseObject GetBaseObject] first in order for ''GetIsID'' to work correctly.  But remember: a "Base-ID" is a template for all "Ref-ID" instances of that form.  If more than one Actor in the conversation is based upon the same form, the "Base-ID" is not unique.  [http://geckwiki.com/index.php/GetIsReference GetIsReference] only works for "persistent" references such as unique Actors; not those dynamically spawned from "lists".  Which is why a "''token''"shifted between the speakers works better.)  You can use a "ResultScript (End)" block for each response to transfer the "token" to another Actor with the [http://geckwiki.com/index.php/MoveToContainer MoveToContainer] function.  (An example of the use of a "token" is in the GECKWiki tutorial [http://geckwiki.com/index.php/Adding_an_Options_Menu Adding an Options Menu].  "Tokens" can also be used to store information on an Actor.  See [http://geckwiki.com/index.php/ActorValue ActorValue].)
 +
</div>
 +
 +
<span id="Tip-TalkingActivators"></span>
 +
==== TIP Talking Activators ====
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">An "[https://geckwiki.com/index.php?title=Activator activator]" has a "trigger boundary" under the '''NavMesh Generation Import Option''' that gets triggered by ''collision'' with the Player.  A "[https://geckwiki.com/index.php?title=Talking_Activator talking activator]" is an object (such as a radio or intercom) with properties related to the conversation, and can be found, created and edited from the Objects window under [https://geckwiki.com/index.php?title=Category:Actors Actors].
 +
 +
The thing to remember with ''talking activators'' is they are just extensions of Actors ... if you want them to be.  Hence an Actor speaks for the activator, or vice versa (whichever way you want to think about it), but the topic will be found under the Actor.  The confusing part being that a talking activator can also replace an actor.  (You can use any suitable mesh in place of the NPC as the Actor, such as the typical "intercom" or "radio".)  So you can make lines be spoken as if a ghost is talking without a visible point source and you can force a conversation through the "invisible" activator.  The activator just being the focal point of the Player dialogue's "zoom in on the face" feature.  (If you don't want the "zoom in" feature, enable the "Goodbye" box under "Info Details" in the appropriate GREETING response Topic "Conversation" Tab.  See the image under [[#TIP_Standard_Dialog|TIP Standard Dialog]].)
 +
 +
Some examples of how this has been implemented:
 +
* If you want the quest giver to just give orders over a two way radio or intercom, you can just trigger sounds to play. '''Christine Royce''' in '''Dead Money''' gives you orders in a similar fashion.
 +
:: For another "in-game" example, check out the script "REPCONEnterScript": Lines 26 & 27. Its the quest where you meet '''Jason Bright''', but before that '''Chris Haversam''' talks to you through an intercom.
 +
* If you want the "dialog window" to open and "zoom in" on the focal point object, you are going to need something to talk to. The easiest thing might be an invisible NPC. Just create an invisible outfit that uses all body slots. If the conversation starts at a particular location, like walking down a particular hallway, then you can set up the invisible NPC there and have a trigger start the conversation. If the location isn't fixed, it might be easier to have the invisible NPC in a temp holding cell (place a piece of floor to stand on first, and a [https://geckwiki.com/index.php?title=XMarker XMarker] there if you need to be able to move them back) and then move them to the player's location to initiate the conversation with "<ActivatorRef> [https://geckwiki.com/index.php?title=StartConversation StartConversation] <TargetID>, <TopicID>" (e.g. "MyRadioRef StartConversation Player, MyTopicStage01").
 +
 +
* To get an "intercom" to only talk to the Player after the Player has read a note, give the intercom NPC a topic, and under the conditions tab, give a new condition: "Player [https://geckwiki.com/index.php?title=GetHasNote GetHasNote] <YourNoteID> > 0".  Now the intercom will only say that line if the player has the note in his inventory.
 +
:: Please see [[#TIP_Passing_a_Note_to_the_player|TIP Passing a Note to the player]].  The "holotape" or "piece of paper" is just the "artwork/mesh" image associated with the trigger.  You can actually use pretty much anything that has collision.
 +
 +
*  '''jazzisparis''' contributes the following from 2014:<br>
 +
: There is no function that would enable you to retrieve the dialogue's target reference directly. There is, however, a workaround. It requires NVSE version 3 (or newer).
 +
: 1. Create a new Quest, tick ''Start Game Enabled'' and set the ''Processing Delay'' to "1.0".
 +
: 2. Create a new Script, set ''Script Type'' to "Quest", and use the following code:
 +
<div style="margin:0px 10px 10px 50px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
scn DialogueTargetScript<br>
 +
short bScan<br>
 +
ref rActor<br>
 +
ref rTarget<br>
 +
<br>
 +
begin MenuMode 1009<br>
 +
: if bScan == 0
 +
:: set bScan to 1
 +
:: set rActor to GetFirstRef 200 2 0
 +
:: Label 1
 +
:: if IsFormValid rActor
 +
::: if rActor.GetDialogueTarget == player
 +
:::: set rTarget to rActor ; Found the dialogue target (now stored in rTarget).
 +
:::: ; Do something.
 +
:::: Return
 +
::: endif
 +
::: set rActor to TeddyBear01
 +
::: set rActor to GetNextRef
 +
::: GoTo 1
 +
:: endif
 +
: endif
 +
end<br>
 +
<br>
 +
begin GameMode
 +
: if bScan
 +
:: set bScan to 0
 +
:: set rTarget to 0
 +
: endif
 +
end
 +
</div>
 +
: 3. Return to the Quest from step 1 and select this script from the Script dropbox.
 +
 +
: This script runs continuously and retrieves the dialogue target's reference, every time you start a conversation with an NPC.
 
</div>
 
</div>
  
Line 2,468: Line 3,019:
 
</div>
 
</div>
  
=== FaceGen ''Heads Faces Hairs and Helmets'' ===
+
<span id="Tip-DialogLimit"></span>
: This information is compiled from a number of threads, guides, and articles by authors such as '''DrakeTheDragon''', '''throttlekitty''', '''Ghogiel''', '''scanti''', and '''Skree000'''It is an overview at best.
+
==== TIP Topic and response line limits ====
 +
: Thanks to '''ashtonlp101''' and '''ElPascal''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Dialog natively appears to have a limit of 100 characters for player and 149 per response boxBut this limit can be adjusted if you are using the [http://www.nexusmods.com/newvegas/mods/64888/? GECK Extender] NVSE Plugin.
  
* [http://www.nexusmods.com/newvegas/mods/66932 Generating EGM files for Headwear and Hairs] PDF tutorial by '''Roy Batty'''.
+
You'll want to open your '''GECKCustom.ini''' (created in the game folder once '''GECK Extender''' is loaded) and look for:
* [http://www.nexusmods.com/oblivion/mods/9360 The Conformulator] Mod Tool.
+
<pre>
* [[Working with Skyrim head TRIs|Working with Skyrim head TRIs]] (Wiki) for additional tutorials and resources.
+
[Localization]
* [http://oblivion.nexusmods.com/mods/20166 Head06 Resource] Oblivion Mod by '''Throttlekitty''' as a reference example.
+
iExtendedResponseLength=x
 +
iExtendedTopicLength=x
 +
bAllowExtendedText=0
 +
</pre>
 +
 +
Just set ''bAllowExtendedText'' to 1 and set ''response'' and ''topic length'' to something of your liking.  Testing indicates this is a single byte field for all text boxes of both player and NPC, so the upper limits are 255 characters.
 +
</div>
 +
 
 +
=== FaceGen ''Heads Faces Hairs and Helmets'' ===
 +
: This information is compiled from a number of threads, guides, and articles by authors such as '''DrakeTheDragon''', '''throttlekitty''', '''Ghogiel''', '''scanti''', and '''Skree000'''.  It is an overview at best.
 +
 
 +
* [https://www.nexusmods.com/fallout3/mods/4094 FaceGen Exchange] by '''Scanti'''.  Original FO3 version allows you to transfer your character\'s face to and from a Fallout/Oblivion save or a FG file (Facegen Modeller\'s file format).
 +
* [https://www.nexusmods.com/newvegas/mods/36471 FaceGen Exchange for FNV] by '''Scanti'''.  Exchange character faces between save game files.  Be sure to check the comments for clarification on how to use.
 +
* [https://www.nexusmods.com/newvegas/mods/65092 FaceGen Race for FNV] by '''Belthan'''. Improves player and/or NPC faces transferred from '''FaceGen Modeler''' by adding a new race that compensates for Fallout's built-in racial and gender modifiers.
 +
* [https://www.nexusmods.com/newvegas/mods/40995 FaceGen Texture Tutorial] by '''Cut Snake'''. (New race will not be able to show any expressions.)
 +
* [https://www.nexusmods.com/newvegas/mods/66932 Generating EGM files for Headwear and Hairs] PDF tutorial by '''Roy Batty'''.
 +
* [https://oblivion.nexusmods.com/mods/20166 Head06 Resource] Oblivion Mod by '''Throttlekitty''' as a reference example.
 +
* [http://wiki.tesnexus.com/index.php/Porting_hairs_to_Fallout Porting hairs to Fallout]
 +
* [https://www.nexusmods.com/oblivion/mods/9360 The Conformulator] Mod Tool.
 +
* [[Working with Skyrim head TRIs|Working with Skyrim head TRIs]] (Wiki) for additional tutorials and resources.
 +
* [https://www.nexusmods.com/newvegas/mods/71577 Mostly Fixed FaceGen Tints (NV or TTW)] by '''BobG123'''.
 +
<br>
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px solid #00C600;color: green;
 +
background-color:#fff5f5;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">NOTE: Be sure to read the GECKWiki article "[https://geckwiki.com/index.php?title=Export_NPC_Face_Textures Export NPC Face Textures]" first.
 +
</div>
  
 
Hair NIFs usually have two models inside of them, one called Hat and one called NoHat. Adjust your alternate hairstyle's Hat model so that it doesn't clip through any hat you want the Actor to wear.  
 
Hair NIFs usually have two models inside of them, one called Hat and one called NoHat. Adjust your alternate hairstyle's Hat model so that it doesn't clip through any hat you want the Actor to wear.  
Line 2,583: Line 3,167:
  
 
: Note that if your head "accessory" (hat, helmet, piercings, etc.) is not conforming to the head, you may need to "unequip" and "re-equip" the accessory whenever you edit your face so it will reconform.
 
: Note that if your head "accessory" (hat, helmet, piercings, etc.) is not conforming to the head, you may need to "unequip" and "re-equip" the accessory whenever you edit your face so it will reconform.
 +
 +
<span id="ExportNPCFaces"></span>
 +
==== Fixing Mismatched Face and Body Race textures ====
 +
: Thanks to '''QWinn''''s [https://www.nexusmods.com/newvegas/articles/55233 article] of the Nexus Mod [https://www.nexusmods.com/newvegas/mods/65865 Qwinn's Refined FNV Redesigned 3] for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">If you are having the problem where the racial color of your NPC face does not match that of the body (e.g. "Caucasian" face on a "Hispanic" body), you need to export the FaceGen data for your mod.
 +
 +
First of all, make sure you have the '''GECK Extender''' installed, as it will simplify things and prevent the procedure from pausing every time it detects harmless errors; which it will, a lot.
 +
 +
Second read the GECKWiki [https://geckwiki.com/index.php/Export_NPC_Face_Textures Export NPC Face Textures] article to understand the root cause of the problem.  The "face generating" procedure in that article is referenced below.  Be sure to read and heed the "Tips" as well.
 +
 +
The specified "<CTRL+F4>" method in that article seems to dump textures into the "overwrite" folder in your '''Mod Organizer''' installation folder.  This location will likely differ depending upon your manager, but make sure your "output" gets placed somewhere else than into your game "Data" folder, or that you have "FalloutNV.ESM" backed up in case of accidental overwrite.  An alternate way that will take much longer (by hours, but is a very simple solution) is that after loading the plugin you want to export face textures from, click on "Character" at the top of the '''GECK''', then select the global "Export NPC Face Textures" option to generate ALL the faces currently loaded in the '''GECK''' (including those in "FalloutNV.ESM"). 
 +
 +
You'll get a bunch of loose ".dds" and ".tga" files dumped to the output location "Textures" sub-folder structure, where they need to remain in order for them to function correctly.  The ".dds" files are useless and should be deleted.  Now, the ".tgas" do need to be converted to ".dds" using a converter such as [https://vvvv.org/contribution/dds-converter DDS Converter 1.4] with options "DTX1", "Repeat" and "Mipmaps" checked. Once converted, you no longer need the ".tga"s in the final folder structure.
 +
 +
If you used the '''GECK''' global "Character" | "Export NPC Face Textures" option: delete the "FalloutNV.esm" folder that gets generated.  You don't need it (and generating it is what makes that option take much longer).
 +
 +
It's been noted in practice that these only work if the last ESM that the NPC actor record is found in is the one that these textures are created for.  For example: say you have '''Easy Pete''' in the "New Vegas Redesigned 3.esm (NVR3)" folder generated by the above procedure.  If the '''Easy Pete''' record was in another ESM that loads after the "NVR3.esm", it won't find it and he'll be albino again. This is why I say in the "NVR3" instructions to put the "NVR3.esm" after all the other ESM's, though it really only has to be other ESM's that have ''NPC Actor'' records, and you really do need a patch if you have other ESMs with ''NPC Actor'' records that conflict anyway.  (Having the ''NPC Actor'' record in an ESP that overrides the ESM doesn't seem to cause any problems.)  Bear this in mind if your mod's users have related problems.
 +
</div>
  
 
=== Havok Physics ===
 
=== Havok Physics ===
Line 2,902: Line 3,508:
 
(However, not all game data files are '''Master''' and '''Plugin''' files. Textures, meshes, sounds, videos, etc. are all part of the full game. More about these files elsewhere.)
 
(However, not all game data files are '''Master''' and '''Plugin''' files. Textures, meshes, sounds, videos, etc. are all part of the full game. More about these files elsewhere.)
  
'''Master''' files and '''Plugins''' are largely identical in format, but have some important distinctions in practice. The main practical difference is that '''GECK''' will not (natively) create '''Master''' files. Nor will it allow '''Plugin''' files to modify other '''Plugin''' files.  (The '''Extender''' and '''PowerUp''' addons overcome this limitation.)  However, be aware that when you change an ESP to an ESM, you can only do this properly in '''xEdit/FNVEdit''' so that the '''ONAM''' record is generated; otherwise overrides to cells will not work.  Additionally references by packages to ''markers'' and other scripted objects need to be '''''persistent''''' or they will not work in an ESM.  See the [http://geckwiki.com/index.php/Category:Data_Files GECK: Data Files] entry for more.
+
'''Master''' files and '''Plugins''' are largely identical in format, but have some important distinctions in practice. The main practical difference is that '''GECK''' will not (natively) create '''Master''' files. Nor will it allow '''Plugin''' files to modify other '''Plugin''' files.  (The '''Extender''' and '''PowerUp''' addons overcome this limitation.)  However, be aware that when you change an ESP to an ESM, you can only do this properly by setting the file header "master" flag in '''xEdit/FNVEdit''' (though now with the '''GECK Extender''' you don't need to change the extension so long as the "master" flag is set) so that the '''ONAM''' record is generated; otherwise overrides to cells will not work.  Additionally references by packages to ''markers'' and other scripted objects need to be '''''persistent''''' or they will not work in an ESM.  See the [http://geckwiki.com/index.php/Category:Data_Files GECK: Data Files] entry for more.
  
 
It sometimes helps to think of using ".ESM" files to ''add new things'', and ".ESP" files to ''change existing things or modify existing areas''.  Depending on how you create your "ESM", it might not modify existing things in-game. In other words, if there is an existing navmesh, an "ESP" will overwrite that navmesh, but an "ESM" might not. Similarly, if your "ESM" deletes an object (like a rock) it might work as an "ESP" but the rock might still be there as an "ESM".
 
It sometimes helps to think of using ".ESM" files to ''add new things'', and ".ESP" files to ''change existing things or modify existing areas''.  Depending on how you create your "ESM", it might not modify existing things in-game. In other words, if there is an existing navmesh, an "ESP" will overwrite that navmesh, but an "ESM" might not. Similarly, if your "ESM" deletes an object (like a rock) it might work as an "ESP" but the rock might still be there as an "ESM".
Line 2,971: Line 3,577:
 
<span id="HowToSection"></span>
 
<span id="HowToSection"></span>
 
==== How to ''do something'' ====
 
==== How to ''do something'' ====
 +
<span id="HowToAddLoadingScreens"></span>
 +
===== How to add '''''Loading Screens''''' =====
 +
: Thanks to '''jessesDRpepper''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">How do you go about adding your own "loading screen" content to the game?  You know: the images behind the "splash screen" that appear as the game or the main menu or while your "save game" file is loading.
 +
 +
In concept they are simple "texture files" saved as DDS images in DXT1 format.  But getting them to be used by the game is not well documented.  Fortunately now there is the mod [https://www.nexusmods.com/newvegas/mods/69078 DIY Load Screens] (by '''DullCandle29'''), an ESP file which, to use it's own words, provides an:
 +
<blockquote>
 +
Empty template to "add" your own load screens. Not a replacer, nor a wallpaper collection. Simple step by step tutorials for how to do things are in the description. Optional example images provided.
 +
This mod will let you "add" (not replace) up to 1,199 additional loadscreens for you to personalize your loading experience.
 +
</blockquote>
 +
</div>
  
 
<span id="Tip-GMSTs"></span>
 
<span id="Tip-GMSTs"></span>
Line 3,024: Line 3,645:
 
<span id="Tip-InteriorOcclusion"></span>
 
<span id="Tip-InteriorOcclusion"></span>
 
====== Tip Interior Occlusion problem ======
 
====== Tip Interior Occlusion problem ======
: Thanks to '''FiftyTify''' and '''placeholderthesteam''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.
+
: Thanks to '''FiftyTify''', '''Radioactivelad''', and '''placeholderthesteam''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
Line 3,031: Line 3,652:
 
">Problem: Everything looks fine in the editor, but in game there's a really weird occlusion issue where the room isn't drawn when looking into it; and when inside only some parts of the room appear depending on where you stand and where you're looking.
 
">Problem: Everything looks fine in the editor, but in game there's a really weird occlusion issue where the room isn't drawn when looking into it; and when inside only some parts of the room appear depending on where you stand and where you're looking.
  
Solution: You need to regenerate the portals, which handles the occlusion culling via visibility of large proxy cubes.   
+
This is the result of a feature called a [http://geckwiki.com/index.php?title=Room_Bounds_and_Portal_Basics Room Bound]; It's for performance optimization.
 +
 
 +
NOTE: You may need to enable the '''GECK''' "View" menu "Show/Hide" option to "show" additional options before you will see the "Portals and Rooms" option, which is usually hidden away.
 +
 
 +
There's a couple of ways to correct this:
 +
 
 +
* Resize the existing Room Bound to include the new section of your room. (May not be ideal depending on where it is.)
 +
* Add a new Room Bound for your new Room and attach a Portal between it and the existing Room Bound.
 +
* Regenerate the portals, which handles the occlusion culling via visibility of large proxy cubes.   
  
It might happen that a "roombound" on one side extends slightly into the room in question, and one portal alone is not sufficient.  In this case, placing another portal perpendicular to the troublesome one may fix it.
+
It might happen that a "Room Bound" on one side extends slightly into the room in question, and one portal alone is not sufficient.  In this case, placing another portal perpendicular to the troublesome one may fix it.
 
</div>
 
</div>
  
 
<span id="Tip-TransparentActivators"></span>
 
<span id="Tip-TransparentActivators"></span>
 +
 
====== Tip Transparent Activators ======
 
====== Tip Transparent Activators ======
 
: Thanks to '''EPDGaffney''' and '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''EPDGaffney''' and '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 3,083: Line 3,713:
  
 
When you do move the NPC, be sure to "<Ctrl+C>" and "<Ctrl+M>".
 
When you do move the NPC, be sure to "<Ctrl+C>" and "<Ctrl+M>".
 +
</div>
 +
 +
<span id="Tip-RestoreEditedRecs"></span>
 +
=====How to '''''Restore edited records'''''=====
 +
: Thanks to '''dudeapocalypse''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">You edited a record (by accident or on purpose), tested out the change, and decided the result wasn't what you intended and want to restore the original or previous version of the record in your plugin.  But now it's considered an "edit" or "override" record, and you don't want to lose all your other edits and changes.
 +
 +
One possible solution is a '''FNVEdit/xEdit''' script (found under the "apply scripts" option  of the <Right-click> context menu) named "'''Remove identical to previous override records.pas'''" (file found in the "Edit Scripts" subfolder where you installed '''FNVEdit/xEdit''').
 +
 +
You may (depending upon your need) want to comment out the following snippet of code:
 +
<pre>
 +
  // skip records that have elements in child group (WRLD, CELL, DIAL)
 +
  if ElementCount(ChildGroup(e)) <> 0 then
 +
    Exit;
 +
</pre>
 +
Apply the script to the selected record of your plugin once loaded into '''FNVEdit/xEdit'''.  Check the internal comments of the code for instructions.
 
</div>
 
</div>
  
Line 3,144: Line 3,794:
  
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
* [[Fallout_New_Vegas_Music|Fallout New Vegas Music]] Wiki.
+
* [[Fallout_New_Vegas_Music|Fallout New Vegas Music]] Wiki.  Explains the fundamentals of the new music engine of FNV.
 
* [[Replacing_radio_songs|Replacing radio songs]] Wiki.
 
* [[Replacing_radio_songs|Replacing radio songs]] Wiki.
 
* [http://www.youtube.com/watch?v=jjjuwd4JR6U&t=6s GECK Tutorial - Radio Station] by '''Seddon'''.  Video. See [[#TIP-CallingFormat|TIP: Format to call a song]].
 
* [http://www.youtube.com/watch?v=jjjuwd4JR6U&t=6s GECK Tutorial - Radio Station] by '''Seddon'''.  Video. See [[#TIP-CallingFormat|TIP: Format to call a song]].
 
* [http://forums.nexusmods.com/index.php?/topic/274194-tutorial-how-to-create-a-new-radio-station/ GECK Tutorial - How to Create A New Radio Station] by '''DorostheConqueror'''.  Forum post. See [[#TIP-CallingFormat|TIP: Format to call a song]].
 
* [http://forums.nexusmods.com/index.php?/topic/274194-tutorial-how-to-create-a-new-radio-station/ GECK Tutorial - How to Create A New Radio Station] by '''DorostheConqueror'''.  Forum post. See [[#TIP-CallingFormat|TIP: Format to call a song]].
 
* [http://www.freesfx.co.uk/ Free Sound Effects] Web site.
 
* [http://www.freesfx.co.uk/ Free Sound Effects] Web site.
 +
* [http://freesound.org/ FreeSound.org] Web site for sharing 'Creative Commons' licensed sounds (including voices).
 
* [http://great78.archive.org/ The Great 78 Project] Web site.  About 78,000 (and growing) old 78 LP's ranging from 1898 till around some time in the 1950's.  But would-be users need to note the [http://archive.org/about/terms.php Terms of Use] required by the Internet Archive organization.  In short, their material is "free to access" but not particularly "free to distribute", and may be subject to various copyright laws.  Access is granted for scholarship and research purposes only.  It is your responsibility to ensure such legalities are complied with for individual titles.
 
* [http://great78.archive.org/ The Great 78 Project] Web site.  About 78,000 (and growing) old 78 LP's ranging from 1898 till around some time in the 1950's.  But would-be users need to note the [http://archive.org/about/terms.php Terms of Use] required by the Internet Archive organization.  In short, their material is "free to access" but not particularly "free to distribute", and may be subject to various copyright laws.  Access is granted for scholarship and research purposes only.  It is your responsibility to ensure such legalities are complied with for individual titles.
 
* [http://www.nexusmods.com/newvegas/mods/63052/? Silent Voice Generator by Enter_77] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/63052/? Silent Voice Generator by Enter_77] Mod.
Line 3,217: Line 3,868:
 
:* Click "OK", and it will ask: "Create a new form?"; to which you say YES, then make note of the new Form-ID.
 
:* Click "OK", and it will ask: "Create a new form?"; to which you say YES, then make note of the new Form-ID.
 
:* Now when you are in your "Art and Sound" tab (if its a weapon or something) just click on the sound buttons and find your new sound by the new Form-Id you noted.</div>
 
:* Now when you are in your "Art and Sound" tab (if its a weapon or something) just click on the sound buttons and find your new sound by the new Form-Id you noted.</div>
 +
 +
<span id="Tip-Breathing"></span>
 +
==== TIP Adding breathing effect to helmets ====
 +
: Thanks to '''ATalkingMicrophone''' of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">The ''breathing'' sound does in fact have a FormID ''list'', it's just easy to gloss over looking at the lists for all the different helmet overlays. Simply need to add the appropriate items to it.
 +
</div>
  
 
<span id="TIP-CallingFormat"></span>
 
<span id="TIP-CallingFormat"></span>
 +
 
====TIP Format to call a song====
 
====TIP Format to call a song====
 
: Thanks to '''EDPGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''EDPGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 3,251: Line 3,913:
  
 
: You can use those same variables for your own radio station if you don't want to add new ones (in other words, when ''RadioNewVegas.bKimballMOD'' changes to "5", your radio mod can read that and play a different news flash, without having to insert your own variable). And you can also make different scripted events to catch something else happening in the world if you want to make another news flash, so you don't have to do it exactly like they did. The point is that something somewhere will change the variable that your radio mod will use to track the outcome of an event, and your radio will react with a news flash once it changes.
 
: You can use those same variables for your own radio station if you don't want to add new ones (in other words, when ''RadioNewVegas.bKimballMOD'' changes to "5", your radio mod can read that and play a different news flash, without having to insert your own variable). And you can also make different scripted events to catch something else happening in the world if you want to make another news flash, so you don't have to do it exactly like they did. The point is that something somewhere will change the variable that your radio mod will use to track the outcome of an event, and your radio will react with a news flash once it changes.
 +
</div>
 +
 +
<span id="Tip-NavMeshMultiLevels"></span>
 +
==== TIP Multi-Level Areas ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Try to avoid having one area above another in a single cell.  Even if you properly navmesh everything, NPCs can jump through the floor to get from one area to the other.  They can also get stuck halfway through the floor.  Even if you have stairs that connect two areas and everything is navmeshed properly, they will still often go through the floor instead of walking down the stairs.
 +
 +
NPCs also don't stay put unless you specifically tell them to stay put. If you leave and then re-enter a cell, they can end up anywhere inside that cell that has a proper navmesh, even if that means going through a wall that they can't possibly go through.  Locked doors won't stop them either.
 +
 +
If you need an NPC in a specific spot, put something there and give them an AI package that keeps them there. For example, put a "sit marker" on the floor or a "wall marker" next to the wall and give them a travel package that forces them to it.  Or put a chair there and give them a travel package to the chair. Or just put an xMarker on the floor and have them travel to that.
 +
 +
Place a "North" marker in the cell so the NPCs orient themselves in it properly.  Please see the "[[#TIP_Center_On_Cell_COC_Markers|TIP Center On Cell COC Markers]]" and "[[#TIP_Finding_cell_North_in_GECK|TIP Finding cell North in GECK]]" entries under the "Worldspaces" section.  Also see the "[[#TIP_Making_NPCs_move_aka_AI_Packages|TIP Making NPCs move aka AI Packages]]" entry under the "Custom NPCs" section.
 
</div>
 
</div>
  
Line 3,266: Line 3,944:
 
# It'll sound louder '''out-of-game''' than '''in-game''', so don't lower the volume too much on it.
 
# It'll sound louder '''out-of-game''' than '''in-game''', so don't lower the volume too much on it.
 
Now your music should automatically get quieter when in dialog.
 
Now your music should automatically get quieter when in dialog.
 +
</div>
 +
 +
<span id="Tip-LiveStreaming"></span>
 +
==== TIP Music OFF while Streaming ====
 +
: Thanks to '''TheWeekendSlice''' of the Nexus Fallout "Mod Requests" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">The game studios license music and sometimes sounds for use in their games with a license that covers ONLY the game owner playing the game in private. "Streaming" your gameplay constitutes (in the mind of the music publishers lawyers anyway) a "performance", requiring a separate license. If you want to use copyright music/sounds in your streams/videos you need to purchase a license that will allow you to publicly share that content; when you buy a game YOU DO NOT get such a license and the game studio/publisher DOES NOT pay for a such a license when they pay to include copyright music/sounds in their games.
 +
 +
People on '''Twitch''' have gotten copyright strikes for in-game music (for example "'''Alan Wake'''" contains a lot of licensed music: music that is now owned by the game studio) and for in-game sounds (the ambulance sound in '''Grand Theft Auto V''' got people strikes).
 +
 +
If you get 3 strikes, your '''Twitch''' channel is banned/closed.
 +
 +
People on '''Twitter''' have gotten a warning or even had their accounts disabled for including copyright protected music in videos embedded in their tweets (the detection on '''Twitter''' works at the millisecond level).
 +
 +
'''YouTube''' works differently: you can create a video that contains music/sounds for which you don't own the rights or the license to publicly share them, but then your video will get flagged by the copyright owners and they will get every single cent generated by your video. However, there's a very good chance that your channel won't get banned.
 +
 +
The '''Fallout 3/New Vegas/4''' radio music IS NOT LICENSED for public display which means it will get flagged by '''Twitch/YouTube''' and on '''Twitch''' there is a very good chance that your channel will get a strike against it. 3 strikes and your channel is gone.
 +
 +
This is not '''Twitch''''s fault as they have to comply from a legal perspective with the requirements of the music industry or engage in a very expensive lawsuit on user's behalf for little corporate gain.
 +
 +
What '''Twitch''' could do (and so far only '''Facebook Gaming''' and '''TikTok''' have done) is to pay out of pocket themselves for a "performance" music license that would cover as much of the music industry as possible and the license would have to be applicable worldwide as '''Twitch''' streamers and viewers are from all over the world. However, such a license is MASSIVELY EXPENSIVE so I doubt '''Twitch''' can afford it as they overall generate considerably, MASSIVELY less profit than '''Facebook''' or '''Google'''.
 +
 +
Oh, and by the way, '''Twitch''' has already issued a statement in which they advised people to not play copyright/licensed music and sounds on stream. They even went so far as to recommend people stream music with the music disabled.
 +
 +
This is down to the music industry who have very capable detection bots that immediately detect if your stream contains copyright music/sounds.
 +
 +
At the moment the detection works mostly only for VODs ("Video On Demand" recorded videos), but pretty soon the detection will also work for livestreamed content (so the detection will happen while the video is actually being streamed and before a recording of it is saved).
 +
 +
Some studios publicly allow content creation based on their games, some studios issue permissions to content creators, but most studios allow content creation because it's good marketing in spite of the fact that by law one would need to PURCHASE a license for publicly sharing the game. But you would need to check with and obtain written permission from the studio in question in each and every case to legally protect yourself.
 +
 +
<p style="text-align: left; color: red; background-color:#fff5f5;">While simply disabling the "play music" game option would seem to be sufficient, it only affects the Pipboy radio and does not also disable music played through "radios" or "jukeboxes" scattered throughout the Wasteland.  The Fallout 3 thread "[https://forums.nexusmods.com/index.php?/topic/9516493-mod-to-disable-the-radios-that-are-located-in-the-levelsenvironment/ Mod to disable the radios that are located in the levels/environment]" discusses replacing those music files. The effect of various "Fallout.INI" "[Audio]" section "audio", "dialogue", "music", and "radio" settings is not discussed.</p>
 +
</div>
 +
 +
==== TIP Random Multiple Sounds ====
 +
: Thanks to '''KICHo666''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Normally you select the specific ".wav" file you want to play in the "new sound" editing window, but what about when you want the game to pick a random file from several possible sounds, such as for when repairing a weapon?
 +
 +
Just select the ''folder'' where the desired sounds reside.  The engine will handle the random file selection process automatically for you.
 
</div>
 
</div>
  
Line 3,474: Line 4,197:
 
=== NifSkope Mesh Editor ===
 
=== NifSkope Mesh Editor ===
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 +
* [https://wiki.nexusmods.com/index.php/How_to_add_glow_maps How to add glow maps] Wiki article; works for FO3 as well.
 
* [http://www.youtube.com/watch?v=BvitRKEa1X0 How To Rotate A Mesh In Nifskope] 2 minute video by Zylice Liddell.
 
* [http://www.youtube.com/watch?v=BvitRKEa1X0 How To Rotate A Mesh In Nifskope] 2 minute video by Zylice Liddell.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: NifSkope Texture Paths by Jokerine] Mod PDF.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: NifSkope Texture Paths by Jokerine] Mod PDF.
Line 3,497: Line 4,221:
 
* Now go to '''NifSkope''', and in the ''bsvaluenode'' entry you created, go to the "value" line and write the related '''Index number''' of the ''AddonNode'' you want the mesh to use.
 
* Now go to '''NifSkope''', and in the ''bsvaluenode'' entry you created, go to the "value" line and write the related '''Index number''' of the ''AddonNode'' you want the mesh to use.
 
The thread [http://forums.nexusmods.com/index.php?/topic/4522240-attaching-light-to-mesh/ Attaching light to mesh?] has an example of the before and after effect on an image.
 
The thread [http://forums.nexusmods.com/index.php?/topic/4522240-attaching-light-to-mesh/ Attaching light to mesh?] has an example of the before and after effect on an image.
 +
</div>
 +
 +
<span id="TIP-FloatingHead"></span>
 +
==== TIP Body part is floating ====
 +
: Thanks to '''AusAllerWelt''' of the Nexus "New Vegas GECK and Modders" forum for the basis of the folowing:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">This problem is sometimes seen with a "mashup" (such as placing a helmet from one plugin on a head from another). Sometimes you can fix it by "skinning" the body part and leaving the ''scene root'' where it is to have the result appear correctly.
 +
 +
There is a technique that allows a mesh to call for a bone without being skinned. (Details on how this works are "murky", but quite a lot of hats and headgear items use it in the game.)  For this the object needs to have its ''scene root'' in a specific position; or the bone "floats" at a distance from the rest of the body.
 +
 +
There is a bit of information about it in the [[Nifskope:_NiStringExtraData_guide | Nifskope: NiStringExtraData guide]].
 
</div>
 
</div>
  
Line 3,530: Line 4,268:
 
">Sometimes you want to "mash up" parts of mesh (and texture) files from different sources.  You might think to export parts of models from the source files as "*.OBJ" files, and then import them into your "*.NIF" files as "*.OBJ" in NifSkope.  This is not how this is usually done, and will generally produce "array Shader Textures are invalid" and "device position incorrect after block number ##" errors.  These are caused by missing ''BSShaderPPLightingProperty'' entries, and thus no ''BSShaderTextureSet''.
 
">Sometimes you want to "mash up" parts of mesh (and texture) files from different sources.  You might think to export parts of models from the source files as "*.OBJ" files, and then import them into your "*.NIF" files as "*.OBJ" in NifSkope.  This is not how this is usually done, and will generally produce "array Shader Textures are invalid" and "device position incorrect after block number ##" errors.  These are caused by missing ''BSShaderPPLightingProperty'' entries, and thus no ''BSShaderTextureSet''.
  
Generally speaking: "*.OBJ" files are for use importing into Blender, and should be exported as "*.NIF" files to work in NifSkope.  Blender is a much better tool for this sort of thing.
+
: Generally speaking: "*.OBJ" files are for use importing into Blender, and should be exported as "*.NIF" files to work in NifSkope.  Blender is a much better tool for this sort of thing.
  
 
When moving '''parts''' of meshes between "*.NIF" files in NifSkope, use the "Copy Branch" and "Paste Branch" functions.
 
When moving '''parts''' of meshes between "*.NIF" files in NifSkope, use the "Copy Branch" and "Paste Branch" functions.
  
'''NifSkope''' does not display ''textures'' from BSAs by default.  You have to point '''NifSkope''' to the BSA files location in it's settings.  In the '''NifSkope''' UI, left click "Options".  In the drop down menu, choose "Settings | Resources".  In the panel that opens, you will have to add the path to the BSAs. It should be the complete path, starting with the drive letter.  When you open "Resources" you should see a complete path to (and including) the "Data" folder.  If not, click on "Auto detect game path".
+
: '''NifSkope''' does not display ''textures'' from BSAs by default.  You have to point '''NifSkope''' to the BSA files location in it's settings.  In the '''NifSkope''' UI, left click "Options".  In the drop down menu, choose "Settings | Resources".  In the panel that opens, you will have to add the path to the BSAs. It should be the complete path, starting with the drive letter.  When you open "Resources" you should see a complete path to (and including) the "Data" folder.  If not, click on "Auto detect game path".
  
When using ''custom textures'', you need to set the texture ''relative path'' to the '''loose file''' in the NIF with '''NifSkope'''.  This is done under ''BSShaderPPLightingProperty/BSShaderTextureSet''.  ("Relative" meaning the path starts BELOW the game "Data" folder: as in "textures\<some sub-folder>\<some filename>.dds".  No drive letters or any path above "textures\"; without even "Data\".  See the wiki article [[How_to_fix_hard-coded_texture_paths_in_NIF_files|How to fix hard-coded texture paths in NIF files]] for specific instructions.)
+
: When using ''custom textures'', you need to set the texture ''relative path'' to the '''loose file''' in the NIF with '''NifSkope'''.  This is done under ''BSShaderPPLightingProperty/BSShaderTextureSet''.  ("Relative" meaning the path starts BELOW the game "Data" folder: as in "textures\<some sub-folder>\<some filename>.dds".  No drive letters or any path above "textures\"; without even "Data\".  See the wiki article [[How_to_fix_hard-coded_texture_paths_in_NIF_files|How to fix hard-coded texture paths in NIF files]] for specific instructions.)
 +
'''AusAllerWelt''' adds:
 +
: When a "mashed up" NIF file appears fine in the mesh editor but elements seem to become invisible when viewed in '''NifSkope''', most likely the problem is the element is missing a ''material property''.  This likely occurred because you copied those elements from a mesh that had a ''combined material property'' which is often done for optimization.
 +
 
 +
: To correct:
 +
:* <Right-Click> on the affected element '''NiTriShape''' of your mesh in '''NifSkope''', go to ''Node | Attach Property'' and select ''NiMaterialProperty''.
 +
:* {{filepath:NifSkope Material Property.png}}
 +
:* Now your element block should have a material property and appear in game. No need to change any values, unless you want to make that element of the mesh super glossy or something.
 
</div>
 
</div>
  
Line 3,553: Line 4,298:
 
(For any unfamiliar graphics related terms, please see the [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Glossary TESTG Glossary].)
 
(For any unfamiliar graphics related terms, please see the [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Glossary TESTG Glossary].)
  
So, the way it works is an object is lit dependent upon several factors.  The first is the ''normal map'' and its ''alpha channel''.  Obviously, you're telling me these are all the same texture, so that's not the problem here but it is certainly something to be aware of.  The ''normal map'' behaves as you expect, and its ''alpha channel'' is used as the ''specular map''.  Generally, you want that ''specular map'' to be mostly dark, down to drawing distinctly different effects in-game from a portion of a ''specular map'' that is 5% bright and 8% bright, for example (that is, 0% is pitch black, and bringing the RGB values all up 5% from 0 is 5%).
+
So, the way it works is an object is lit dependent upon several factors.  The first is the ''normal map'' and its ''alpha channel''.  The ''normal map'' behaves as you expect, and its ''alpha channel'' is used as the ''specular map''.  Generally, you want that ''alpha channel/specular map'' to be mostly dark, down to drawing distinctly different effects in-game from a portion of a ''specular map'' that is 5% bright and 8% bright, for example (that is, 0% is pitch black, and bringing the RGB values all up 5% from 0 is 5%).
  
 
Now, be aware that the ''specular map'' is manipulated in '''NifSkope''' but its effects are completely ignored visually until you see it in the '''GECK''' or the game, though the '''GECK''' usually doesn't display it accurately to the way it will look in-game.
 
Now, be aware that the ''specular map'' is manipulated in '''NifSkope''' but its effects are completely ignored visually until you see it in the '''GECK''' or the game, though the '''GECK''' usually doesn't display it accurately to the way it will look in-game.
 +
 +
There is 6 "NIF component" file slots available, and there's a naming convention.
 +
 +
''Diffuse/Alpha''    Texture/Transparency      <Name>.dds
 +
''Normal/Alpha''    Relief/Specularity        <Name>_n.dds
 +
''Glow Mask''        Mask for Emissive Color    <Name>_g.dds
 +
''Parallax''        Depth effect              <Name>_p.dds
 +
''EnvCube''          Reflection on the object  <Name>_e.dds
 +
''EnvCube Mask''    Mask for reflection        <Name>_m or <Name>_em.dds
 +
 +
''Diffuse'' and ''Normal'' can be in DXT1 or DXT5 format depending on the need.
 +
''EnvCube'' has its own setting, the others are in DXT1 format.
 +
''Glow Mask'' and ''EnvCube Mask'' are telling which part to reveal of a setting that applies on the whole ''NiTriStrips/Shapes''.
 +
 +
If you set an ''Environment Cube'' flag in your NIF but don't assign an ''EnvCube Ma''p, the game will assign (an ugly) one by default.
 +
If you don't assign a ''Envcube Mask'' while having the flag and ''EnvCube'' map set, the game will use the ''Specular'' (''Alpha'') of the normal. These two situations might lead to an increased Draw Calls and GPU strain.
 +
 +
You can use the ''Specular Map'' to generate a "*_m.dds" or draw one in a graphic app. The dark part will mask the ''EnvCube Map'' reflection.  The white part will fully reveal, and nuances of grey will attenuate.
  
 
So, now that the basics are out of the way, the rest of the lighting stuff is determined per model in '''NifSkope'''.  Open your train tracks model in '''NifSkope''' (located in ''Meshes\dungeons\metro\exterior''), and click on the dirt portion: [[File:EPDGaffney_TrainTracks_Fig01.png|thumbnail|100px|TrainTracks_Fig-01]](See '''TrainTracks_Fig-01'''.  {{Thumbnail_enlargement_message}})
 
So, now that the basics are out of the way, the rest of the lighting stuff is determined per model in '''NifSkope'''.  Open your train tracks model in '''NifSkope''' (located in ''Meshes\dungeons\metro\exterior''), and click on the dirt portion: [[File:EPDGaffney_TrainTracks_Fig01.png|thumbnail|100px|TrainTracks_Fig-01]](See '''TrainTracks_Fig-01'''.  {{Thumbnail_enlargement_message}})
Line 3,619: Line 4,382:
 
:* [[#TIP-RandomNPCcomments|Tip: Random NPC Comments.]]
 
:* [[#TIP-RandomNPCcomments|Tip: Random NPC Comments.]]
 
:* [[#Tip-DialogTabs|TIP: Standard Dialog.]]
 
:* [[#Tip-DialogTabs|TIP: Standard Dialog.]]
 +
 +
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 +
* [http://geckwiki.com/index.php/Category:Conditions GECK Category: Conditions] GeckWiki.
 +
* [http://geckwiki.com/index.php/Category:Tutorials GECK Category: Tutorials page] GeckWiki.
 +
* [http://geckwiki.com/index.php/Adding_an_Options_Menu GECK: Adding an Options Menu Tutorial] GeckWiki.
 +
* [http://geckwiki.com/index.php?title=Bethsoft_Tutorial_Basic_Quest GECK: Bethsoft Tutorial Basic Quest] GeckWiki.
 +
* [http://www.nexusmods.com/newvegas/mods/45278/? GECK: Companion] Mod by '''Caprius'''.
 +
* [http://geckwiki.com/index.php/List_of_Global_Variables GECK: Global Variables List] GeckWiki.
 +
* [http://youtu.be/3Bauvvmo31g GECK: Making a Counter] (for tracking scripts.) Video (9:57) by ''' by Seddon4494'''.
 +
* [http://geckwiki.com/index.php/Notes GECK: Notes] GeckWiki.
 +
* [http://www.youtube.com/watch?v=zDE4yHOz0cQ GECK: Script to Spawn/Enable NPCs at a Certain Time] Video (2:28) by ''' Seddon4494'''.
 +
* [http://geckwiki.com/index.php/Scripting_for_Beginners GECK: Scripting for Beginners] GeckWiki.
 +
* [https://www.youtube.com/watch?v=19mppusqPzQ GECK Tutorial - Terminals]  Video (6:30) by ''' Seddon4494'''.
 +
* [http://nvse.silverlock.org/ New Vegas Script Extender (NVSE)] Site.
 +
:* [http://geckwiki.com/index.php?title=Category:Functions_(FOSE) FOSE Functions] GeckWiki.
 +
:* [http://geckwiki.com/index.php?title=Complete_List_of_Functions_in_NVSE NVSE Functions] GeckWiki.
 +
:* [https://geckwiki.com/index.php?title=Category:Functions_(JIP) JIPLN NVSE Functions] GeckWiki.
 +
:* [https://geckwiki.com/index.php?title=Category:Functions_(JohnnyGuitar_NVSE) JohnnyGuitar NVSE Functions] GeckWiki.
 +
:* [http://www.cipscis.com/fallout/tutorials/detecting_keypresses.aspx Tutorial - NVSE: Detecting Keypresses] Wiki.
 +
* [http://fallout.fandom.com/wiki/Pip-Boy_3000 Pipboy Interface Tabs] Wiki.
 +
* [http://cs.elderscrolls.com/index.php?title=Performance_Problems TES: Script Performance Problems] Original TES Construction Set Wiki.  Some things on this site are obsolete information as regards the GECK.
 +
* [http://www.nexusmods.com/newvegas/mods/63880/? Timescale Pacemaker] Mod.
 +
* [http://tesalliance.org/forums/index.php?/topic/2318-how-to-make-a-terminal/ Tutorial - How to Make a Terminal in Fallout 3 DO something] Wiki.
 +
* [http://www.youtube.com/watch?v=RLrV-R_0hnY Tutorial - Making something happen every day] Video (5:19) by '''Seddon4494'''.
 +
* [http://www.youtube.com/watch?v=APnz-qdQxfQ Tutorial - Scripting Notes] Video (9:43) by '''Seddon4494'''.
 +
* [http://www.nexusmods.com/newvegas/mods/62777/? Unlocked MCM - Advanced MCM script templates] Mod by '''DoctaSax'''.
 +
* The following tutorials are found on an "Adult (18+) Only Access" site.
 +
:* [http://www.loverslab.com/topic/33181-scripting-in-fallout-new-vegas-for-dummies/ Scripting in Fallout New Vegas for Dummies] by '''tomm434'''.
 +
:* [http://www.loverslab.com/topic/4320-fallout-new-vegas-geck-scripting-help-101/ Fallout New Vegas GECK & Scripting Help 101] Thread.
 +
:* [http://www.loverslab.com/topic/26749-tutorial-nvse4-part-1-syntax-and-expressions/ NVSE4+: Syntax and Expressions - Part 1] by '''DoctaSax'''.
 +
:* [http://www.loverslab.com/topic/26802-tutorial-nvse4-part-2-user-defined-functions-udfs/ NVSE4+: User Defined Functions (UDFs) - Part 2] by '''DoctaSax'''.
 +
:* [http://www.loverslab.com/topic/26963-tutorial-nvse4-part-3-string-variables/ NVSE4+: String Variables - Part 3] by '''DoctaSax'''.
 +
:* [http://www.loverslab.com/topic/27076-tutorial-nvse4-part-4-array-variables/ NVSE4+: Array Variables] by '''DoctaSax'''.
 +
:* [http://www.loverslab.com/topic/39417-tutorial-nvse4-part-5-event-handlers-user-defined-events-udes/ NVSE4+: Event Handlers & User-Defined Events (UDEs) - Part 5] by '''DoctaSax'''.
 +
:* [http://www.loverslab.com/topic/22270-fnv-scripting-nx-variables/?hl=nvse4 FNV Scripting: NX Variables] by '''DoctaSax'''.
  
 
Refer back to the section [[#GECK_Form-ID,_Base-ID,_Ref-ID,_and_Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] as necessary until the different types of "IDs" become second nature.  The distinctions are crucial to getting various script functions to work correctly.  They will primarily work with either ''Editor-ID'' or ''Reference-ID'' values.  They seldom work with both, but if so the syntax must be read carefully to determine which type of value is used for each parameter.
 
Refer back to the section [[#GECK_Form-ID,_Base-ID,_Ref-ID,_and_Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] as necessary until the different types of "IDs" become second nature.  The distinctions are crucial to getting various script functions to work correctly.  They will primarily work with either ''Editor-ID'' or ''Reference-ID'' values.  They seldom work with both, but if so the syntax must be read carefully to determine which type of value is used for each parameter.
Line 3,637: Line 4,435:
 
But merely existing in a saved/compiled form means nothing towards having that script tell the game engine what to do.  You must attach it to something (based upon which one of the 3 types it is) to then have the script code interact with the other dynamic game code.
 
But merely existing in a saved/compiled form means nothing towards having that script tell the game engine what to do.  You must attach it to something (based upon which one of the 3 types it is) to then have the script code interact with the other dynamic game code.
  
 +
==== Scripting Assistance ====
 
* [http://www.nexusmods.com/newvegas/mods/64888/? GECK Extender] NVSE Plugin.  Project to extend GECK functionality and bug fixes.  Compatible with all NVSE script extender plugins.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: red; background-color:#fff5f5;padding:3px;
 
* [http://www.nexusmods.com/newvegas/mods/64888/? GECK Extender] NVSE Plugin.  Project to extend GECK functionality and bug fixes.  Compatible with all NVSE script extender plugins.  <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: red; background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
Line 3,646: Line 4,445:
 
* [http://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118 Top 15 Best Practices for Writing Super Readable Code] HTML.
 
* [http://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118 Top 15 Best Practices for Writing Super Readable Code] HTML.
 
* [http://www.nexusmods.com/newvegas/mods/67395 RuntimeScriptProfiler] by '''lStewieAl - shadeMe'''.  An NVSE plugin to profile script execution. Ported from '''shadeMe''''s '''Oblivion''' plugin.  Use this to check how efficient your script is when running.
 
* [http://www.nexusmods.com/newvegas/mods/67395 RuntimeScriptProfiler] by '''lStewieAl - shadeMe'''.  An NVSE plugin to profile script execution. Ported from '''shadeMe''''s '''Oblivion''' plugin.  Use this to check how efficient your script is when running.
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
* [http://geckwiki.com/index.php/Category:Conditions GECK Category: Conditions] Wiki.
 
* [http://geckwiki.com/index.php/Category:Tutorials GECK Category: Tutorials page] Wiki.
 
* [http://geckwiki.com/index.php/Adding_an_Options_Menu GECK: Adding an Options Menu Tutorial]
 
* [http://geckwiki.com/index.php?title=Bethsoft_Tutorial_Basic_Quest GECK: Bethsoft Tutorial Basic Quest]
 
* [http://www.nexusmods.com/newvegas/mods/45278/? GECK: Companion by Caprius] Mod.
 
* [http://geckwiki.com/index.php/List_of_Global_Variables GECK: Global Variable]
 
* [http://youtu.be/3Bauvvmo31g GECK: Making a Counter by Seddon4494] (for tracking scripts.) Video.
 
* [http://geckwiki.com/index.php/Notes GECK: Notes]
 
* [http://www.youtube.com/watch?v=zDE4yHOz0cQ GECK: Script to Spawn/Enable NPCs at a Certain Time] Video.
 
* [http://geckwiki.com/index.php/Scripting_for_Beginners GECK: Scripting for Beginners] Wiki.
 
* [http://www.youtube.com/watch?v=APnz-qdQxfQ Tutorial - Scripting Notes] Video by '''Seddon4494'''.
 
* [http://www.youtube.com/watch?v=RLrV-R_0hnY Making something happen every day] Video by '''Seddon4494'''.
 
* [http://www.nexusmods.com/newvegas/mods/62777/? Unlocked MCM - Advanced MCM script templates] Mod by '''DoctaSax'''.
 
* [http://nvse.silverlock.org/ New Vegas Script Extender (NVSE)] Site.
 
:* [http://www.gribbleshnibit.com/projects/NVSEDocs/# NVSE Documentation] by gribbleshnibit.
 
:* [http://geck.bethsoft.com/index.php?title=MessageBoxEx NVSE MessageBoxEx function] Wiki.
 
:* [http://geckwiki.com/index.php/Con_SCOF NVSE: Con_SCOF]
 
:* [http://geckwiki.com/index.php/Debug_Dumps NVSE: Debug Dumps]
 
:* [http://www.cipscis.com/fallout/tutorials/detecting_keypresses.aspx NVSE: Detecting Keypresses] Wiki.
 
:* [http://geckwiki.com/index.php/SetDebugMode NVSE: SetDebugMode]
 
* [http://fallout.gamepedia.com/Pip-Boy_3000 Pipboy Tabs]
 
* [http://cs.elderscrolls.com/index.php?title=Performance_Problems TES: Script Performance Problems] TES Construction Set Wiki.  Some things on this site are obsolete information as regards the GECK.
 
* [http://www.nexusmods.com/newvegas/mods/63880/? Timescale Pacemaker]
 
* The following tutorials are found on an "Adult (18+) Only Access" site.
 
:* [http://www.loverslab.com/topic/33181-scripting-in-fallout-new-vegas-for-dummies/ Scripting in Fallout New Vegas for Dummies] by tomm434.
 
:* [http://www.loverslab.com/topic/4320-fallout-new-vegas-geck-scripting-help-101/ Fallout New Vegas GECK & Scripting Help 101] Thread.
 
:* [http://www.loverslab.com/topic/26749-tutorial-nvse4-part-1-syntax-and-expressions/ NVSE4+: Syntax and Expressions - Part 1] by DoctaSax.
 
:* [http://www.loverslab.com/topic/26802-tutorial-nvse4-part-2-user-defined-functions-udfs/ NVSE4+: User Defined Functions (UDFs) - Part 2] by DoctaSax.
 
:* [http://www.loverslab.com/topic/26963-tutorial-nvse4-part-3-string-variables/ NVSE4+: String Variables - Part 3] by DoctaSax.
 
:* [http://www.loverslab.com/topic/27076-tutorial-nvse4-part-4-array-variables/ NVSE4+: Array Variables] by DoctaSax.
 
:* [http://www.loverslab.com/topic/39417-tutorial-nvse4-part-5-event-handlers-user-defined-events-udes/ NVSE4+: Event Handlers & User-Defined Events (UDEs) - Part 5] by DoctaSax.
 
:* [http://www.loverslab.com/topic/22270-fnv-scripting-nx-variables/?hl=nvse4 FNV Scripting: NX Variables] by DoctaSax.
 
  
 
==== '''TIP Best Practice'''  Do not begin EditorIDs with numbers ====
 
==== '''TIP Best Practice'''  Do not begin EditorIDs with numbers ====
Line 3,721: Line 4,486:
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">When you want to share variables across more than one script, create a simple "Quest" with a name indicating it's purpose (e.g. "<MyCurrentQuest>VAR").  It doesn't need to do anything (i.e. it can be completely empty), but you need to enable the "StartGame enabled" checkbox.
+
">When you want to share variables across more than one script, create a simple ''Variable Reservoir'' "Quest" with a name indicating it's purpose (e.g. "<MyCurrentQuest>VAR").  It doesn't need to do anything (i.e. it can be completely empty as it's sole purpose is to store variables to use among other scripts), but you need to enable the "StartGame enabled" checkbox. (Using the default delay of 5 seconds seems to be sufficient as there are no ''GameMode'' or ''MenuMode'' blocks to run anyway.)
  
 
Then create a new script to be run when that Quest starts, so name it something related like "<MyCurrentQuest>VARScript", and use the "Script Type" drop down list at the top right of the "Script Edit" shortcut icons to designate it as "Quest" type.
 
Then create a new script to be run when that Quest starts, so name it something related like "<MyCurrentQuest>VARScript", and use the "Script Type" drop down list at the top right of the "Script Edit" shortcut icons to designate it as "Quest" type.
Line 3,945: Line 4,710:
  
 
==== TIP Adding Items to Actors ''aka Leveled Lists'' ====
 
==== TIP Adding Items to Actors ''aka Leveled Lists'' ====
: Thanks to '''Ladez''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
+
: Thanks to '''Ladez''', '''EDPGaffney''', '''madmongo''', and '''GamerRick''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
Line 3,952: Line 4,717:
 
">So you've created this fantastic new item (weapon / armor / clothing, etc.) and want it to start appearing in the merchant inventories or NPC loot.  How to go about it without manually placing it in every individual's inventory is the question.
 
">So you've created this fantastic new item (weapon / armor / clothing, etc.) and want it to start appearing in the merchant inventories or NPC loot.  How to go about it without manually placing it in every individual's inventory is the question.
  
The answer is "[http://geckwiki.com/index.php/LeveledItem leveled lists]".  These are lists which can populate inventories of actors when the Player has attained a specified level of experience.  The subject is addressed in the Nexus Forum thread [http://forums.nexusmods.com/index.php?/topic/2219064-adding-items-to-levelled-listsgra Adding Items to Levelled Lists/GRA] and should answer most of your questions, but here is the summary.
+
The answer is "[http://geckwiki.com/index.php/LeveledItem leveled lists]".  These are lists which can populate inventories of actors when the Player has attained a specified level of experience. (Many "storage containers" like "chests" and "lockers" are "owned" by the interior cell they are located within.) The subject is addressed in the Nexus Forum thread [http://forums.nexusmods.com/index.php?/topic/2219064-adding-items-to-levelled-listsgra Adding Items to Leveled Lists/GRA] and should answer most of your questions, but here is the summary.
  
The basic process is covered in the GECK Wiki under the topic "[http://geckwiki.com/index.php/Adding_items_to_vendors Adding items to vendors]".  Note that avoiding incompatibilities with other mods requires using one of the following three methods:
+
The basic process is covered in the '''GECKWiki''' under the topic "[http://geckwiki.com/index.php/Adding_items_to_vendors Adding items to vendors]".  Note that avoiding incompatibilities with other mods requires using one of the following three methods:
# create a new container owned by the NPC;
+
# create a new container owned by the Actor;
# create a quest/script to add the items to the NPC's existing vendor container;
+
# create a quest/script to add the items to the Actor's existing vendor container;
 
# create a quest/script to add the items to a vendor's leveled item list.
 
# create a quest/script to add the items to a vendor's leveled item list.
  
Line 3,969: Line 4,734:
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">'''EPDGaffney''' expanded: When you select the "Use Info" property of an item, you see the "Count" and "Users" columns.  Levelled items will always have a "Count" of "0" because "Count" is how many instances/references are placed in the game cells, as opposed to a container.  Because levelled items can never be placed anywhere but a container (including an Actor of course), they will always have "0" in that column.  "Count" from the "Use Info" property is the same as "Count" in the "Object Window".
+
">'''EPDGaffney''' expanded: When you select the "Use Info" property of an item, you see the "Count" and "Users" columns.  Leveled items will always have a "Count" of "0" because "Count" is how many instances/references are placed in the game cells, as opposed to a container.  Because leveled items can never be placed anywhere but a container (including an Actor of course), they will always have "0" in that column.  "Count" from the "Use Info" property is the same as "Count" in the "Object Window".
  
What makes this really confusing is that you have "Levelled Items" nested inside of other "Lists" inside of other "Lists" and so on, and these can eventually be tracked to a template actor, who has a "Use Count" of "0" because the items are never placed in the game but whose template inventory is used by 100 actors.  Meaning that levelled item with a (Use) "Count" of "0" and 1 "User" will in fact (potentially) be in 100 inventories once you start playing the game.
+
What makes this really confusing is that you have "Leveled Items" nested inside of other "Lists" inside of other "Lists" and so on, and these can eventually be tracked to a template actor, who has a "Use Count" of "0" because the items are never placed in the game but whose template inventory is used by 100 actors.  Meaning that leveled item with a (Use) "Count" of "0" and 1 "User" will in fact (potentially) be in 100 inventories once you start playing the game.
  
 
That said, a high "Use Info" Count is going to be reliable in that the item will turn up in the game for sure.  But just look at different merchant inventories to see what's really the best way to go in choosing a list for generally adding your item to the game.</div>
 
That said, a high "Use Info" Count is going to be reliable in that the item will turn up in the game for sure.  But just look at different merchant inventories to see what's really the best way to go in choosing a list for generally adding your item to the game.</div>
* "Form Lists" are under the GECK "Object Window | Miscellaneous" category.  Find a likely list, "< Double-click >" on the entry to "Edit" it and view the contents of the list to determine how suitable it is for your purposes.  DO NOT manually add your new item directly to this list.  Use one of the three methods above.
+
* "Form Lists" are under the '''GECK''' "Object Window | Miscellaneous" category.  Find a likely list, "< Double-click >" on the entry to "Edit" it and view the contents of the list to determine how suitable it is for your purposes.  DO NOT manually add your new item directly to this list.  Use one of the three methods above.
  
Note that by default it takes 72 hours in-game for an Actor's "inventory" to get recalculated (updated from a "leveled list").  You can force the inventory to "reset" by calling the [http://geckwiki.com/index.php/ResetInventory ResetInventory] function on the container reference, but remember that "all previously added, removed, or calculated objects will be lost".  See the GECK Wiki entry on "[http://geckwiki.com/index.php/Force_an_actor_to_equip_new_stuff Force an actor to equip new stuff]" as well.
+
Note that by default it takes 72 hours (3 days) in-game for an Actor's "inventory" to get recalculated (updated from a "leveled list").  You can force the inventory to "reset" by calling the [http://geckwiki.com/index.php/ResetInventory ResetInventory] function on the container reference, but remember that "all previously added, removed, or calculated objects will be lost".  See the '''GECKWiki''' entry on "[http://geckwiki.com/index.php/Force_an_actor_to_equip_new_stuff Force an actor to equip new stuff]" as well.
  
The vanilla GECK function is "[http://geckwiki.com/index.php/AddItemToLeveledList AddItemToLeveledList]". As the wiki says: <blockquote>
+
The vanilla '''GECK''' function is "[http://geckwiki.com/index.php/AddItemToLeveledList AddItemToLeveledList]". As the wiki says:  
 +
<blockquote>
 
"This should be used in the RARE case where we want to add an item to a Leveled Item list that already exists in the ESM. Its primary use is for modifying lists from the base game in downloadable content. In most cases you should add items to form lists in the editor object windows. This is for those special cases where you want to alter the contents of a list at runtime or want to change it without putting it in your ESP/ESM file. Once altered using this function, it will persist in the save game data.
 
"This should be used in the RARE case where we want to add an item to a Leveled Item list that already exists in the ESM. Its primary use is for modifying lists from the base game in downloadable content. In most cases you should add items to form lists in the editor object windows. This is for those special cases where you want to alter the contents of a list at runtime or want to change it without putting it in your ESP/ESM file. Once altered using this function, it will persist in the save game data.
  
Line 3,984: Line 4,750:
 
</blockquote>
 
</blockquote>
  
The "Lutana" extension to NVSE (now part of the "JIP LN NVSE" plugin) has the following "leveled list" functions which are preferred as overcoming the drawbacks of the vanilla GECK functions.
+
The "Lutana" extension to NVSE (now part of the "JIP LN NVSE" plugin) has the following "leveled list" functions which are preferred as overcoming the drawbacks of the vanilla '''GECK''' functions. But first read the '''Notes ''' on the [https://geckwiki.com/index.php?title=Category:List_Functions Category:List_Functions] page regarding important cautions.  According to '''Roy Batterian''', per '''jazzisparis''' in the "JIP LN NVSE Plugin" comments [https://www.nexusmods.com/newvegas/mods/58277?tab=posts thread]: "They should only be used on new empty lists, and never to remove any items with them. They just are not safe to use that way.  Kind of defeats the purpose of the functions, but it is what it is. However you can always create new lists via script, and then change the list that things are pointing to. You can do that with '''AddFormToFormList''' as well.  But change the lists things use at runtime, [then] it's still safe to remove mods, and probably a better solution anyway, as just changing that will cause a lot less startup lag."
 
* [http://geckwiki.com/index.php/LeveledListAddForm LeveledListAddForm]
 
* [http://geckwiki.com/index.php/LeveledListAddForm LeveledListAddForm]
 
* [http://geckwiki.com/index.php/LeveledListRemoveForm LeveledListRemoveForm]
 
* [http://geckwiki.com/index.php/LeveledListRemoveForm LeveledListRemoveForm]
Line 3,992: Line 4,758:
 
So, scripting added items with functions such as ''LeveledListAddForm'' needs to be done every time the game is started.  Most do it at "launch", but it can be done at every "reload" instead.  The vanilla function ''AddItemToLeveledList'' by contrast will save in the "save game" data.  It's not necessarily a bad function if you know how to use it (with a ''bDoOnce'' condition check most likely).  But likewise, modders need to know that the '''Lutana''' functions must be done each session/game load.  Items already spawned will of course remain in inventories if the '''Lutana''' function is called just once, but the items will never turn up anywhere else once the game is closed unless the function is called again next time.
 
So, scripting added items with functions such as ''LeveledListAddForm'' needs to be done every time the game is started.  Most do it at "launch", but it can be done at every "reload" instead.  The vanilla function ''AddItemToLeveledList'' by contrast will save in the "save game" data.  It's not necessarily a bad function if you know how to use it (with a ''bDoOnce'' condition check most likely).  But likewise, modders need to know that the '''Lutana''' functions must be done each session/game load.  Items already spawned will of course remain in inventories if the '''Lutana''' function is called just once, but the items will never turn up anywhere else once the game is closed unless the function is called again next time.
  
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 30px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">'''madmongo''' contributes: Here is an example using vanilla code. Create a quest called, let's say: "MyWeaponsModQuest" and check the box to have it ''enabled at startup''. Then create the following script, check the box to make it a ''quest script'', and in "MyWeaponsModQuest" change the quest to be this script. This will add a custom weapon with the "editor ID" of "MyWeaponID1" to the two form lists shown in the script (basically the two "Holdout" weapon form lists).
 +
<div style="margin:0px 10px 10px 50px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;">
 +
scn MyWeaponsModQuestScript<br>
 +
int MyWeapModStartupDone<br>
 +
begin GameMode
 +
: if MyWeapModStartupDone != 1
 +
:: AddFormToFormList NVHoldoutWeapons MyWeaponID1
 +
:: AddFormToFormList NVImprovedHoldoutWeapons MyWeaponID1
 +
:: set MyWeapModStartupDone to 1
 +
:: StopQuest MyWeaponsModQuest
 +
: endif
 +
end
 +
</div>
 +
So the way this works is the quest is enabled at startup, so it's going to run through its quest script. The quest script adds the weapon to the two "Holdout" form lists then sets a flag (e.g. "MyWeapModStartupDone") so that it will only run through that code in the script once. Then it stops the quest so that the script doesn't keep running in the background and doing nothing except wasting some CPU time.
 +
 +
Copy/paste the above script as needed, changing the quest name and "editor IDs" to match your names.
 +
</div>
 +
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">'''GamerRick''' adds for those attempting to only use '''xEdit/FNVEdit''':<br>
 +
* With this ''edit tool'' you can only add items to a ''base object'' (not just the specific reference that was put into a certain cell).  Thus your change will effect all instances of a container placed anywhere else in the game.  You must first get that ''base object'' into your ESP.  Find that base container object in the ESM/ESP it is in and do a "Copy As Override" of that container into your ESP.  You will now have that container in your ESP.
 +
* Add your item to that container: Change an existing item in the container to your object by choosing the item and editing the drop down list of the item's ''Editor-ID'' to select your item.
 +
:: Or you can add a new item to the list: At the top of the items list is the 'Items (sorted)' top level thing.  Right-click and select 'Add', and add your item.
 +
 +
Learn to use the '''GECK!!!'''  Resistance is futile if you want to continue making and editing mods.  Learning the basics of using the '''GECK''' is a LOT easier than trying to figure out how to do things in '''FNVEdit''', and you will eventually run into a wall where you simply can't do it without the '''GECK'''.
 +
</div>
 
Always test from a "new game" file instead of a save game from a play session.
 
Always test from a "new game" file instead of a save game from a play session.
 
</div>
 
</div>
  
 
<span id="Tip-Conditionals"></span>
 
<span id="Tip-Conditionals"></span>
 +
 
==== TIP Basic '''conditional test''' syntax ====
 
==== TIP Basic '''conditional test''' syntax ====
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 4,084: Line 4,884:
  
 
By bearing in mind "single" versus "multiple" frame block types, some "unexplained" code behavior can be understood and rectified.
 
By bearing in mind "single" versus "multiple" frame block types, some "unexplained" code behavior can be understood and rectified.
 +
</div>
 +
 +
<span id="Tip-CompanionInvenotry"></span>
 +
==== TIP Companion Inventory Weight ====
 +
: Thanks to '''user826''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When attempting to use a hidden Actor as a storage container, it was discovered that calling "[ActorREF].GetAV InventoryWeight" always seemed to return zero, even if the hidden Actor was marked as a "companion".  The inventory can be accessed just fine but the weight cannot be determined.
 +
 +
The underlying problem is that (according to the [http://geckwiki.com/index.php?title=Inventory_Reference Inventory Reference] page of the '''GECKWiki''') "objects stored inside of the inventories of actors or containers are not ''references''".  As explained in that discussion, you are going to need '''NVSE''' to approximate them as temporary references within a loop which is iterating over the inventory.  "The temporary nature of inventory references require some extra care in their use. The contents of the source container should not be modified within the loop."
 +
 +
Note that Lutana added the function [http://geckwiki.com/index.php?title=GetInventoryWeight GetInventoryWeight] that "Returns the total weight of items in the inventory of a reference."  Try that instead of "GetAV" or the loop in the [http://geckwiki.com/index.php?title=Inventory_Reference Inventory Reference] page.
 +
 +
For those who want a "purely vanilla" based solution to limiting the inventory '''CarryWeight''' of the Actor, you can use "[ActorREF].ForceAV CarryWeight <amount>" to set their maximum carry capacity.  This causes the builtin engine process for an "overburdened" companion to be automatically triggered when their inventory exceeds their '''CarryWeight''' value.  In addition to playing their '''FollowersOverburdened''' dialog topic, a message pops up in the corner of the screen that says, "<Follower Name> can't carry any more" and the engine prevents you from placing any items into the follower's inventory that would put them over their '''CarryWeight''' limit.
 
</div>
 
</div>
  
 
<span id="Tip-CompilingScripts"></span>
 
<span id="Tip-CompilingScripts"></span>
 
 
==== TIP Compiling Scripts ====
 
==== TIP Compiling Scripts ====
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 4,272: Line 5,087:
  
 
Once an '''EventHandler''' has been registered in the game, it remains in the save game files until a "new game" is started.
 
Once an '''EventHandler''' has been registered in the game, it remains in the save game files until a "new game" is started.
 +
 +
An '''Eventhandler''' needs to be registered in '''GameMode''' because ''actor events'' are flushed every game load to avoid problems with temporary references.  Avoid using "MenuMode 4" to register your EventHandlers.  Many mod authors are used to registering general event handlers only once at game restart (MenuMode 4), but are not aware the player can start the game before this mode runs, especially if several mods are using it and they cause some delay ... which can sometimes leading to breaking other handler registrations.
 +
  
 
Note that just using an '''EventHandler''' isn't sufficient.  The normal activation Event will still need to occur, usually by way of the [http://geckwiki.com/index.php/Activate Activate] function in your UDF. You have to disable interaction with the target Actor first if you want to prevent dialog, somehow.  With '''JIP LN NVSE''' you can use the [http://geckwiki.com/index.php/SetInteractionDisabled SetInteractionDisabled] function.
 
Note that just using an '''EventHandler''' isn't sufficient.  The normal activation Event will still need to occur, usually by way of the [http://geckwiki.com/index.php/Activate Activate] function in your UDF. You have to disable interaction with the target Actor first if you want to prevent dialog, somehow.  With '''JIP LN NVSE''' you can use the [http://geckwiki.com/index.php/SetInteractionDisabled SetInteractionDisabled] function.
Line 4,474: Line 5,292:
  
 
'''NVSE''''s ''[http://geckwiki.com/index.php?title=IsModLoaded IsModLoaded] "HonestHearts.esm"'' and ''[http://geckwiki.com/index.php?title=GetFormFromMod GetFormFromMod] "HonestHearts.esm" "xxxxxx"'' can't go wrong for such a thing.  (The quotation marks around the ''pluginName'' and ''hexFormID'' strings are required.)  Where "xxxxxx" are the last 6 digits of the FormIDs of the records you are concerned about.  The GECK displays them in a minimized column that you can stretch.
 
'''NVSE''''s ''[http://geckwiki.com/index.php?title=IsModLoaded IsModLoaded] "HonestHearts.esm"'' and ''[http://geckwiki.com/index.php?title=GetFormFromMod GetFormFromMod] "HonestHearts.esm" "xxxxxx"'' can't go wrong for such a thing.  (The quotation marks around the ''pluginName'' and ''hexFormID'' strings are required.)  Where "xxxxxx" are the last 6 digits of the FormIDs of the records you are concerned about.  The GECK displays them in a minimized column that you can stretch.
 +
 +
See also [[#ESM_and_ESP_Files| ESM and ESP Files]] entry about whether your mod should be a "master file" (ESM) or an ESP.
 +
</div>
 +
 +
<span id="Tip-MenuOptions"></span>
 +
==== TIP Menu Options using GetItemCount ====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">With a ''Menu'' using the [https://geckwiki.com/index.php?title=GetItemCount GetItemCount] function as the [https://geckwiki.com/index.php?title=Using_Complex_Conditions condition], you have to use a "reference variable" as the ''ObjectID'' reference-ID parameter (''[ContainerID.]'') of the function.  In this instance, it means you have to select the ''Player'' as the ''[ContainerID.]'' reference, instead of the usual "Run On" <subject> ... as described in the [https://geckwiki.com/index.php?title=Quest_and_Dialogue_Tutorial Quest and Dialogue Tutorial].
 +
 +
Menu condition example:
 +
<pre>
 +
GetItemCount, Run on: Reference|<PlayerRef>, <item>, > 14
 +
</pre>
 +
(meaning in the GECK you first open the "Run On" dropdown list to pick "Reference" and then click on "select" and pick "PlayerRef ('Player')" from another dropdown list.)
 +
 +
See script '''V22FoodCaveWallTerm''' for an example of this with a terminal.  (Most other terminal scripts don't make any checks or just go to the "barter menu".  Thanks to '''GamerRick''' for ferreting out this reference script and confirming "Run On Subject" works as a menu condition when used in this manner.)
 +
 +
Pay attention to the [https://geckwiki.com/index.php?title=Checking_if_a_Mod_is_affecting_an_Object Checking if a Mod is affecting an Object] entry in the [https://geckwiki.com/index.php?title=Main_Page GECKWiki] if referencing an object to which you made edits that pertain to the condition.
 
</div>
 
</div>
  
 
<span id="Tip-ModAdditionsList"></span>
 
<span id="Tip-ModAdditionsList"></span>
 +
 
==== TIP Mod Additions list ====
 
==== TIP Mod Additions list ====
 
: Thanks to '''DoctaSax''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
: Thanks to '''DoctaSax''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
Line 4,723: Line 5,564:
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">'''MenuMode''' lets you specify which menu (or menus, in some cases) should run your script.  '''MenuMode 4''' is the main menu of '''New Vegas''' and was added in '''JIP LN NVSE''' at some point.  It's the most reliable place to run pre-load scripts (before a "save game" file is loaded) in the experience of many, provided they're running on base forms, setting event handlers, and so on and so forth.  Obviously, references and other things that are baked into the save data won't be accessible until you load a game.
 
">'''MenuMode''' lets you specify which menu (or menus, in some cases) should run your script.  '''MenuMode 4''' is the main menu of '''New Vegas''' and was added in '''JIP LN NVSE''' at some point.  It's the most reliable place to run pre-load scripts (before a "save game" file is loaded) in the experience of many, provided they're running on base forms, setting event handlers, and so on and so forth.  Obviously, references and other things that are baked into the save data won't be accessible until you load a game.
 +
 +
[Edit: There is now the "[http://www.nexusmods.com/newvegas/mods/69071?tab=description JIP LN NVSE script runner]" function available which can initialize mods without running quests, ''GetGameRestarted'', or ''MenuMode 4'' that you may wish to consider.]
  
 
Also, tangentially related, pretty much anything that gets done to a base form will be undone once the session is exited.  (See the section on [[#GECK Form-ID, Base-ID, Ref-ID, and Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] if you need a refresher on the differences.)  That includes form lists, models, collision, AI, items added to a base form's inventory, and anything else you can think of that gets done to a base form.  However, references spawned with these scripts running may or may not retain the effects (they usually don't, but inventory stuff will stick, in the case of most functions, because that gets baked into the save data, whereas something like whether or not a base form's combat is disabled is not saved in a save file).
 
Also, tangentially related, pretty much anything that gets done to a base form will be undone once the session is exited.  (See the section on [[#GECK Form-ID, Base-ID, Ref-ID, and Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] if you need a refresher on the differences.)  That includes form lists, models, collision, AI, items added to a base form's inventory, and anything else you can think of that gets done to a base form.  However, references spawned with these scripts running may or may not retain the effects (they usually don't, but inventory stuff will stick, in the case of most functions, because that gets baked into the save data, whereas something like whether or not a base form's combat is disabled is not saved in a save file).
Line 4,728: Line 5,571:
  
 
<span id="Tip=QuestAdvancement"></span>
 
<span id="Tip=QuestAdvancement"></span>
 +
 
==== TIP Quest Advancement ====
 
==== TIP Quest Advancement ====
 
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum and '''RangerBoo''' of the Nexus Fallout "Mod Troubleshooting" forum for the basis of the following:
 
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum and '''RangerBoo''' of the Nexus Fallout "Mod Troubleshooting" forum for the basis of the following:
Line 4,796: Line 5,640:
 
On the other hand, there are many objects (such as "containers"; which you should recall all '''Actors''' are considered to be) that get dynamically ''spawned'' by the game during play (for instance from "leveled lists").  Such "spawned objects" are always as "non persistent" refs from a "Base Form" template without a pre-determined "Editor-ID" or "Ref-ID".  (They are all given an automatically generated instance "Ref-ID" that begins with the "mod index" of "FF".  All undeleted "FF" mod index entries get "baked into" your "save game" files.  This is how you get "save game bloat".)
 
On the other hand, there are many objects (such as "containers"; which you should recall all '''Actors''' are considered to be) that get dynamically ''spawned'' by the game during play (for instance from "leveled lists").  Such "spawned objects" are always as "non persistent" refs from a "Base Form" template without a pre-determined "Editor-ID" or "Ref-ID".  (They are all given an automatically generated instance "Ref-ID" that begins with the "mod index" of "FF".  All undeleted "FF" mod index entries get "baked into" your "save game" files.  This is how you get "save game bloat".)
  
Note that objects flagged as "quest items" apparently are treated as "persistent" by default, regardless of the "reference data flag" state.  That appears to be the only way to ''spawn'' "persistent refs" in-game as well.
+
Note that objects flagged as "quest items" apparently are treated as "persistent" by default, regardless of the "reference data flag" state.  That appears to be the only way to ''spawn'' "persistent refs" in-game without the JIP LN NVSE function [http:\\geckwiki.com/index.php/SetPersistent SetPersistent] to set a non-persistent reference to persistent at runtime.
  
 
If you specifically need a "non persistent" ref, stick something like this on the script related to that "object" (e.g. container object script):
 
If you specifically need a "non persistent" ref, stick something like this on the script related to that "object" (e.g. container object script):
Line 4,819: Line 5,663:
  
 
<span id="Tip-Relocating"></span>
 
<span id="Tip-Relocating"></span>
 +
 
==== TIP Relocating objects to Player by script ====
 
==== TIP Relocating objects to Player by script ====
 
: Thanks to '''madmongo''' and '''Nexusmodsaccountno2''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
: Thanks to '''madmongo''' and '''Nexusmodsaccountno2''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
Line 4,886: Line 5,731:
  
 
By default: the engine behavior where a script that has failed (due to any reason) at some point during execution will be effectively disabled by the game and will no longer be processed again until the game is restarted.  However, there is an INI configuration setting ("bNoFailedScriptLocks") for the "JIP LN NVSE Plugin" which allows such failing scripts to continue to run instead.  Where this is a possibility, requiring the use of "JIP LN NVSE" for your mod is not that big of a deal.  The "game fixes" provide by that Plugin are not available any other way, which is reason enough to make people use it.  And both NVSE and various plugins for it add functionality not available in the vanilla game, which make many mods possible.  Most mod users will already have one or both installed.  If they don't, it's their loss; not yours.
 
By default: the engine behavior where a script that has failed (due to any reason) at some point during execution will be effectively disabled by the game and will no longer be processed again until the game is restarted.  However, there is an INI configuration setting ("bNoFailedScriptLocks") for the "JIP LN NVSE Plugin" which allows such failing scripts to continue to run instead.  Where this is a possibility, requiring the use of "JIP LN NVSE" for your mod is not that big of a deal.  The "game fixes" provide by that Plugin are not available any other way, which is reason enough to make people use it.  And both NVSE and various plugins for it add functionality not available in the vanilla game, which make many mods possible.  Most mod users will already have one or both installed.  If they don't, it's their loss; not yours.
 +
 +
(The complete discussion this "Tip" summarizes can be found [https://forums.nexusmods.com/index.php?/topic/7320086-how-to-moveto-an-actor-in-front-of-the-player/ here].)
 +
 +
<p style="text-align: left; color: green; background-color:#fff5f5;">
 +
Update: Thanks to user '''IntenseMute''' for pointing out that '''TommInfinite''''s new NVSE plugin "[https://www.nexusmods.com/newvegas/mods/71878 SUP NVSE Plugin]" has a [https://geckwiki.com/index.php?title=GetCalculatedPos GetCalculatedPos] function for this.</p>
 +
Example Script:
 +
<pre>
 +
Float fAngleVar
 +
Float fDistanceVar
 +
Float fOutX
 +
Float fOutY
 +
 +
Begin GameMode
 +
Set fAngleVar To Player.GetAngle Z
 +
Set fDistanceVar To 100 ; Modify this value to determine distance from player
 +
Player.GetCalculatedPos fAngleVar fDistanceVar fOutX fOutY
 +
Let fOutX -= Player.GetPos X
 +
Let fOutY -= Player.GetPos Y
 +
<REFERENCE>.MoveTo Player fOutX fOutY 0
 +
End</pre>
 
</div>
 
</div>
  
Line 4,913: Line 5,778:
 
You just can't declare variables or use "Begin Blocks".  They belong to whatever item/event they are found with as far as a RefID/FormID goes.<br>
 
You just can't declare variables or use "Begin Blocks".  They belong to whatever item/event they are found with as far as a RefID/FormID goes.<br>
 
When you want to put lines of code into (for example) a "Dialog Topic" conversation or "Quest Script" "Script Result" field, you need to click the "Compile Result" button just below/adjacent to that field in order to save the code.</div>
 
When you want to put lines of code into (for example) a "Dialog Topic" conversation or "Quest Script" "Script Result" field, you need to click the "Compile Result" button just below/adjacent to that field in order to save the code.</div>
 +
 +
<span id="Tip-ScriptSize"></span>
 +
==== TIP Script Size limit ====
 +
: Thanks to '''jazzisparis''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">There is a limitation on the size of scripts in the GECK: based upon the number of characters: including spaces, comments, and "non-printing" control characters like "line feeds" (aka "new lines").  (Note Windows files use a pair of control characters (<CR>+<LF>) to signal a "new line" while Unix style systems use a single <LF> character, and Apple Macintosh uses a single <CR>.  Some editors (like '''Notepad++''') allow you to configure this, and to display character counts on a status line.)  Various numbers have been cited (usually "around 32,000"), but the most specific seem to put the maximum between 31875 and 32767.
 +
 +
According to the author of the '''JIP NVSE''' plugin: "The size of the '''''compiled script''''' is also limited, and is more problematic since it's reached long before the character limit.  This is especially true with NVSE-heavy scripts."
 +
 +
In addition, there is a common misconception that "the result script for a '''quest stage''' only allows around 1K". This can be worked around by clicking '''Edit''' button next to the '''Result Script''' box; instead of editing the script directly in the box.  This opens the '''result script''' in an "editor" instead of a form display control. (The same applies to any '''Result Script'''; not just for '''quest stages'''.)
 +
</div>
  
 
<span id="Tip-SpecialChars"></span>
 
<span id="Tip-SpecialChars"></span>
Line 4,959: Line 5,838:
  
 
<span id="Tip-Timers"></span>
 
<span id="Tip-Timers"></span>
 
 
==== TIP Timers ====
 
==== TIP Timers ====
 
: Thanks to '''xqdcss''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''xqdcss''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 4,975: Line 5,853:
 
</div>
 
</div>
  
<span id="Tip-ScriptSize"></span>
+
<span id="Tip-Traits"></span>
==== TIP Script Size limit ====
+
==== TIP Traits ====
: Thanks to '''jazzisparis''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
: Thanks to '''daliawithoutanh''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">There is a limitation on the size of scripts in the GECK: based upon the number of characters: including spaces, comments, and "non-printing" control characters like "line feeds" (aka "new lines").  (Note Windows files use a pair of control characters (<CR>+<LF>) to signal a "new line" while Unix style systems use a single <LF> character, and Apple Macintosh uses a single <CR>Some editors (like '''Notepad++''') allow you to configure this, and to display character counts on a status line.) Various numbers have been cited (usually "around 32,000"), but the most specific seem to put the maximum between 31875 and 32767.
+
">"''Traits'' modify aspects of gameplay, granting a benefit in one area at the cost of hampering another." (Source - [https://fallout.fandom.com/wiki/Fallout:_New_Vegas_traits Nukepedia]).
 +
 
 +
But how do you implement one?  The same way as a ''[https://geckwiki.com/index.php?title=Category:Perk Perk]'', but you have to check an option to have it treated as a ''Trait'' instead.
 +
 
 +
What is the difference?  "A ''trait'' is selected at the time of character creation.  A ''perk'' is selected during level advancement." (Source - [https://geckwiki.com/index.php?title=Category:Perk GECKWiki])
 +
 
 +
''Perks'' in the game (including ''traits'') don't have any effect on the player by themselves: their ''ranks'' (and the [https://geckwiki.com/index.php?title=Perk_Entry perk entry] they are associated with) do.  Thus these can be either one of three types: ''quest'', ''ability'' or ''entry point''.
 +
 
 +
The choice of how to implement the ''perk entry'' depends upon your preference and (possibly) how you want the ''trait'' to affect gameplay.  (Note that the ''perk/trait'' can have multiple ''Perk Entries''.) 
 +
 
 +
The example case (from a concept by '''Hulgore''' in the [https://forums.nexusmods.com/index.php?/topic/9918073-need-help-for-scripting/ Mod Talk forum]) is of a helmet which cannot be removed if the player has a specific ''trait'' we will call "Social Anxiety".
 +
 
 +
A ''quest'' type entry is more than enough in the example case, because what it does is set the stage of a quest to the value we giveThat is luckily also the simplest way of running a one-off script, by attaching a ''result script'' to a quest ''stage''.
 +
 
 +
(For example: It could be a script attached to a ''magic effect'', which in turn is attached to an ''ability'' added to the ''Perk Entries''  field.  There is usually more than one way to accomplish most scripting goals.)
 +
 
 +
So, we're basically ready to make the ''trait'' with everything we're going to need: the base object of the helmet itself, the quest with the stage that adds the custom helmet to the player, and the ''perk'' (which only becomes a ''trait'' once we check the correct option) that the player can pick.
 +
 
 +
Start by making the helmet, because it'll need to exist when writing the script later on.  In this case we open the ''T51b'' helmet we are going to use as our base, just change the Editor-ID to '''ddBucket''', and save it as a new object form. (Don't forget to untick (disable) the ''Power Armor'' option box in this instance; but it shouldn't usually be a problem for you, assuming you start from a regular helmet instead.)
 +
 
 +
Then we make a new '''Quest'''.  (See [https://geckwiki.com/index.php?title=Bethsoft_Tutorial_Basic_Quest Bethsoft Tutorial Basic Quest].) Set the ID to '''ddBucketPerkScript''' and the priority to "100".  (This value just a habit; you can set it to whatever priority you want.  Just remember it is competing with other ''quests'', including '''dialog topics'''.  The higher the value the more priority this ''quest'' will have over others in the same list with a lower value.  Zero(0) is the default priority.) Then save the ''Quest'', open it again and add a new ''stage'' under the "Quest Stages" tab with the index of "10" and added an '''empty''' log entry. The log entry is where we can add a ''result script'' which runs when the quest's stage is set to the corresponding index.
 +
 
 +
The ''result script'' is really simple, we don't even need to find a [https://geckwiki.com/index.php?title=Category:Blocktypes blocktype] for it or anything, just type in the functions that equip the helmet:
 +
 
 +
<pre>
 +
  PlayerRef.AddItem ddBucket 1    ;First, the player has to actually have the item in their inventory.
 +
PlayerRef.EquipItem ddBucket 1 1 ;Then we can equip it.
 +
</pre>
 +
 
 +
Then we make a ''Perk''.  We give it the '''ddBucketPerk''' Editor-ID and named it "Social Anxiety".  We need to check the ''Playable'' option box to make it appear in the game and do the same with the ''Trait'' option box if you want it to appear after Doc Mitchell's Rorschach test as a ''trait''. Also, make sure to set the ''Level'' to anything other than zero (0).  Usually this is the level required to pick the ''perk'', but in our case the ''perk'' is actually a ''trait'', hence it only makes sense to set it to one (1).
  
According to the author of the '''JIP NVSE''' plugin: "The size of the '''''compiled script''''' is also limited, and is more problematic since it's reached long before the character limit.  This is especially true with NVSE-heavy scripts."
+
Last, we add an ''entry point'' to the ''perk'', choose the ''Quest type'', select the quest named '''ddBucketPerkScript''' from the drop-down menu, set the stage to "10", save it and we're done.
  
In addition, there is a common misconception that "the result script for a '''quest stage''' only allows around 1K". This can be worked around by clicking '''Edit''' button next to the '''Result Script''' box; instead of editing the script directly in the boxThis opens the '''result script''' in an "editor" instead of a form display control. (The same applies to any '''Result Script'''; not just for '''quest stages'''.)
+
We can test it in-game with the '''ShowTraitMenu''' command in the console (<~>)Now you are equipped to create your own.
 
</div>
 
</div>
  
Line 4,993: Line 5,900:
 
* [http://wiki.nexusmods.com/index.php/Category:Texturing Texturing Category on Nexus] Wiki.  A large collection of articles on the subject.
 
* [http://wiki.nexusmods.com/index.php/Category:Texturing Texturing Category on Nexus] Wiki.  A large collection of articles on the subject.
 
* [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Main_Page The Elder Scrolls Texture Guide (TESTG)] Wiki.  A glossary of terminology and summary of various basic aspects related to texture replacements, along with a collection of "The Elder Scrolls" game mods of that nature.  Designed for players rather than mod creators, but useful for beginners.
 
* [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Main_Page The Elder Scrolls Texture Guide (TESTG)] Wiki.  A glossary of terminology and summary of various basic aspects related to texture replacements, along with a collection of "The Elder Scrolls" game mods of that nature.  Designed for players rather than mod creators, but useful for beginners.
 +
* [http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics Blender 3D: Noob to Pro/UV Mapping tutorial] HTML excerpt from the manual.
 
* [http://forums.getpaint.net/index.php?/forum/28-textures/ Paint.net Tutorials] Forum.
 
* [http://forums.getpaint.net/index.php?/forum/28-textures/ Paint.net Tutorials] Forum.
 
* [http://www.youtube.com/channel/UChSDb-rgM7QrW6QvZjOy-VA Paint.net tutorial] Video series by '''yakobelt'''.
 
* [http://www.youtube.com/channel/UChSDb-rgM7QrW6QvZjOy-VA Paint.net tutorial] Video series by '''yakobelt'''.
Line 5,084: Line 5,992:
 
=== Weapons ===
 
=== Weapons ===
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 +
* [[Adding_ISA_to_Fallout:_New_Vegas|Adding Iron Sights Animation (ISA) to FNV]] Wiki.
 
* [http://www.nexusmods.com/newvegas/mods/63109/? Complete custom gun modding guide by GaigeStorm] PDF.
 
* [http://www.nexusmods.com/newvegas/mods/63109/? Complete custom gun modding guide by GaigeStorm] PDF.
* [[Adding_ISA_to_Fallout:_New_Vegas|Adding Iron Sights Animation (ISA) to FNV]] Wiki.
 
 
* [http://www.nexusmods.com/newvegas/mods/61315/? Guide: Blender/NifSkope Weapon] Resource collection including tutorials.
 
* [http://www.nexusmods.com/newvegas/mods/61315/? Guide: Blender/NifSkope Weapon] Resource collection including tutorials.
* [http://www.nexusmods.com/newvegas/images/104855/?changePreference=3 Guide - Blender and NifSkope weapon] by '''SGTbayk47'''.
+
* [http://www.nexusmods.com/newvegas/images/104855/?changePreference=3 Guide: Blender and NifSkope weapon] by '''SGTbayk47'''.
 +
* [https://www.nexusmods.com/newvegas/mods/66292 Guide: on Getting Weapon Animation Replacers and Asurah Reanimation Pack to Work Together] by '''123keelos'''.  A tutorial on how to use WAR's 3rd person animation with Asruah's 1st person animations.
 
* [[Simple_vanilla_ironsights|Simple vanilla ironsights]] Wiki.
 
* [[Simple_vanilla_ironsights|Simple vanilla ironsights]] Wiki.
 
* [http://www.nexusmods.com/newvegas/mods/66532 Tammer's Guide to NIF-Bashing] PDF and images tutorial by '''mc_tammer '''.
 
* [http://www.nexusmods.com/newvegas/mods/66532 Tammer's Guide to NIF-Bashing] PDF and images tutorial by '''mc_tammer '''.
Line 5,133: Line 6,042:
 
popd
 
popd
 
</div>
 
</div>
The GECK should also be patched to use up to 4GB of memory (i.e. [http://www.nexusmods.com/newvegas/mods/62552/? FNV 4GB Patcher], NT Core's [http://www.ntcore.com/4gb_patch.php 4GB EXE Patcher] or their more general [http://www.ntcore.com/exsuite.php CCF Explorer], or the like).
+
The GECK should also be patched to use up to 4GB of memory (i.e. [http://www.nexusmods.com/newvegas/mods/62552/? FNV 4GB Patcher], NT Core's [http://www.ntcore.com/4gb_patch.php 4GB EXE Patcher] or their more general [http://www.ntcore.com/exsuite.php CCF Explorer], or the like).  Now included in the [https://www.nexusmods.com/newvegas/mods/64888 GECK Extender NVSE Plugin].
  
 
The GECK can also appear to "hang" while trying to load plugins.  This may be due to failing to select other plugins your target plugin requires as "masters", but which are not ESM files.  You can use the '''xEdit/FNVEdit''' "File Header" to identify all the files that are masters to your plugin, and then be sure to select all of them when loading it into the GECK.  Please see the wiki [[#Missing_Masters|Missing Masters]] article for details.
 
The GECK can also appear to "hang" while trying to load plugins.  This may be due to failing to select other plugins your target plugin requires as "masters", but which are not ESM files.  You can use the '''xEdit/FNVEdit''' "File Header" to identify all the files that are masters to your plugin, and then be sure to select all of them when loading it into the GECK.  Please see the wiki [[#Missing_Masters|Missing Masters]] article for details.
Line 5,139: Line 6,048:
  
 
<span id="Tip-WeaponAnimations"></span>
 
<span id="Tip-WeaponAnimations"></span>
 +
 
====TIP Weapon Effect Animations====
 
====TIP Weapon Effect Animations====
 
: Thanks to '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
 
: Thanks to '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
Line 5,246: Line 6,156:
 
background-color:#333333;padding:3px;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">If you have a large number of "loose" asset files associated with your plugin, consider packaging them into a "Bethesda Software Archive (BSA)" file.  This is how the vanilla game provides most of it's files.  It can provide performance improvements for older systems, as well as keeping the "asset" files of your plugin neatly packaged and separate from those of other mods.  As a player, you may find it beneficial to package other mod's loose files into BSAs for your own performance gains.   
+
">If you have a large number of "loose" asset files associated with your plugin, consider packaging them into a "Bethesda Software Archive (BSA)" file.  This is how the vanilla game provides most of it's files.  It can provide performance improvements for older systems, as well as keeping the "asset" files of your plugin neatly packaged and separate from those of other mods.  As a player, you may find it beneficial to package other mod's loose files into BSAs for your own performance gains.
 +
 
 +
Note that the game engine does not have a mechanism for determining which BSA file to use ''if more than one'' contains the same fileIn these instances, it appears to grab the file randomly from one of the BSAs containing it which can lead to erratic results.  This means you should not attempt to put replacements for vanilla game files in a plugin specific BSA file, but instead leave them as "loose" files.
  
 
According to the GECKWiki page on [http://geckwiki.com/index.php?title=BSA_Files BSA Files], <span style="color: red;
 
According to the GECKWiki page on [http://geckwiki.com/index.php?title=BSA_Files BSA Files], <span style="color: red;
Line 5,268: Line 6,180:
 
# Compression in the BSA: Please see that section of the "BSAs and You" thread linked above.
 
# Compression in the BSA: Please see that section of the "BSAs and You" thread linked above.
 
# You may want to compare folder contents between the original mod distributed files folders and the ones you are packing into a BSA.  For comparing folders, suggest [http://winmerge.org/?lang=en WinMerge].  It can compare both files and folders.
 
# You may want to compare folder contents between the original mod distributed files folders and the ones you are packing into a BSA.  For comparing folders, suggest [http://winmerge.org/?lang=en WinMerge].  It can compare both files and folders.
# Testing your BSA files will require adding the ESP to the "load order", toggling "ArchiveInvalidadtion", and exercising the game as appropriate to ensure the assets are loaded.  Using a "new game" for testing purposes is recommended.
+
# Testing your BSA files will require adding the ESP to the "load order", toggling "ArchiveInvalidadtion", and exercising the game as appropriate to ensure the assets are loaded.  Using a "new game" for testing purposes is highly recommended.
 
</div>
 
</div>
  
Line 5,827: Line 6,739:
 
*[http://www.loverslab.com/topic/53411-reading-ui-hud-xml-files/ Reading UI & HUD XML files] by '''DoctaSax''' (Adults (18+)Only site).  
 
*[http://www.loverslab.com/topic/53411-reading-ui-hud-xml-files/ Reading UI & HUD XML files] by '''DoctaSax''' (Adults (18+)Only site).  
 
*[http://qxmledit.org/ QXmlEdit] (freeware) XML Editor.
 
*[http://qxmledit.org/ QXmlEdit] (freeware) XML Editor.
 +
*[http://www.nexusmods.com/newvegas/mods/67470 The HUD Editor] Mod by '''IntenseMute'''.
  
 
=== Refs [[#Music_.26_Sounds|Music & Sounds]] ===
 
=== Refs [[#Music_.26_Sounds|Music & Sounds]] ===

Latest revision as of 03:22, 22 May 2021


Contents

Overview

The following information is primarily taken from the Help starting out thread on the "Fallout New Vegas GECK and Modders" forum. The information is preserved here as an alternative to searching through back posts in that forum for commonly asked questions. Much of the information applies to "Fallout 3 (FO3)" as well, but the focus is on FNV.

This article provides a learning roadmap, a starting point and guide to progression; not a tutorial. Consider it a collection of suggestions and links to more detailed tutorials, articles, videos, and tools. Just from the "Table of Contents" you should get a reasonable idea of the learning curve ahead of you. Don't get discouraged. Tackle things one at a time. Just don't expect to learn everything quickly.

There is a lot of unique vocabulary related to creating mods in the following material, such as the distinction between "meshes", the 3D framework of objects (saved as Nif files); and "textures", the surface "skin" over the "mesh framework" (saved as DDS files). The Elder Scrolls Texture Guide (TESTG) site has a glossary and several pages devoted to explaining these to new mod creators and users. Rather than explaining them here, please reference that site when you need clarification. (This article does a lot of that: referral to other existing resources. Why reinvent the wheel?)

Programs and Tools

GECK Tools

  • Garden of Eden Construction Kit (GECK) (freeware.) The official "game editor" for Fallout 3 and New Vegas. NOTE that when loading files, the one plugin you designate with the "Start as Active" button becomes the one that gets edited and saved when you exit the editor. ALL of the files loaded into the GECK at the same time will automatically become "master files" to the "active file" when it is saved. In particular to this regard, see the NAM files entry.
  • GECK Extender NVSE Plugin. Project to extend GECK functionality and bug fixes. Compatible with all NVSE script extender plugins. (Do not use together with GECK Powerup (nor the Forked version), which it replaces.) Note the optional "Patcher" to make GECK 4GB aware and auto load NVSE is a separate file.
  • GECK 1.4 Powerup NVSE Plugin. (Replaced by GECK Extender. Do not use both together.) Comes in a "standalone" version for the "vanilla" GECK functions, and one for GECK with NVSE functions. It fixes and improves some issues while providing the missing messages when the GECK compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by experienced mod creators.
  • Hot Reload (NVSE) by Kormakur. xNVSE plugin that allows you to edit and save scripts in GECK and update them live into the game without needing to restart it.
  • There are now two wikis devoted to the GECK: the official one by Bethesda, which is not very well supported and a major pain to update (Five CAPCHAs per post!), and a Modding Community GECKWiki site with everything from the official one but actively updated by the modding community. While most links to the GECK wiki are to the official wiki, be sure to check out the Community one to see the latest info on your topic. Anything related to "Script Extenders" like NVSE or JIP LN NVSE functions will be more current on the Community GECKWiki site.

Image Tools

  • Category:Tools on Nexus Mods wiki has articles on various aspects of the primary tools you will be using. Check it out as well.
  • 3DS Max (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.) Commercial product by AutoDesk but the version that works with Nif files isn't free. Versions after 2013 don't seem to work with at least Fallout 4 (according to this thread) using the included official NIF exporter, though there is an unofficial "Figment" exporter plugin fork on GitHub which does seem to work.
  • Blender v2.49b (freeware.) This download includes ALL related files and compatible versions. This is the "complete" package for creating meshes for Bethesda games; including:
Python 2.6.5
Blender NIF Scripts 2.5.5
NifSkope 1.0.22
PyFFI 1.1.5
"Noob to Pro" PDF tutorial.
Check out the "Optional" files section for some additional functionality. Recommended for FO3/FNV.
(Version specific manual linked under the "Portable" version entries.)
  • Blender v2.49b Portable by Room207 is also a "complete" package that is preferred by some for it's convenience and because it is patched so that vertex normals won't be regenerated when going into edit mode, which is one of the reasons why a neck seam is produced. Includes:
Python 2.6.6
Pyffi 2.1.11
NIFscripts 2.5.9
True Normals by Anthony D'Agostino
Geom Plugin 0.5
Mesh Ascii Plugin
UDK Scripts
Blender Tools 1.01 by Kormgar
Blender TRI file scripts and Tutorial by Kapaer and Deedes
You can now import your ".nif" file without anything interfering with it.
  • DDS Converter 1.4 (freeware). Convert JPG,TGA,PNG to DDS using NVIDIA Texture Tools 2.0 with CUDA Acceleration. (Optionally resizes with Imagemagick's "Convert" feature (freeware).)
  • DXTBmp Texture Tool (freeware). Images can be passed to any Paint program for editing in 24 bit and then re-imported and saved in any of the 16/24/32 bit formats. Transparency (Alpha) channel of textures can be viewed and edited separately from the main image.
  • GIMP: GNU Image Manipulation Program (freeware.) A cross-platform image (texture) editor available for GNU/Linux, OS X, Windows and more operating systems. Provides extensions through integration with many programming languages including Scheme, Python, Perl, and more. The result is a high level of customization as demonstrated by the large number of scripts and plug-ins created by the community.
  • Hairs - Eyes - Races Auto - Patcher (Mod.) Extracts all the hair / eyes / races records from every plugin loaded in your load order - then, it rewrites the list of eyes and hairs for every race found. So, if you untick / unflag a hair mod from your load order, these records won't be loaded by the game itself and consequently won't be found by this mod because they don't exist.
  • Inkscape Vector Graphics Editor (freeware). Open source flexible drawing tools, with broad file format compatibility, powerful text tool, and bezier and spiro curves.
  • LOD/VWD Overview TESTG site wiki.
  • Maya (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.) Animation, modeling, simulation, and rendering software by AutoDesk.
  • MindTex2 ($20) by Frozen Flame. MindTex is a normal map generation utility for game developers and 3d professionals. Built to rival the competition in quality without the steep price, whether you want to generate a normal, height, specular, gloss, self-illumination, occlusion, or reflection map, you can easily do it in seconds flat from a single source texture with MindTex.
  • Mod Kit - Resource for Modders by pixelhate. Some nif & textures used as references in various Modding situations, including the "invisible activator".
  • NIF tangents and binormals updater (freeware) by zilav. A command line tool to batch update tangents/binormals in Oblivion, Fallout 3, New Vegas, Skyrim, Skyrim Special Edition and Fallout 4 format NIF meshes. The one in NifSkope doesn't handle degenerate normals, such as if your NIF has a lot of texture tiling. It also gives all around better results especially for people who use Blender and cannot reset the normals and smooth them because it lacks the features to do so.
  • NifSkope (freeware.) A graphical program that allows you to open NIF files, view their contents, edit them, and write them back out again. You can use it to quickly make changes to specific properties of a NIF file such as changing the texture, adding translucency, and more. A 3D view of the contents of the NIF file allows you to preview your changes instantly. You can even create texture templates, and import & export OBJ files. (Note: This link is the latest release and may not be the best choice for FO3/FNV. A fully compatible version of this tool (v1.0.22) is already included in the Blender v2.49b package linked here.)
  • NifSkope v1.3.3 (revision36efdd) (freeware.) A later version than that bundled in the Blender v2.49b package (with EXE and features referred to in many tutorials that are missing in even newer (v2.0+) releases, such as "import/export .OBJ files"). Fully compatible with that Blender package, and more "shader flags" are identified. While both versions of NifSkope can be installed, only one can be used at a time. Recommended for FO3 and FNV (along with the NifTools XML Format version 0.7.0.0, which has the essential "differentiated color for Collision"). Recommended for FO3/FNV.
  • NifTools Wiki (freeware.) 3D package plugins for 3ds Max, Blender, and Maya modelling tools. Note: this link will have the latest release versions. The versions bundled in the Blender v2.49b package are all mutually compatible.
  • The NifTools XML Format (documentation.) Used to extend NifSkope to open files from new games, or better understand files from games which it can already open. Version 0.7.0.0 recommended for FO3/FNV.
  • Paint.NET (freeware.) Image and photo (texture) editing software for Windows, originally based upon the Paint program included as part of Windows, but with many enhanced features such as "layers", special effects, and unlimited history ("undo"). Require Microsoft's .NET Framework 4.6+.
  • Available operations (initial release):
  • Update tangents and binormals - recalculate tangents, binormals and optionally normal vectors in shapes using modified Unity's code.
  • Search and replace assets - perform search and replace on assets paths (textures and other referenced files) in meshes
  • Convert strips to shapes - the same as Triangulation spell in NifSkope
  • Attach parent NiNode - the same as Attach Parent in NifSkope applied to NiNode or it's descendants with defined name
  • Jamilla's anim thing - no idea, made by request
  • Weijiesen's blow up thing - no idea, made by request
  • Copy anim controlled blocks - copy missing controlled blocks between *.kf animation files
  • Update parallax settings - change parallax values in shaders
  • Update MOPP code - update MOPP collision code with the proper working one
  • TexA-DDS (CL Tool) by Kuzja80. Automatic tool for alignment and resizing textures (optimization) for any game.
  • Supports all DDS formats (except some DX12)
  • Support for 16k textures
  • Fine correcting size mismatch
  • Option to regenerate or not, mipmaps for all textures. By default - mipmaps generate only if source texture contains it.

Packaging Tools

  • BAIN Archive Tools - BAT by Surazal
  • BSArch (freeware) by zilav. A command line tool for packing and unpacking Bethesda archives. The most complete support setting the correct flags across the various games.
  • BSAOpt (freeware) Tool for extracting the contents of BSA files. Note this tool unpacks the entire BSA file. It does not easily allow for unpacking a single file.

(See the Skyrim thread BSAs and You for details about the pros and cons of "Bethesda Software Archives" (BSAs), but bear in mind such files in previous games, like Oblivion, FallOut3 and Fallout New Vegas, don't have "strict order" like in Skyrim. Games prior to Skyrim don't support overriding of assets in archives using other archives; only loose files can. If the same resource is contained in several BSA archives, those games won't use it from the last BSA on 100% of occasions. They may grab the resource from a random one of the BSAs containing the same file.)

WARNING! Do not unpack BSAs directly into your game "Data" folder; potentially overwriting any mod files. The tools don't ask you to confirm the overwriting, either. All the hair textures unpacked to "loose files" will go through the head models in that case; because that's what happens when hair is not packed in a BSA. "Best practice" is to unpack to a unique folder (they are large: 1-2GB) and manually drag the desired files to the appropriate "Data" folder as needed.

  • BSAExtractor (BSAE) (freeware) Tool for extracting just one or the entire contents of BSA files. See warning above about unpacking an entire BSA.
  • FNV BSA Decompressor Mod by zilav. Decompresses the Fallout New Vegas BSAs and repacks them into BSAs without zlib compression for performance. Also transcodes the ".OGG" sounds effects to ".WAV" format so they work. It also extracts any MP3 files to loose files because they will not play when in a BSA.
  • FOMM - Forked (freeware) Mod Manager with built-in BSA file extraction and repacking.
  • Note that FOMM has several tools bundled with it. The TESsnip tool in particular is obsolete and has been shown to cause "silent corruption" of save game files as a result. The use of xEdit/FNVEdit is recommended in it's place.
  • FOMM and FOMODS for Dummies article.
  • FOMOD Validator by Ganda

Scripting Tools

  • CIPSCIS Script Validator (freeware.) Allows you to quickly indent your script while simultaneously checking it for several basic errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas, but is not "script extender" aware. Includes it's own tutorials.
  • New Vegas Script Extender (NVSE) Silverlock Site. No longer in development. Use xNVSE, which is fully backwards compatible and with further extensions.
  • xNVSE GitHub Site. A recommended "forked" extension of the original Silverlock NVSE version.

Sound and Voice Tools

Misc Other Tools

  • DarNified UI Font Dummies (Mod) Allows you to use DarNified UI for Fallout 3 or New Vegas without editing INI files.
  • DarNified Forum Community site. Articles and questions on XML for the User Interface (UI) and Menus, primarily about the Oblivion version of DarNUI but there is a section for FO3.
  • FNV Diagnostics by Eddoursul. Finds issues in your load order and suggests steps to fix them.
  • Gamesettings profiler Mod. Adds intuitive, app-like, modding tool for debugging, testing, profiling, and dumping\printing to file any numeric GMST (gamesettings) records.
  • Tree LOD billboard creator for xLODGen by zilav
  • xEdit/FNVEdit (freeware.) A generic tool called xEdit which is renamed for working with specific games. The latest "stable" release is on the Nexus, generally under the game name version or as "TES5Edit".

Details

Basic advice is to start with the game Construction Set/Editor (this is usually a separate, free download, not included with the game installation). There is going to be a wiki page for it with tutorials to help get you started, but note that there are unspoken assumptions that you are familiar with concepts introduced on the "Construction Kit"/"game editor" wikis for earlier Bethesda games such as:

(TES5: Skyrim came after all of those (2011) and uses a different variation of the game and script engine.) So, don't neglect those older wikis as resources. Where there appears to be a conflict, assume the later wiki or the one specific to your game is correct.

In addition to the Construction Set/Editor, you'll probably want to get community created editor enhancement tools, like the GECK "Extender" or "PowerUp", "Oblivion Construction Set Extender", etc. These allow you to perform actions not included in the default editor, like edit ESM files without converting them to ESP first, and may also give you better debugging for scripts. These capabilities vary by the tool. On the negative side, such extensions may also annoy the heck out of you with error messages, many of which you don't need/understand and don't care about. But they are always worth looking into.

There are also conversion tools which are required to export the 3D models from your modeling tool into the "NIF" format that Bethesda games use. It is very important to note that the import and export tools only work with certain versions of modeling programs. For Blender, you need version 2.49, which is older than the current version of Blender. The Nexus Oblivion mod Blender linked here is a package that has Blender v2.49 plus all of the NIF tools and includes NifSkope, all of which are the correct versions to use together. You will save yourself a lot of trouble if you install everything from this one package. If you don't, you can run into version problems and things will never work right. Instructions on the correct way to install this combination of tools can be found the wiki article here. (Note where there seems to be a discrepancy in version numbers, stick with the version included in the package.)

"Script Extenders" (SEs) are plugins to the game editors that provide additional functionality features, and were created by the gaming community to overcome perceived shortcomings. Mods the use even one of those SE functions need to specify that the particular SE is now a requirement.

Item (armor, weapons, buildings, etc.) construction and customization requires learning 3D modelling, which is NOT a quick process. You are going to invest a lot of time and patience in learning your tool of choice. The three most common tools used are Blender, "3ds Max" (aka "Max"), and Maya. There is very little discussion about Maya in the forums related to Bethesda games because while it is considered the better choice for animation, "Max" is simpler to grasp and less daunting. Both "Max" and Maya are considered "industry standard" tools, and both will do the job. See these articles for more in depth comparisons if you are going to invest in learning either product:

The Nexus has the Software Programs - 3D Modelling - Blender forum, Software Programs - 3D Modelling - 3ds Max forum, Software Programs - 3D Modelling - Maya forum, and Software Programs - 3D Modelling - Miscellaneous / Other forum areas for discussion about those tools.

The "workflow" on Blender for Nif files is considered more complex than with the others because it often takes you into the Nifskope tool, but read about the Nif Exporter plugin for Max issues in that entry. It is necessary to use the correct version and tools that work with that version of any of these products.

Because it is "free" and the others are quite expensive for most people, Blender is usually at least their first choice. "Blender Noob to Pro" is a good resource for 3D modeling using Blender, and the compatible (not the latest) version is included in that package linked above under Programs and Tools. Consequently, there is a long history of tutorials on all aspects of modelling with Blender. It is well worth the time to refer often to the Blender - Read this first thread as you progress through the learning curve. It has an extensive list of tutorials from Oblivion thru Fallout 3 and more generalized topics which still apply to the basics of modelling in Blender.

For texturing your 3D models, you'll need something that can handle ".dds" files. GIMP and Paint.Net (which is not the Paint that comes with Windows) can both handle ".dds" files. Paint.Net comes with ".dds" support built-in these days. GIMP still needs a plugin. Which program you use is more a matter of personal preference than anything else. Some find GIMP a bit more difficult to use but it also can do some things that Paint.Net can't do. Paint.Net on the other hand is, in the opinion of many, more intuitive and easier to use. Although, now that Paint.Net has a proper normal map generator that actually works available as an add-on, GIMP use tends to be even less frequent now. A lot of it is personal preference, though. Some folks just like GIMP better. Both programs work fine. You can also use Photoshop, but that's not free.

Once you have the 3D model textured (UV mapped) and maybe have generated a normal map for it as well, then you need to export everything. First, read the Working with DDS/DXT Files article by Gary "Buckaroo" Neely to understand the choices in DXT codec to choose among. Blender and the NIF tools don't export a lot of things properly, so then you have to go into NifSkope (which comes with the NIF tools) and fix it. (The proper weight of "bones" in skeletons, along with "shader flags", is almost always wrong, for instance.) Be sure to check that the path given in the mesh to the texture file is in "relative" format. (See How to fix hard-coded texture paths in NIF files.) The default format of the mesh editor's paths may not be "relative".

Once that is done, then go into the game specific Construction Set/Editor and add your custom items to whatever mod you are working on.

Getting back to the GECK, there are a few things that are broken in it. It ships with a spell checker but doesn't include the dictionary, so that's just annoying. (But you can use the language resource files from Fallout 3 as the dictionary.) If you use the GECK "Extender" or "Powerup" you can uncheck the spell checker and disable all of that annoyance at least while you are editing your mod. Unfortunately it won't remember that setting and you'll have to uncheck it the next time you edit your mod as well.

Another thing that is broken is the "lip generator" for dialog. If you have Skyrim or Oblivion you can copy their lip generator from the "sound\processing" folder to GECK's. If you have all of your voice files in place and they work already, in the GECK all you need to do is bring up that dialog in the quest editor. Your WAV file should show up down near the bottom, where it says voice type: MP3, WAV, LIP, LTF, and "path". Click on that to select it, then click on the "from WAV" at the bottom. The "generate lip file" option should now become active and you can click on it. Note that the GECK will not update the information on the screen, so it will still have an N under LIP file even after you have generated it. Close that dialog option and re-open it and then you should see a Y under both the WAV and the LIP. If you record the voice files directly into the GECK (using the record button at the bottom of the dialog window) then when you press save it will automatically generate both the WAV and the LIP files.

Common Problems with GECK

Issue - Where to obtain the GECK

  • Cause: The Construction Kit is a separate download and not automatically installed by Steam. (It is with the GOG DRM-free version.)
  • Solution-1a: You can download the "GECK. - New Vegas Edition" through Steam. It's under the "Library | Tools" tab in the Steam launcher.
  • Solution-1b: Download from the following links:
  • Official GECK Wiki by Bethesda Softworks.
  • GECKWiki Community maintained (more up to date) version of GECK Wiki.
  • FNV 4GB Patcher by Roy Batty - LuthienAnarion. Sets LAA flag specifically to work with Steam versions of FNV and GECK.
  • Recommended: The community developed optional NVSE plugins supplement the GECK, and are considered essential due to the error fixes and additional diagnostic messages (especially for scripts that won't compile) it displays. They require you to launch GECK with NVSE in order to function.
  • Script compiler warnings will now be displayed. Scripts will no longer silently fail to compile.
  • Many other warnings were restored: in cell loader, in NavMesh checker, and so on, more than in 1000 places. [back for testing in 0.1.7.1 beta 1]
  • Adds a special Marker hack which makes RoomMarkers and PortalMarkers visible and transparent in the render window [since 0.1.3].
Unfortunately, cannot make them completely invisible as they should be, but it's better than having to move them all away just to see the cell.
  • You can now save scripts without compiling them (useful if you want to save your script and finish it later).
  • The spell checker can now be enabled and disabled at runtime.
  • Fixed the bug which caused the GECK to crash when user double-clicks on empty space in Form List Editor.
  • The "Edit" menu item in Form List editor will now work.
  • All MessageBox'es will now be in English, regardless of your system's language. This also means that "Cancel" will be replaced by "Yes to all" where intended by GECK developers. [since 0.1.2]
  • ESM are now active and editable directly.
  • ESP used as masters will remain in the masters list.
  • ONAM records in ESM will be preserved. No guarantee new required ONAM will be added. When in doubts, use FNVEdit to update the ONAM records.
  • Enables level 2 LOD generation for large worldspaces
  • Fixes bUseMultibounds = 0 crashes in cells with multibounds
  • Extends GDI handle limit: This cleans up opened windows better when closing them so you can edit for long periods without fear that you won't be able to save your plugin because the GECK can't open any new dialog windows.
  • Help links point to new community maintained wiki: GECKWiki.

Issue - GeckCustom INI file

TIP - Disable Audio in GECK

TIP - Enable loading multiple master files at once

TIP - Enable more than one copy of the GECK
(or both the FO3 and FNV versions).

TIP - Enable MultiBounds
Thanks to pixelhate of the Nexus Fallout "Mod Talk" forum for the basis of the following:

TIP - Load ENB Series with GECK

TIP - Master files
Thanks to madmongo of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:

Issue - GECKPrefs INI file

In the "Users" game folder, along with the three INI files generated for your game is the GECKPrefs.INI file. This file gets created when you first start using the GECK, and saves any customizations you make to it's interface (e.g. such as if you change any values for the "map editor" color masking).

The problem that can arise is when your changes don't work out as you intended and you wish to revert to the default values. There is no built-in mechanism to restore the defaults in that file, nor is there a file for the GECK to refer to similar to the "Fallout_default.INI" file. (There may be a "reset" button in the GECK window, but it only affects the current edit session: resetting to the values in effect when the window opened.)

Therefor: it is your responsibility to make a backup of either the initial or your stable customized version of GECKPrefs.INI so you have the default values to refer to. Otherwise, all you can do is delete (or rename) the file and let GECK rebuild it the next time it starts.

Issue - How to get GECK to load with NVSE

  • Cause: "New Vegas Script Extender" is an addon library of functions developed after GECK was "finished", so it doesn't know about the extensions. Without including NVSE, use of commands from that or the older FOSE (which is incorporated) extension will produce script errors of "unrecognized command" preventing compiling and saving them.
The GECK Extender NVSE Plugin with the Optional "Patcher" to make GECK 4GB aware and auto load NVSE is recommended. (Do not use together with GECK Powerup (nor the Forked version), which it replaces.)
While the GECK 1.4 PowerUp for Fallout New Vegas addon comes in both "standalone" and NVSE plugin versions, that does not mean that NVSE is automatically loaded as part of the GECK itself, so it doesn't otherwise recognize those extensions. The suggested method is to use the NVSE Plugin version of PowerUp when also loading NVSE. Then it will automatically be included when your shortcut points to the "nvse_loader.exe". (Replaced by GECK Extender. Do not use both together.)
Note you must launch GECK as an "Administrator" account: no matter if you are also loading "Extender", "NVSE", or the "GECK Power-Up StandAlone"; or only GECK.
  • Solution (for Powerup only):
  • Create a Windows shortcut to the GECK. Name it something to reflect this is for the GECK + (PU or/with NVSE) (e.g. "GECKPU+NVSE").
  • < Right-click > on the shortcut and select "Properties | Shortcut".
  • To load "NVSE" (with or without plugins such as PowerUp or GECK Extender), in the link shortcut "Target:" field put the complete path to the nvse_loader, and include the "target command line":
in double-quotes (because of the embedded spaces in the path.) The "-editor" must be placed outside of the double-quotes of the path so it will be recognized as a "parameter" of the executable.
  • If you use the "Power-Up Standalone" version 0.1.6 or later, in the "Target:" field put the complete path up to and including the target command line:
(This is a change from previous instructions for "Power-Up", as documented in the PU "ReadMe" file.)
  • Select the "Advanced" button on the same "Shortcut" tab, and enable (check) the box "Run as administrator" on the window displayed.
  • Click the "OK" button until the shortcut window closes.
Note that if you add this shortcut to "Steam", it will initially strip off the "-editor" parameter. Be sure to double-check the "Target" within "Steam" for the presence of this parameter.
  • Select the "Advanced" button on the same "Shortcut" tab, and enable (check) the box "Run as administrator" on the window displayed.
  • Click the "OK" button until the shortcut window closes.

Issue - GECK Power-Up or NVSE cannot find GECK

  • Cause: You must launch anything to do with GECK from an "Administrator" account.
  • Create a shortcut, and on the "Properties | Advanced" tab enable (check) the "Run as administrator" box. This will cause you to automatically be prompted to enter a valid Administrator account and password each time you try to run the command so you won't forget.
NOTE: The GECK Extender, which should be used instead of the "GECK Power-Up", includes an optional patch as a separate file to make GECK "4GB aware" and auto load NVSE.

Issue - GECK automatically loads unwanted DLC Masters

Issue - Where to start in creating mods

  • Cause: The GECK is only part of what you need to create mods, and it doesn't have a training manual.

Issue - Where are the Warnings and EditorWarnings text files

They are supposed to be in the game root folder (where the FalloutNV.exe is found).

  • Cause: It appears that Bethesda dropped these output files after FO3.
  • Solution: Instead, the "GECK Power Up" and "GECK Extender" plugins have now provided that functionality. Try setting NVSE to report them.
  • In Data\NVSE\nvse_config.ini, set:
  • In Data\NVSE\nvse_plugin_geckpu_ew.ini there is a "[WARNINGS SELECTION]" followed by a list of hex offsets. Each offset is set to a reporting level, as described at the top of that file. The default (=1) is to both display the warning in a "MessageBox" in the GECK and write it to file. When the nvse_config.ini LogLevel is set between "2" and "5", the warnings are written to the nvse_plugin_geckpu_ew.log file in the game root folder (where the FalloutNV.exe is found).

Issue - GECK crashes upon editing a weapon

"Every time I attempt to use the GECK to edit a weapon it crashes, even when only the main NV master file is selected." This also occurs when "Fallout Character Overhaul" (FCO) is installed.

  • Cause-1: GECK needs to have the LAA flag enabled in order to take advantage of more than 2GB of memory.
  • Solution 1-b: The GECK should also be patched to use up to 4GB of memory (i.e. FNV 4GB Patcher, the NTCore 4GB Patch or their more general CCF Explorer, or the like).
  • Cause-2: This has been traced to the presence of a specific file that is overwritten by "Fallout Character Overhaul" (FCO): eyebrowm.nif in: Data\meshes\characters\hair.
  • Solution-2: Remove the troublesome file when using GECK, and restore it when playing. If you put it into a batch (.cmd) file such as the following to launch GECK you won't forget.
@echo off
cls
::REM As GECK has to be run from an 'Administrator' account, you should launch it from a
::REM   shortcut (.lnk file) that has that "run as" setting in the 'Properties'.  This will
::REM   be run in a separate sub-process window.  Otherwise the 'start' command won't WAIT
::REM   until GECK is done before continuing with this script.
::REM Change the 'set runpgm=' line to point to your GECK shortcut.
set runpgm=C:\Users\Public\Rec\FalloutNV\GeckPU.lnk
::REM Change the 'set gamedir=' line to point to your game install folder.
set gamedir=E:\Games\SteamLibrary\steamapps\common\Fallout New Vegas
::REM Nothing else below this point should need to be changed.
set tgtdir=%gamedir%\Data\meshes\characters\hair
 
pushd "%gamedir%"
if exist "%tgtdir%\eyebrowm.nif"  ren "%tgtdir%\eyebrowm.nif" eyebrowm.nif.hld && @echo SCRIPT: Removed file [eyebrowm.nif]
 
@echo SCRIPT: Manually close the separate window GECK is launched in.  When you do, DO NOT
@echo SCRIPT:   select to 'Terminate batch job' (answer "N") or you won't restore files properly.
start "GECK" /D "%gamedir%" /WAIT cmd /k "%runpgm%"
if exist "%tgtdir%\eyebrowm.nif.hld"  ren "%tgtdir%\eyebrowm.nif.hld" eyebrowm.nif && @echo SCRIPT: Restored file [eyebrowm.nif]
 
:DONE
pause
popd
  • Cause-3: If the GECK seems to "hang" while loading your plugin, this may be due to failing to select other plugins your target plugin requires as "masters", but which are not ESM files and/or not automatically included by GECK.
  • Solution-3: You can use the xEdit/FNVedit "File Header" to identify all the files that are masters to your plugin, and then be sure to select all of them when loading it into the GECK. Please see the wiki Missing Masters article for details.

Issue - GECK crashes upon loading an exterior cell

Sometimes, after initially creating an "interior" cell, upon trying to work on an "exterior" cell, the GECK crashes when the cell tries to load.

  • Cause: Unknown
  • Mitigation-1a: Make sure you have patched the GECK to be able to use 4GB of memory. The GECK Extender mod includes a separate file download that does this. Some have found it necessary to use the third-party tool 4GB Patch - NTCore instead.
  • Mitigation-1b: Anything in the meshes/textures folder will also load in the GECK. A modded mesh could be causing your CTD. You might find it advantagious to keep different "profiles" or copies of the game "Data" folder (depending upon your "mod manager") so your GECK work "Data" folder only contains the essential files for your mod.
  • Mitigation-1c: Try to avoid loading an exterior cell directly. Instead: load up an "interior" cell, then use a "door teleport" to cause the GECK to load the "exterior" cell (indirectly) for you. This seems to avoid the CTD.

Issue - GECK crashes upon starting

  • Cause-1: You don't have the correct permissions for running GECK.
  • Solution-1: GECK must be "run as administrator".
  1. Navigate to the program folder of the program you want to run (i.e. FalloutNV game root folder).
  2. Right-click the program icon (i.e. the "Geck.exe" file).
  3. Choose Properties.
  4. On the Compatibility tab, select the "Run This Program As An Administrator" option.
  5. Click OK.
  6. If you see a "User Account Control" prompt, accept it.
Now each time you run GECK you will be prompted to enter an "Administrator" account password. If you enter it wrong, GECK won't start.
  • Cause-2: There is not enough available memory in the default 2GB allocated for 32-bit programs. GECK needs to have the LAA flag enabled in order to take advantage of more than 2GB of memory.
  • Cause-3: GECK seems to be overly sensitive to the correct "system compatibility" mode when run on versions of Windows after Vista SP2.
  • Solution-3: Set the "Properties | Compatibility tab" to "Run this program in compatibility mode for: Windows Vista (Service Pack 2)" for both the GECK.EXE and the (PowerUp) GECKPU-NV-14.EXE files.
  • Cause-4: You installed an ENB or the pre-ENB "enhanced shader" mod containing a custom D3D9.DLL file placed in the game folder. The GECK tries to load all of the DLL files it finds when it starts, and it doesn't know what to do with that one: so it crashes.
  • Solution-4: Put the D3D9.DLL file somewhere outside of the Fallout game root folder whenever you want to run the GECK. Make sure to put it back before you start your game; otherwise it will not load. (A "batch file" to handle this that is run when you click on the link to start the GECK is the best way to avoid forgetting this. See Issue: GECK crashes upon editing a weapon for a similar example.)

Issue - GECK crashes upon switching to a different tool

Upon switching from a current operation (e.g. selected an interior cell in the Render Window) to another operation (e.g. "World | Object Palette Editing" or editing an "AI Package") the GECK crashes. The problem is not consistent: erratically occurring.
  • Cause: Unknown. Reported by Vista users as far back as 2008 with FO3 version of GECK.
  • Workaround: Disable the Windows "Tablet PC Optional Components" found under 'control Panel | Programs | "Programs and Features" | "Turn Windows features on or off'. Click the "OK" button and restart Windows. The exact location of that setting may differ in other versions of Windows. This may also be related to enabled "infrared" device settings when there are no such devices in use.

Issue - GECK does not automatically select FalloutNV or some DLC ESM file

Normally, when starting GECK and opening the "File" menu it has automatically "checked" (enabled) the DLC ESM files for loading, but not the "FalloutNV.ESM".

  • Cause: This is controlled by the presence of the "*.nam" files, which by default are present for all the DLC (but not for "FalloutNV.ESM"). If any are not found, that DLC is not automatically selected (enabled) either. These files cause the game to load those DLC even if they are not "active" in the "load order". (It is recommended you rename rather than delete them if you don't want a particular DLC to be loaded.)
  • Solution: The "nam" file contains nothing more than the common name (i.e. "Dead Money") of the respective DLC. When a plaintext "FalloutNV.nam" file (which does not exist by default) with "Fallout New Vegas" as content is created, "FalloutNV.ESM" will be automatically checked (enabled) in GECK's "File" menu just like the DLC.

Issue - GECK does not show Landscape

  • Cause: There is a barely mentioned "shortcut key" combination that toggles the display of Landscape in the "Render Window" when you have an "exterior worldspace" loaded. It does not appear in any menus so it is usually an accidental toggling.
  • Solution: <Shift+L> will toggle the display of the Landscape. (Thanks to VenonXNL for reporting the solution to this "mystery".)

Issue - GECK hates me in general or how to get started working with it

  • Cause: The GECK is frustratingly buggy. It is not intuitive to use. The GECK website makes assumptions that you understand concepts introduced in earlier game Construction Kits (CKs).

TIP - Fallout New Vegas Game Engine Bug List

Issue - GECK will not tell me what is wrong with my script

  • Cause: The GECK does not report problems with scripts, and won't allow a script with errors to be saved.
  • Solution-1: the GECK Extender Plugin re-enables 1220+ Warning, Error, and General messages, in addition to providing more verbose messages and fixing many bugs. (Do not use together with GECK Power-Up (nor the Forked version), which it replaces.)
  • Solution-2: the GECK 1.4 Powerup Plugin comes in a "standalone" version for the "vanilla" GECK functions, and one for GECK with NVSE functions. It fixes and improves some issues while providing the missing messages when the GECK compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by mod creators. (Replaced by GECK Extender. Do not use both together.)
  • Solution-3: The CIPSCIS Script Validator allows you to quickly indent your script while simultaneously checking it for several errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas. Includes it's own tutorials.

Issue - GECK is missing text in some fields

GECK seems to be missing the text associated with certain columns of AI Package, Dialogue, Effects, and Perks (possibly others) information (Editor ID, Topics, etc.). Typically this is a "list box" type field on the form.

  • Cause: This occurs in the GECK for both "Fallout 3" and "New Vegas". The problem originally appeared following the installation of Microsoft Knowledge Base article 3000850 (a Win8.1 "rollup update"), was fixed by rolling back that update, but then the problem got "baked in" to Win10. The issue causes the column's right border to be shifted to the far left of the field so the column text is not visible. (See the GECK: Collapsed Text Field.
    GECK: Collapsed Text Field Figure
    Click the link/thumbnail to see the enlarged image. Use your browser "<back page>" control to return to this page.)
  • GECK Extender Solution: Intended for Windows 10 users (no reports on how effective it might be for older versions) the geckextender.ini file has the "[General]" option bListEditFix disabled by default. Set to "=1" to enable.
  • Solution (Partial): This "fix" seems to stick only so long as you do not open an AI Package. Switching between Perks, Effects, and Dialogue condition columns work perfectly if you don't open an AI Package's conditions; but then ALL condition columns become squished for any form you open. The next time you start a GECK session, all will be fine again; but once you open AI Package's conditions the bug remains for the session until you implement the "temporary" or "workaround" solutions in each form.
Set "compatibility mode" for the GECK to "Vista SP2" or "Windows 7 SP 1". (Either seems to work as well.) For example: Right-click on your GECK-NVSE shortcut or the GECK executable directly, chose the Properties | Compatibility tab, Change settings for all users, and select Windows 7, and hit OK. Load up the editor and things should look normal for the first time since upgrading to Windows 10. (See the GECK: Expanded Text Field.
GECK: Expanded Text Field Figure
Click the link/thumbnail to see the enlarged image. Use your browser "<back page>" control to return to this page.)
GECK: Expanding Collapsed Text Field Figure
  • Temporary Solution: Place the mouse cursor in the top left corner of the "blank" field that is missing text until it changes the cursor shape into a "split cross" (column resize) cursor. (See GECK: Expanding Collapsed Text Field. Click the link/thumbnail to see the enlarged image. Use your browser "<back page>" control to return to this page.) Left-click and hold while dragging to the right, and the missing text should be displayed. Continue dragging to the right until everything is shown or the mouse cursor is no longer the "split cross" shape. When you release the mouse button the display field should be corrected. However, this "fix" may not be persistent from one GECK session to another.
  • Workaround: there is a Windows "hotkey" for expanding all columns in the currently active window of Windows Explorer and some programs (including GECK).
  • First you have to select a field with the problem (i.e. the "Conditions" field in the GECK: Collapsed Text Field) in the displayed GECK window,
  • Then press "Ctrl" and the "+" key on the cursor/number-keypad. (The "+" key on the regular keyboard won't have this effect. See GECK: Expanding Collapsed Text Field. Click the link/thumbnail to see the enlarged image. Use your browser "<back page>" control to return to this page.)
Now all columns should be expanded fully by themselves. (See the GECK: Expanded Text Field. Click the link/thumbnail to see the enlarged image. Use your browser "<back page>" control to return to this page.)

Issue - GECK Render Window shows a large gray square in new world space

Created a new world space and set WastelandNV as parent, using land and map data from the parent. Everything seems to be working fine except for a huge gray square covering most of the render window when trying to view the new world space.

  • Cause: The gray square is the water table.
  • Solution: Go to your 0,-0 point, zoom past the gray till you can see your land, and then add a static. Close, save, and then open your world space in GECK again and your land surface should now be visible.

Issue - How do I configure the GECK to do something


GECK and the Active File

Ever since Windows version 3 on a 386, programs have standardized on "File | New" or "File | Open". But not the GECK. This is your first introduction in how un-intuitive the GECK is. It truly is a miserable toolset.

The "active file" is just the file that you are currently editing. Unfortunately, this gets confusing in the GECK.

The way you create a new plugin (ESP) file is you:

  • Open up the GECK,
  • Click "Data",
  • Select any "master files" you want for your new ESP file.

At this point you don't have an active file for editing. But if you are creating a new file, that's what you want to do (yes, it makes no sense). At a minimum you need to have Fallout.ESM selected as a master. The GECK will load the master files (which are usually but not always with an ESM extension), and then you can make your changes, and when you select SAVE, then the GECK will finally prompt you for the name of your new file (which will usually have an ESP extension). Now that you've created a new file, this is your "active file" for this session. Any more changes that you make will all be saved to the same file.

TIP GECK can isolate records in a particular plugin

Thanks to madmongo of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Limit to Mod Size

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Save often

Still the GECK seems to crash if you breathe heavily on it. It really sucks to open your plugin one day and find an entire town you spent a month on, gone: not a brick left and no aliens with probes in sight.

Once you have a file saved, if you want to edit that file later, you just select the files you want to load and make that your "active file" and start the GECK. When you save, all changes will go into the "active file" that you selected. Let's say you want to add resources from another master file to your plugin, like say, from Honest Hearts. If you are creating a new file, you'd check Fallout.ESM and HonestHearts.ESM, but you wouldn't select any active file. Later, when you save, you will be prompted for a new plugin filename that will become your new active file.

Let's say you already created a plugin, but you didn't include Honest Hearts initially, and now you do want to include it. Open the GECK, select "Data", make your plugin the "active file", and also check the HonestHearts.ESM. Once the GECK is up and running, as soon as you save any changes, your plugin will now include HonestHearts.ESM as a "master file", which it will require to be loaded thereafter.

Once you've added a "master file" to your plugin, you can't easily delete it. Well, you can, all you need to do is right click and press "Delete" when you start up your plugin in the GECK, but if you aren't very careful about exactly how you do that, you will completely destroy your plugin and render it unusable. There are ways to remove "master file" requirements in your plugin, but since you are just beginning with the GECK, assume for now that any "master files" you add are needed there forever.

The GECK will let you load multiple ESP files, but where any ESM "master files" that become requirements for your plugin are loaded automatically, the same isn't true for ESP files your plugin becomes dependent upon. Don't add resources from a different esp to your plugin, because that doesn't work. You can only add things to your plugin that come from master files, or things that your plugin adds on its own. There are ways around this, but again, that gets pretty advanced.

GECK Form-ID Base-ID Ref-ID and Editor-ID

An Editor-ID (sometimes called a GECK ID) is a text identifier used to reference persistent objects. It functions similarly to a Form ID, although it is not limited to 8 characters and a hexadecimal character set. It exists for the human user of GECK. The game engine itself is only concerned with Form-IDs. There is a direct "one-to-one" correspondence between an EditorID and a Ref-ID, but for the human only. (Editor-IDs are primarily used to identify objects in the Object window [the left pane of the GECK].) The game engine needs and only recognizes the Form-ID in commands, but they can also be used in scripts along with Editor-IDs. See the GECK Reference page.

Whether you create your own new object or copy and rename an existing one, you want to give it an "Editor-ID" (the human consumption one) that will enable you to quickly locate yours in the Object window.Refrain from beginning the Editor-ID with numbers. While this will tend to sort the name high in the list of objects, GECK will confuse such names with Form-IDs, which it won't find. Most experienced mod creators use a short common prefix, such as their initials or those of the mod, as the way to group their objects. Whatever naming convention you use, it must be unique and not too closely matching that of other mods to avoid confusion.

A Form-ID is anything specific to an object: whether it be Base or Ref. It is a more general term for both.

"A BaseID (or Base ID) is a FormID assigned automatically to an object by the GECK when a new object is created in the Object window. The Form IDs listed in the Object window are Base IDs. A Base ID is only associated with an object template in the editor, never with an instanced object in-game" - GECK glossary.

"Base ID is the number assigned to a template for an object that is used to create many instances of that object. For example all bottle caps in the game have exactly the same Base ID. This ID is used in scripts or the console with commands that create new instances of an object, like additem or placeatme." - Form-ID on The Vault wiki. You could think of it as the "parent" of each "child reference". Any change made to a Base-ID affects every reference back to that Base-ID. Which is why you need to make a "copy" of a Base-ID and change it's Editor-ID (which forces a change to the Form-ID) when you need to make a variation of an object. Otherwise you are changing ALL instances of that object in the game. (Don't try to change a Form-ID directly yourself. Let the GECK handle it.)

Base forms (another way of referring collectively to "Base-IDs") are fine to use in scripts, by the way. They're just used in different situations by various functions. For example: The StopQuest function will always operate on the base form of the quest. The same with anything involving Form Lists. But you wouldn't want to use a base form when you only want to affect a specific instance ("reference") of an object. AGAIN: Actions on a base form affect ALL instances of that form.

"A Reference ID is a FormID assigned automatically to a Reference [instance] by the GECK when an object is placed in the Render Window [in the right pane of the GECK]. Reference IDs are required to uniquely identify each instance of an object in-game. The Form ID column of the Cell View window lists Reference IDs" - GECK Glossary.

"The Reference ID is the unique ID of an individual object (unlike the Base ID, which is an ID for an object template). For example, all the bottle caps created from same Base ID will have different Reference IDs. This ID is used to manipulate existing objects with commands like kill, move to, or prid, for example.

"Any item that is not created by pre-defined game scripts (either original or from mods) will have [a] Reference ID starting with FF to indicate that this item belongs to this particular save game. It is for dynamically generated items, like loot from containers, random encounters or trader's wares." - Form-ID on The Vault wiki

RefID's that mod creators input, are only of assistance in letting the humans know to what the reference applies. You can actually use the FormID hex code value shown to the side in parentheses of the ref-ID field.

Note it is the persistent flag on the Reference that is mandatory in order for a RefID to become included in the search list for scripts/targets/whatever. (See GECK: Creating New Persistent Reference.) Otherwise the list of refs to search through would be way too huge and cause engine lag.

The Map is not the Terrain and the ID is not the Record Number

It is common to refer to the text form of the "IDs" for records ("Editor-ID", "Rec-ID", "Form-ID", and "Base-ID") as if they were the record identifiers used by the engine. These are "labels" given (or not) by each mod author when they create the record solely for the benefit of us "numerically challenged humans". For this reason, it is assumed they must be unique between plugins. While this is a good practice, and something to be encouraged for the benefit of those searching out records by those references in tools such as GECK or xEdit, it is important to understand that, like a "map", the text labels for those records are not the actual "terrain"; nor the "record number" actually used by the game engine. It can't afford to leave something that critical up to fallible humans. The GECK automatically assigns "record numbers" sequentially when you create a new record, and the "mod index" hexadecimal pair at the beginning of that record, consisting of the "current load order index" of the plugin makes it unique between plugins. (See Help:Form IDs for an explanation of how to interpret the "mod index" from a Form-ID or record number.)

Think about that for a minute. The GECK only knows about plugin files you chose to load for that editting session. Typically that will consist of the "FalloutNV" EXE and ESM, possibly some DLC if your plugin requires assets from it, and the plugin you are working on. How is it going to know what other plugin "ID" text labels there are to determine yours are unique? From one session to another you might load a different series of plugins. It can't predict that "load order" for certain, and the GECK itself doesn't care. Which is why the "mod index" couplet at the beginning of the record number is so clever and crucial to ensure uniqueness between plugins.

This is proven out by examining any record in xEdit: the "ID" label is a text data field within the record, just like any other "value". (For example: the "Script" record variable "SLSD - Local Variable Data" identifies each "variable name" based upon it's "index value" within an array of variables specific to that script with the "text name" stored as "SCVR - Name" data. You have to identify the "record number" before you can determine the "text name"; and not the other way around.) A test was conducted to confirm that the text "Ref-ID" label did not have to actually be "unique" between plugins. The same "Ref-ID" label was given to the same object in two different plugins, and the game had no problems differentiating between the two. Not even when one plugin removed the "persistent object" by the "Ref-ID" they had in common, the same object from the other plugin was unaffected. It did not matter if one plugin was made dependent upon the other. Because they were records from different plugins, the engine could tell them apart.

Consequently, always bear in mind that when someone is speaking in terms of one of the forms of "ID", they are often meaning "as a way of identifying the specific record number".


TIP Reference Variables explained

Thanks to vforvic of the Nexus "Fallout 3 Mod Talk" forum for the basis of the following:

TIP Global ref variables Player and PlayerREF

Thanks to DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Custom items

On the other hand, loading in multiple ESP files can be a quick and easy way to copy resources from another plugin into your plugin. Just go into the GECK with the other plugin loaded (as well as yours as the "active file"), make a change to whatever resource you want (you can literally change something and then change it back to what it was, just so you make sure that entry gets flagged as changed), and save your plugin. The changed resource will now be saved to your plugin. You have to be careful with this, as it won't work if the entry you are trying to copy depends on other things in the plugin that you didn't copy. Generally, as someone new to the GECK, you should probably try to avoid doing this, but if you are trying to copy items from another plugin, this is the fastest and easiest way to do it.

The GECK only includes a file as a resource if it's a "master file". If you load an ESP, the GECK won't treat it as a "master file". The GECK will automatically add any "master files" that the other ESP loaded since those will all be loaded into your new editing session when you load both ESP files.

One word of warning. If you want to copy a piece of armor or some other resource from another plugin, load that ESP without making it active, then make a change to the item you want, then save it, and DON'T DO ANYTHING ELSE. Exit out of the GECK, load it with the resource only in your plugin and WITHOUT the other (original) esp loaded, and then use the modified resource in your plugin. If you try to use the resource while the original plugin is still loaded, that can get the GECK confused and it may end up scrambling your plugin as a result.

This copy from one ESP to another will end up including "master files" from the original ESP in your new plugin; so if you don't want them, DON'T just delete them from the GECK data screen when you select your plugin. If you accidentally left something in your plugin from one of those masters in your copied cell, deleting the master will screw up your plugin, so first ensure you have a saved copy and then clean up the "master files" list early. Instead of using GECK for this, load your plugin into xEdit and use the "Clean Masters" function by right-clicking on your plugin and selecting that option from the resulting "context menu". If all your references to those other masters have been removed, it will safely remove those masters. If not, you can use the xEdit script "List records referencing specific plugin.pas" on that plugin to list them in the log window so you can fix them.

Make sure that the item you want is in a loose file (both mesh and texture) and isn't packed into a BSA file. If it is, you'll need to unpack it to properly reference it in your plugin.

(See the Skyrim thread BSAs and You for details about the pros and cons of "Bethesda Software Archives" (BSAs), but bear in mind such files in previous games, like Oblivion, FallOut3 and Fallout New Vegas, don't have "strict order" like in Skyrim. Games prior to Skyrim don't support overriding of assets in archives using other archives; only loose files can. If the same resource is contained in several BSA archives, those games won't use it from the last BSA on 100% of occasions. They may grab the resource from a random one of the BSAs containing the same file.)

WARNING! Do not unpack BSAs directly into your game "Data" folder; potentially overwriting any mod files. The tools don't ask you to confirm the overwriting, either. All the hair textures unpacked to "loose files" will go through the head models in that case; because that's what happens when hair is not packed in a BSA. "Best practice" is to unpack to a unique folder (they are large: 1-2GB) and manually drag the desired files to the appropriate "Data" folder as needed.

Sometimes these extracted textures appear to be almost transparent. This is because their color (aka "diffuse") maps are transparent instead of opaque. You may need to adjust the opaqueness to make things visible.

Plan to start by making simple mods: like maybe adding a house somewhere. Then make simple re-textures of existing objects. If you get that far, then you are ready to start making your own "mesh" models.

If you are making armor or a weapon, the most commonly suggested advice is to start with an existing version that is similar to what you want. That way you'll have an existing model to base your 3D model on that is close to the right size so you can scale your new model appropriately. Depending on what is desired, for armor it is suggested to often start with just a body model instead. Once you've created your model, you will have to "parent it" to the appropriate armature (aka "skeleton") in order for it to work. If words like "parent" and "armature" in this context don't mean much to you, then you need to do more reading about 3D modeling (again, "Noob to Pro" is a good resource for Blender).

Things like buildings and clutter items are also created with Blender (or 3dsMax), but they don't have armatures. They do have collision though. You'll have to make a collision mesh in Blender when you create your model.

When creating custom meshes for things with different materials, just create individual collision meshes ("bhkcollisionobjects") for each material and let Blender and the NifTools figure it out. When creating something like a log cabin with a stone base, for example, create one collision mesh for the stone base and another collision mesh for the wooden parts. The stone part would have a string property of HAV_MAT_STONE and the wood part would have a collision of HAV_MAT_WOOD under the "hkPackedNitriStripsData".

Primitive collisions (box, sphere, capsule) can be created in NifSkope as well as convex shapes. The nature of your object will sometimes require you to create them in Blender, though.

It is interesting to know that a collider will relate to an object part when it encompasses it, not by the child/parent relation inside a Nif.

  • Getting NIF and DDS textures out of BSAs. (See BSA Extraction Warning above.)
  • Importing, editing and exporting into/from Blender (2.49 and latest)
  • Creating new texture files as DDS in Photoshop.
  • Adjusting new object in NifTools for correct projection.
  • Making various emission colors for signs, like green, red, yellow and non-glowing.
  • Importing new model mesh into GECK for use in game.

 

TIP Alternate Textures

Thanks to SGTbayk47 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Biped and Equipped Objects

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Flickering on added item Radius Setting

Sometimes when adding an item to another (such as a hat on a Mr Gutsy) it seems to flicker out of sight depending on the player's camera angle or distance. This is a classic symptom of a problem with the model's "Radius setting". The following is courtesy of Prensa in a specific reply to a question about this issue with general application.

 

TIP Floating objects

Thanks to Stonedturtle26 and baduk of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

 

TIP Head Parts Rotated

It's not known why head parts changed between FO3 and FNV, considering that so much else in the game engine is identical, but they did. If you port a head part (hat, glasses, facemask, etc) from FO3 to FNV or from FNV to FO3, or make a new open helmet/hat/head accessory that uses a existing mesh, whether it's a simply a clone or a retexture, it tends to equip sideways (rotated by 90 degrees).

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following fix using NifSkope:
Thanks to masternetra of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following fix using FNVEdit (xEdit):

 

TIP Item Substitution

Thanks to madmongo and Jokerine of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

 

TIP Mashing Meshes

Thanks to madmongo, M48A5, and RoyBatterian of the Nexus Fallout "New Vegas Mod Troubleshooters" forum for the basis of the following:

 

TIP Mashing Meshes - Fix multiple SceneRoots

Thanks to madmongo, M48A5, and AusAllerWelt of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Movable or Static custom objects in cell

Thanks to madmongo, davidlallen, and Tefnacht of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Plugins can not override injected records

Thanks to luthienanarion of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Repairability

Thanks to slippyguy for his informative description in the mod Alternative Repairing listing a number of potential problems he identified/resolved.

Custom Creatures

Thanks to madmongo of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following.

Let's assume you want to add an "albino radscorpion" to the game.

An "albino" version of the radscorpion would just be a re-texture. What you are going to want to do is export all of the meshes related to the radscorpion (everything in \meshes\creatures\radscorpion) into your own custom directory, and do similar for the textures. Let's assume you are using \meshes\creatures\albinoscorpion (you can of course change the names to match your real directory names). Edit your custom texture using GIMP or Paint.Net or Photoshop or any other texture editor that can handle DDS files and save it with a new name. Then go into NifSkope and edit radscorpion.nif so that it will use your new texture, and save the modified mesh Nif as something unique like albinoscorpion.nif.

Since this is just a re-texture, the easiest thing to do is copy the existing radscorpion creature in the GECK and modify it. So open up one of the radsorpions under the "creatures" section of the GECK like CrRadscorpion2Large and select the "ModelList" tab. Change the skeleton to the skeleton in your new directory. Now your custom Nif should show up along with the standard radscorpion Nifs. Uncheck radscorpion.nif (if it's still checked) and check your new albinoradscorpion.nif, and change the ID for the creature from CrRadscorpion2Large to something like AlbinoRadscorpion or whatever you want to call it, and hit "OK" to save it. You can edit the stats or traits or anything else in there that you like if you want too, of course.

Remember: in the GECK, save early and often.

If you want to make a custom model in Blender that uses the same skeleton as an existing creature, the procedure is basically the same, except that you have to know how to create meshes in Blender and parent them to skeletons. You'll end up with a custom Nif that will already have a custom texture that you applied to it in Blender when you created the model, and the idea is basically the same. Export the meshes and textures of the creature whose skeleton you are using, then edit that creature to use your new Nif (and your Nif will tell it to use the new textures), and save it with a new ID.

To create a completely new creature (one not based upon any existing creature already in the game), you will have to build the mesh and texture files from scratch, and also provide it with animations. If it is based upon an existing skeleton, then you can use that as the "armature". Otherwise you will need to create a specialized one from scratch along with weighting the bones appropriately or by adapting an existing one with a new editor-ID. As you might guess, this is a much more involved process than merely re-texturing an existing creature. Save it for after you have mastered the basics.

Spawning modded items

The following overview is taken from a thread reply in the "Fallout New Vegas" Nexus forum by Hexrowe:

In GECK, there's a category titled Leveled Item (under Items). It contains a whole bunch of lists that tell the game what items should be spawned in randomly filled loot containers, vendor inventories and enemies. These are usually called "leveled lists" because much of their contents are affected by player level (which is why you tend to find more powerful items in better condition the higher your level is). Adding your items to these lists causes them to appear randomly in the game like any other non-unique items, and is what is meant when mod descriptions mention "leveled list integration" or some such.

The sheer number of these lists can look daunting at first, but if you use filters with some fairly obvious keywords and look around a bit you should get the hang of it. Lists starting with "Cond" are used for randomly determining the condition of spawned items, and are usually referenced by other lists; lists starting with "Vendor" are used to randomly fill vendor inventories; lists starting with "Loot" are used to spawn random loot on enemies and in containers; and so on.

In order to add an item to a list, you can double-click on the list to open it in its own window and EITHER go back to the Object Window, find the item you want to add and physically drag-and-drop it into the list, OR right-click on an empty spot on the list (to create a new default list entry) or on an existing entry (to create a copy of that entry) and select "New" from the context menu. Then you have to edit the new entry into what you actually wanted to add. (Drag-and-drop is required for adding items into Form Lists, but Leveled Item Lists can also use the right-click menu. GECK is kind of a mess like that.)

ALTERNATELY, if you want to place an item in a specific location in the game as is often done with unique weapons, creatures, and such, there's a list of world spaces in the Cell View window; find the one you want to place the object in (note that there are several lists; Interiors seems to be displayed by default, but if you want to place the object in an open air location go to WastelandNV instead), double-click it to open it in the Render Window, then find the object in the Object Window and drag-and-drop it into the Render Window. The item will now appear in the list of objects on the right side of the Cell View Window, and double-clicking it there allows you to edit it's exact location and rotation, ownership, whether it can be picked up by wandering AI, and so on. You can also use a "X Marker" and define a radius from the marker at which a script will place an item or creature when certain conditions are met. See Tip: Random NPC Comments for an example of this technique.

Common practice is to put the items in an owner-less container, just to be safe. For this you'll have to create the container in the Object Window (they're found in the Container category, under World Objects) and add it into the world space by drag-and-dropping it into the Render Window just like any other item. The easiest way to create a new container is to double-click on an existing one that uses whichever world model you want (fridge, gun cabinet, briefcase, etc.), change its Editor-ID and name, and click OK; at this point GECK will ask whether you want to create a new form instead of renaming the old, so click "Yes" and you'll have your new container. Now just edit its contents and attributes (remember to remove any owners, unless you specifically want the player to have to steal the goods) and add it to the world space of your liking. Done!

TIP Respawning Plant bug fix

Thanks to masternetra of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Test Cells

Worldspaces

If you want to create your own worldspace, then you must be a real glutton for punishment, because this gets you into the buggiest parts of the GECK. For example. you create a worldspace, then go and edit its heightmap, and when you save your heightmap and exit out of it, the GECK will crash. The only way to avoid this is to create your worldspace, save your mod, exit the GECK, reload your mod, and then edit the heightmap. This isn't explained anywhere in the GECK, but if you create a heightmap that is too low, the GECK will crash. One modder used to create heightmaps with a general offset of about 6000, but then found there's another bug that when you do that: trees don't generate LOD properly. So your heightmap really needs to be above something like 20-25,000 or so. If your landscape doesn't have trees (or objects that are defined as having tree LOD in the GECK) then you don't need to worry about it and 6000 offset works fine, BUT: the default LOD water height is 10500.

At some point you will try to navmesh your entire new worldspace. It's a really big worldspace with lots of cells, so it's a royal pain to navmesh each cell. Here you find out that the default settings for generating navmeshes will typically navmesh right across a fence, but will block on a piece of road. (Hey GECK, isn't it supposed to be the other way around? Arrgghh.) (As an aside, using heightmap generation mode works a LOT better). Oh, but wait, there's an automatic navmesh generator under the Regions section. Except that it is THE MOST BUGGY THING IN THE ENTIRE GECK. People have had it navmesh the entire area OUTSIDE of the area you want it to navmesh, completely leaving the area you wanted to navmesh untouched. Oh, and by the way, it completely rips out whatever navmeshing you had before in your mod, so hope you saved a backup somewhere because otherwise it's gone. Oh again, but don't worry. The auto navmesher doesn't always navmesh outside where you want it to. No, more often it just completely locks up with an infinite "Get Jean" popup error box that you can't get rid of because it just pops up again. Seriously, the error box just says "Get Jean". After some googling it was learned that "Jean" was the pathing coder and this was a debug message that was never removed from the GECK. The auto-navmesher also completely hangs up when it encounters an SCOL (static collection). The auto navmesher managed to navmesh a large (and very simple) landscape for a modder once. And only once. These days it's recommended you don't even bother to try and use it. Just navmesh cell by cell. It's quicker and less frustrating.

The list of bugs that you run into with worldspace generation goes on and on like this. Worldspace generation is MISERABLE. There's a reason you don't see many worldspace mods and many of the ones you do see use a flat worldspace with landscape objects like cliffs and rocks instead of a true heightmap to generate the landscape.

Many consider duplicating an existing worldspace and removing unwanted elements. This is fraught with it's own problems as well. Please see the Nexus forum thread Duplicating a world-space tutorial first, for an idea of the difficulties involved. Be aware that deleting objects from the world means you are removing references used by the game and possibly other mods. When you delete static objects like vehicles, the navmesh for that cell is typically done so that NPCs will avoid walking into the vehicle. If you don't fix the navmesh, you can walk right through where the vehicle used to be, but your companion NPC won't. It's a bit odd when you are walking down the road and your companion suddenly does a left turn and goes out of their way to avoid nothing, just because the navmesh says they can't walk there. Similarly, if you are being chased by a creature, it will also avoid the holes in the navmesh where the vehicles and other statics used to be.

New worldspace creation is pretty much the same from FO3 to FNV, so tutorials for FO3 are okay for you to use. There don't seem to be any good tutorials. Most have pieced together bits and pieces from various tutorials and just plugged through it until they figured it out by trial and error.

Some tutorials make it sound a lot easier than it is. If you are making a very small worldspace, it can be done fairly quickly. But if you are making a larger worldspace, it becomes a very slow and tedious thing.

Also, the worldspace parts of the GECK are among the buggiest and most difficult to use parts of the toolset. Save often, and make backup files often just in case the GECK totally trashes your mod and you need to revert to an earlier version.

Here are some tips on getting past the first initial problems, which will give you an idea of how frustrating this can be. However, if all you need is the basic game worldspace but empty of content, you might consider The Community Wasteland Project which is an ESM file that has safely removed all NPCs, Creatures and scripted triggers from the game and its DLCs instead as an alternative to "rolling your own".

Assuming you want to make your own landscape from scratch, the first step is just creating the world space. Click on "World | World Spaces" in the GECK, and when that form comes up, just click "New" on the left hand side to give your new region a name, and fill in the blanks. Exit out of that, and save your mod, because the next step will usually crash the GECK.

Highlights of the Worldspace

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Center_On_Cell COC Markers

Thanks to pixelhate of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

There's an auto navmesher, but that is buggy as all heck. Some have found that it works reasonably well on wilderness landscapes containing simple objects like trees and cactuses. It often completely fails when the cell contains SCOLs ("static collections") and doesn't work well at all if there are a lot of complex objects inside the cell. That means that you end up having to hand navmesh a lot of cells. If your new worldspace only has a few usable cells, this isn't a big deal, and you can navmesh all of them in a few hours easily. A worldspace has basically 64x64 cells, which is 4096 total cells. You can auto navmesh three or four cells per minute, and once you get experienced at navmeshing, you can probably finish a fairly complex cell in a few minutes. If you figure an average of one cell per minute (being a mix of hand navmeshed and auto navmeshed), that's 4096 minutes to navmesh the entire worldspace. That works out to a bit over 68 hours. If you navmesh for three hours per day (because you have a job or go to school or do something that takes up the rest of your day) then it will take you roughly 23 days to navmesh the entire worldspace.

The auto navmesher will often not navmesh across roads. If you set the auto navmesher to "Height Map Only" mode, it works a lot faster and a lot better, and will usually navmesh across roads just fine. However, it will usually navmesh through fences. So be prepared to hand navmesh any cell that contains a road or a fence.

Use the "b" key in your "render window" to show "cell boundaries". You'll want to arrange buildings and structures and other things so that you can easily do the navmeshing. You wouldn't want a building's door to be straddling a cell boundary, for example.

There's also an "auto generate navmesh" button under "regions". Don't use it. It is very very very very broken. Some have made it work under some circumstances but it is incredibly buggy.

LOD generation is similar. It's not too bad if you only have a few cells, but for a large worldspace it takes darn near forever.

This is why you need to decide ahead of time if you want to create a tiny worldspace that you can finish in a short amount of time, or if you want to create a major sized worldspace that will take you a huge chunk of time to complete.

There's a reason that you don't see too many mods with worldspaces on the nexus. It's difficult to figure out, and buggy as all heck. It also takes a huge amount of time, which is why the few worldspaces that you do see tend to be small and simple. It is not uncommon for a single mod creator to spend so long working on a mod with a new worldspace that the vast majority of that game community has moved on to another game.

One other thing. If you do try to make a huge worldspace, you can use the regions to add a lot of landscape items like cactuses and trees. This is a huge time saver, but be forwarned. If you have ever clicked on an object in debug mode, you'll notice that the object has an 8 character ID, something like 4100D236 (a completely made-up number). This is a hexidecimal number. The first two digits will be the number of your mod (41 in this case), aka its mod index. Fallout gets 00, and the different mods are assigned numbers as you add them into your mod list. On a system with the official DLC, "Dead Money" is 01, "Honest Hearts" is 02, "Old World Blues" is 03, etc. You can see the mod index in most mod managers. So if you add another mod and it ends up loading before this one, that 41 could get bumped up to 42, for example. Now here's the important part. That xx00D236 part means that you have a six digit hex "form" number for the ID. This corresponds to the file offset in your mod. The largest 6 digit hex number you can have is FFFFFF, which is 16,777,215. (The FF mod index is reserved for "save game" file changes to the environment, such as inventory and moved objects.) A worldspace will take 10 to 12 megs just for the heightmap and landscape, not including navmesh and texturing. If you go over the 16 meg limit and add an object, you brick your mod. The GECK will give you no errors at all when it saves your mod, but when you try to load it again, it will lock up the GECK. That means you can't use the GECK to fix it. Hope you have a backup of your mod from earlier somewhere, because that's the only way out of it.

This is important enough to put it another way: What this means to you is that you need to watch your file size. Once you get over 16 megs, you can't add any more objects or you will break your mod. If this happens, the game can't load your mod and the GECK can't load it either, so if you didn't save an earlier copy of your mod somewhere, it's forever broken. Fallout.esm is significantly larger than 16 megs, so Bethesda obviously has some way of packing the data in so that they don't get this problem. But the GECK that you and I get to use can't add objects to a mod that is more than 16 megs in size. You can paint landscapes and add navmeshes and such which can take your mod well beyond the 16 meg limit, but as soon as you add an object to a mod that is larger than 16 megs and save your mod, you just broke it. The GECK won't tell you that it is broken, either. You won't find out until you try to reload your mod in the GECK or if you try to use it in the game. Authors have had to split mods into multiple files to get around this.

(Repeat the mantra: save early, save often, keep backups.)

If you are making a small worldspace, then you probably don't have to worry about this at all. If you are making a large worldspace and are adding tons of landscape objects (cactuses, trees, etc) then you can run into this limit and it will break your mod. So if you are going to do a worldspace, do the landscape first, then add all of your objects, NPCs, creatures, etc. to it, and THEN do the navmeshing and texturing last as those don't care about the 16 meg boundary issue.

TIP Finding cell North in GECK

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

The next step is to create a "heightmap". A lot of people skip this and make small, completely flat world spaces, and use things like cliff objects to do the majority of their landscaping. That's okay for things like a small base surrounded by mountains or something like that, but if you are trying to create a town or something it looks amateurish.

Warning - If you basically default the heightmap settings, it will crash the GECK. Seriously, sometimes it seems like the GECK is a Vault-tec experiment designed to test modder frustrations. The reason for this is that the GECK doesn't like it if the landscape is too low. So the first thing some do is create a random landscape that doesn't have much randomness to it, so that what it ends up doing is creating a basically flat landscape. The settings successfully used under the random generator are a frequency of 100, an amplitude of 50, and a base offset of 6000 if there will be no "tree LODs" or 25,000 if there will be. (Though bear in mind the default LOD "water level" is 10500 if you are planning on any underground structures. It seems the "Default Water Height" and the "Default LOD Water Height" need to be the same. The "Default Land Height" is -2048.0 and that appears to be sensitive to changes, and is best left alone.) The base offset is extremely important since if you don't set it high enough, the GECK crashes.

TIP Generating Worldspace LOD

TIP Static Water goes into Interior cells only

Thanks to madmongo and SnakeSlippers of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

Some folks use things like "geological survey data" to generate their heightmaps. See the last couple of threads in the list of tutorials below (under the Heightmaps section) or poke around on the net.

If all is well so far, save your heightmap and save your mod. If you didn't restart the GECK earlier, chances are that right here is where the GECK will crash. The second time through this it usually works.

Now re-open your heightmap, and use the editing tools to create your mountains, rivers, lakes, etc. You can play around with the default water settings in your worldspace to get the water to line up with where you want it on your landscape. If you used a base offset of 6000 when creating the heightmap, a water height of about 3500 tends to work fairly well. When you are editing the heightmap, make very small changes. If you make changes that are too drastic, you basically tear the landscape and the GECK can't figure out how to fix it and it ends up with a broken landscape that either crashes the GECK or crashes the game or both.

What you probably have at this point is a landscape that has mountains and plains and rivers and lakes and whatever. Save your heightmap and save your mod. If you were to go and look at it though, it will probably be very flat and unrealistic looking. You can add in some randomness to your heightmap to fix that. The settings that some tend to use are a frequency of 2000, an amplitude of 200, a base offset of zero, and this is very important, make sure you click "additive" and "subtractive". If you don't check the "additive" and "subtractive" boxes, it will create a new random heightmap instead of just adding a bit of randomness to your existing heightmap. Now you should have something that looks a lot more realistic. Again, save your mod. The GECK likes to crash for no good reason a lot when doing worldspace stuff.

Now you can go to your "cell view" form, and change "interiors" (where it says "world space") and select your new world space. It will put you right in the center of your new world space. And you'll run into yet another GECK bug. If there is nothing on the landscape, and the GECK hasn't ever focused on any kind of object, the GECK will usually display water instead of your landscape, so you end up looking at a big solid grayish-green blob on your render window instead of looking at your landscape. If this happens to you, select "interiors" in the "cell view", double click on some static object, let the render window display that cell, then go back to your new world space. Sometimes just moving around using the arrow keys will get the water blob to go away once you move far enough to change cells. Once you have objects in your new worldspace you won't have this problem any more, as long as you first go to an area that has objects when you select your new worldspace when you start up the GECK.

Now you can tweak and paint the landscape to your heart's desire, and add objects and do all of that fun stuff. Unfortunately, you have only two basic tools for editing landscape. You can use the "landscape editing" function in the "render window", which limits you to a maximum brush size of 15, or you can use the "heightmap editor". If you are trying to make something the size of a small pond, the "landscape editing" makes you feel like you are carving out Mount Rushmoor using a hand chisel, and using the "heightmap editor" makes you feel like you are trying to do brain surgery with a chainsaw. There's nothing in between. The "heightmap editor" is also a bit quirky. It tends to leave big black square splotches just outside of the view on your render window, and those don't go away when you close out the heightmap editing box. Even if you move away from that area using the arrow keys, the splotches stay there. You can only make them go away by selecting another area from the cell view and then going back to the area where you were.

Buggy buggy buggy. That's the GECK.

TIP Terrain Editor missing texture

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP VWD objects must be static

Thanks to ledzepiv of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:

Copying interior or exterior cells between plugins

Reusing cells from one plugin to another is a great time saver, but you have to bear some things in mind.

  • The Trick is to make your new ESP first, only dependent on the main master file ("FalloutNV.esm"). Save and close it.
Best way to make a new ESP file is to drop something in the "Render" window, then save and name the file. So loading a cell first is needed. Suggest "Wasteland cell / Good Springs" if you don't have any in particular in mind. You can of course delete that cell later from your ESP if it's not needed for your purposes.
  • Then open your preferred tool adding the other files from which you want to use assets, (with your new .ESP as the "active file" in GECK).
  • If you are creating a "DLC sized" mod with new worldspaces, you definitely need to have the GECK in networked developer mode instead of the single user mode that most people use. (See Version Control under TIP Limit to Mod Size.)

At least one novice mod creator has had success using Mator's Merge Plugins Standalone (MPS) tool to combine two (or more) worldspace ESP plugins without having to utilize the network developer GECK Version Control approach. This process automatically merges the selected plugins into a new plugin, which may then require editing.

Note that the resulting combined plugin still needs to conform to the 16MB file limit for "single user mode" plugins. The GECK (but only when using Version Control) re-orders the records, and places things that are accessed via offset down lower into your ESM. Things that aren't accessed via their offset into the file (landscape, landscape textures, navmeshes, quests, etc) are placed afterwards in the file, enabling larger file sizes. This re-ordering was not stated as an intended initial purpose of MPS, so caution is indicated. Please take the time to read all the reasons WHY using Version Control (under TIP Limit to Mod Size) is still recommended.

Finally, you can copy cell records between plugins in FNVEdit. In order to change the FormID of the duplicated Worldspace, you need to work from the bottom up: changing the FormIDs of the children cells before the parent.

You can use either FNVEdit or GECK to duplicate interior cells, but this is how to use the GECK. In the GECK, load up the ESP with the cell you want but don't make it "active", while loading the ESP that you want the cell to end up in (i.e. your new ESP) as the "active file". Then just right click on the desired cell in the "source" plugin and select "Duplicate Cell". It will give the duplicate a name of whatever the cell name is plus COPY (or something like that). If there are any objects in the source cell that are unique to the mod you are copying it from or come from one of its masters that you don't want to include, delete those out of the copied cell. Then save your "active file" ESP. Do not add items to the cell or do anything else other than duplicate it or the GECK can sometimes get confused and it will mess everything up. Just duplicate the cell, remove anything you don't want in your "active file" ESP, and save. That's it. Exit and reload, and maybe rename the cell so that it doesn't have the word COPY in it, and then edit it to your heart's desire.

The GECK only includes a file as a resource if it's a "master file". If you load an ESP, the GECK won't treat it as a master (unless you have configured the GECK PowerUp plugin to allow ESPs to be "masters". The GECK Extender allows this as well without configuring). The GECK will automatically add any master files that the other ESP loaded since those will all be loaded into your new editing session when you load both ESP files.

This will end up including "master files" from the "original ESP" in your "new ESP", so if you don't want them: just delete them from the GECK data screen when you select your mod for loading. However, if you accidentally left in something dependent upon one of those masters in your copied cell, deleting the master will screw up your mod.

Here loading your new ESP with the copied cell(s) in FNVEdit first will enable you to safely see if there are any unexpected "master files" in the "File Header" record list of masters. It's "Clean Masters" command won't remove a "master file" as long as some record depends upon it, which is not true for the GECK.

  • Check for errors in FNVEdit by Right-clicking on your plugin, and selecting "check for errors" from the context menu that then appears.
If there are any remaining dependent records (evidenced by a master you expected to be dropped still being present in the plugin's "File Header" record) you can use the FNVEdit script "List records referencing specific plugin.pas" on that plugin to list them in the log window so you can remove them.
  • Once that is done, Right-click on your plugin and select "Clean Masters" from the context menu.
  • "Sort Masters", which will order them in the plugin according to your current "load order".
  • Check the plugin's "File Header" record for any remaining unexpected "master files".
If there are any, repeat the process. Otherwise, exit and save.

There are a lot of things that FNVEdit and the GECK can both do, they just do it differently. Which one you choose to use is a matter of personal preference, but sometimes one has capabilities the other lacks.

TIP Making Safe containers

Thanks to GamerRick of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Additional Material

The following is not intended to be a complete list, but rather a starting point on articles and videos specific to FNV to assist new mod creators in getting started. Bear in mind that articles in older games may also be of assistance with basic concepts as long as you adjust to the peculiarities of the syntax in the GECK.

Rather than "reinventing the wheel", your life will be a lot simpler if you take advantage of resources made available for your use by the modding community. They also provide useful examples of correctly created elements which can supplement tutorials. These are generally listed on the Nexus in the Modders resources and tutorials category. Check back often. Please respect the various authors usage permissions, and give credit where due.

These articles are not necessarily intended as "tutorials", but do convey useful information to the mod creation process.

Game Time

Time in the game is tracked in "Global Variables" (type: GLOB). The use of "Global Variables" (e.g. GameHour) and GameTime functions such as GetGamesDaysPassed can get tricky. (Using this GetGamesDaysPassed function is preferable to using the GameDaysPassed global variable, which is highly unreliable.) It is necessary to carefully examine the descriptions and examples to understand how each works. They are not as "obvious" as one might think.

The game engine originally stored "time" values as type "float" (i.e. "single precision") values. But when returned in various functions they were often converted into type "short" (i.e. "integer") values. This caused problems, which made it necessary for "New Vegas Script Extender" (NVSE) to intercept and implement as "double precision" values and it's own functions to correct;y deal with returning the proper values. So you need to be aware of these differences when choosing how you deal with time.

(It's "Game Engine fixes" such as these that make NVSE essentially a requirement. As many of the plugins essential to a stable game (such as "New Vegas Anti-Crash", aka NVAC) require NVSE already, don't shy away from using it's functions instead of the vanilla ones. Virtually every mod user should already have it installed.)

- See the GECK entries on List of Global Variables and Special Variables.

NAM files

By default there are "< DLC >.nam" files for all the DLC ".ESM" files. These files cause the game to load those DLC even if they are not "active" in the "load order". If any ".nam" files for specific DLCs are not found, that DLC is not automatically activated (enabled). (It is recommended you rename rather than delete them if you don't want a particular DLC to automatically be loaded.)

Normally, when starting GECK and opening the "File" menu it has automatically "checked" (enabled) the DLC ESM files with "< DLC >.nam" files for loading, but not the "FalloutNV.ESM". There isn't a ".nam" file by default for "FalloutNV.ESM".

The "nam" file contains nothing more than the common name (e.g. "Dead Money") of the respective DLC. When a plaintext "FalloutNV.nam" file with "Fallout New Vegas" as content is created, "FalloutNV.ESM" will be automatically checked (enabled) in GECK's "File" menu just like the DLC.

3D Model and Texture resources

Note that often the models on these sites tend to have very high polygon counts, which the NIFTools either completely choke on or if they do handle it, end up just killing your game performance. Use with caution.


Plugin File Header and Record information by game

Thanks to Sharlikran on the "Afkmods" site Wrye Bash - All Games thread for the following:

"While these pages still provide the best public documentation of the Oblivion file formats, all mod makers should also be using Tes4View, which currently provides the most complete and correct understanding of the mod file format in a readily accessible manner." - UESP Wiki (on the Oblivion page for the TES4 Mod File Format). [These days, instead of the Oblivion tool TES4View, use the game-specific version of xEdit instead (e.g. TES4Edit, FNVEdit, etc.).]

"One of the things about those Wiki pages is the format of the 24 bytes doesn't change much. In my opinion you really only need to compare Oblivion, with one of the other games. About the only thing that changes is the Flags because they are record specific. The TES4 header is defined in the following Data which is a group of subrecords. A GRUP or Top Group also has 24 bytes and indicates the beginning of what will follow. Bethesda's internal tool sometimes introduces duplicate Top Groups which are combined in xEdit. Each record starts with 24 bytes, and then the subrecords follow. After the 24 bytes is the size of the data that will follow from what I understand. From what I know Oblivion is 20 bytes, and that's about the only difference. Zilav [of the xEdit team] only mentioned the other day when I asked that Oblivion doesn't have a Form Version because it was the first use of the new format."

Fallout Record Types

Sources:

  1. Tes5Mod talk:Mod File Format contains comparative counts of use by type between FO3 and FNV, omitted below.
  2. TES5Edit/fopdoc as of 2 Jun 2014 documents the FO3, FNV, and FO4 plugin file formats known to the xEdit team. Only those pertaining to FO3 and FNV are listed here.
FOPDOC has each record on a separate GitHub Flavored Markdown page with sub-record type information. This should be referenced for further details like flag values. (Markdown format is quite readable by the average user with an ordinary plaintext editor.)
  • ACHR = Placed Character/NPC Reference
  • ACRE = Placed Creature Reference
  • ACTI = Activator (usually something like a light switch, plant, etc.)
  • ADDN = Addon Node (Particle Effect)
  • ALCH = Ingestible Potion/Medicine (Alchemy)
  • ALOC = Media Location Controller (FNV only)
  • AMEF = Ammo Effects (FNV only)
  • AMMO = Ammunition
  • ANIO = Animated Object
  • ARMA = Armor Components (Addon)
  • ARMO = Armor
  • ASPC = Acoustic Space (sound effects)
  • AVIF = Actor Value information
  • BOOK = Books (usually one that's actually usable.)
  • BPTD = Body Part Data
  • CAMS = Cameras
  • CCRD = Cards (Caravan) (FNV only)
  • CDCK = Deck of Cards (Caravan) (FNV only)
  • CELL = Cell (Areas that make up the game world. Each interior is in its own cell.)
  • CHAL = Challenges (FNV only)
  • CHIP = Gambling Chips (FNV only)
  • CLAS = Class
  • CLMT = Climate
  • CMNY = Caravan Money (FNV only)
  • CONT = Container
  • CPTH = Camera Path
  • CREA = Creature
  • CSNO = Casino (FNV only)
  • CSTY = Combat Style
  • DEBR = Debris
  • DEHY = Dehydration level (FNV Hardcore mode only)
  • DIAL = Dialog topic
  • DOBJ = Default Object Manager
  • DOOR = Door (Teleports or removes barrier, often used to teleport the player into cells.)
  • ECZN = Encounter Zone
  • EFSH = Effect Shader
  • ENCH = Enchantment (such as Stimpak's healing ability.)
  • EXPL = Explosion
  • EYES = Eyes
  • FACT = Faction (All NPCs and creatures are assigned to one.)
  • FLST = Form ID List
  • FURN = Furniture
  • GLOB = Global
  • GMST = Game Setting
  • GRAS = Grass
  • GRUP = Group
  • HAIR = Hair
  • HDPT = Headpart (Eyes, hair, beards, etc.)
  • HUNG = Hunger level (FNV Hardcore mode only)
  • IDLE = Idle Animations
  • IDLM = Idle Marker
  • IMAD = Image Space Adapter
  • IMGS = Image Space
  • IMOD = Item Mods
  • INFO = Dialog Response
  • INGR = Ingredient
  • IPCT = Impacts
  • IPDS = Impact Data Set
  • KEYM = Key
  • LAND = Land
  • LGTM = Lighting Template
  • LIGH = Light
  • LSCR = Load Screen
  • LSCT = Load Screen Type (FNV only)
  • LTEX = Land Texture
  • LVLC = Leveled Creature
  • LVLI = Leveled Item
  • LVLN = Leveled NPC
  • MAPM = Mapmarker (These are what tell you where a town, etc. is on the map.)
  • MESG = Message
  • MGEF = Base Magic Effect
  • MICN = Menu Icon
  • MISC = Miscellaneous item (such as random junk.)
  • MSET = Media Set (FNV only)
  • MSTT = Moveable Static
  • MUSC = Music
  • NAVI = Navigation Mesh Info Map
  • NAVM = Navigation Mesh (NavMesh)
  • NOTE = Note (which can be activated to show a text string, or the FormID of a Dialog record.)
  • NPC_ = NPC (Non Playable Characters)
  • PACK = Package (See the FOPDOC for the types of sub-records controlling when it gets triggered.)
  • PERK = Skill Perks
  • PGRE = Placed Grenade
  • PMIS = Placed Missile (FNV only)
  • PROJ = Projectile
  • PWAT = Placeable Water
  • QUST = Quest
  • RACE = Race
  • RADS = Radiation Stage
  • RCCT = Recipe Category (Collection)
  • RCPE = Recipe
  • REFR = Placed Object Reference
  • REGN = Region
  • REPU = Reputation
  • RGDL = Ragdoll
  • SCOL = Static Collection
  • SCPT = Script
  • SLPD = Sleep Deprivation Stage (FNV Hardcore mode only)
  • SOUN = Sound
  • SPEL = Actor Effect (Spell)
  • STAT = Static
  • TACT = Talking Activator
  • TERM = Terminal
  • TES4 = TES4 record format header. (Remnant of TES4:Oblivion.)
  • TREE = Tree
  • TXST = Texture Set
  • VTYP = Voice Type
  • WATR = Water
  • WEAP = Weapon
  • WRLD = Worldspace
  • WTHR = Weather


Factions Stealing and Ownership

Factions

This is a topic which gets complex in a hurry in application. Consider the following a broad overview.

Factions are "groups of members" with a relationship to other factions which affect the default behavior between members of those factions, and between members of the same faction. The actor's membership in a faction is processed by the game AI in determining another actor's reaction to them. The key thing is the relationship between factions, rather than between individuals. Actors will never attack "Friends" or "Allies". (See also Custom NPCs.)

You should not generally attempt to change anything about a faction's relationship with another faction. Instead create a new faction, decide which actors or other factions you want to be members of your new faction, and then establish their relationships with other factions. If you haven't fully mapped out those inter-faction relationships, things get "surprising".

If a faction follower is not behaving towards others as expected, consider having it ally with itself. For example, the game vanilla "follower faction" has got the "player faction" and itself as allies. This appears to override all previous relationships of that follower and replace them with those of the player.

Reputation is about how members of various factions (including your own "Player" faction) feel about your character. While related, they are separate issues. Note you can have both positive and negative reputation (fame/infamy) with a given faction at the same time. The "fame label" attached to your character is the result of a matrix of that positive/negative range, given in the referenced wiki article. "Reputation" changes only apply to the Player; not to other Actors.

Once you have "committed a crime" against one member of a faction, the entire faction is hostile to you (and your PlayerFaction). All NPCs react based upon the Actor's membership in a faction and that faction's relationships with their faction, including your "companions" who become part of the PlayerFaction when they are "hired".

The dialogue topics are a hierarchy of responses. The first response which tests ALL conditions as "true" is the response given. (If you are never seeming to get to your desired response, this is the first thing to check.) A Faction's "Hostile" reaction is right up there at the top, so they never get past it to say anything else. If you want them to say something before attacking, then you need to alter the response so that it causes them to bark (say something or make a noise to the player or another NPC) before attacking. If you want them to bark only in the first instance, then you need to add a "DoOnce" conditional test to that response, and have a standard "attack response" after it in the hierarchy. Speaking always takes a bit of time, and "sounds" process independently of other script actions (meaning once started they run until done while the rest of the script is processed), so you just put the bark line before the attack in the script.

It is worth noting that the game designers created separate "factions" for dialogue (e.g. "vSecuritronDialogueFaction", "vOuterVegasDialogueFaction", etc.) that could be tested for in dialogue conditionals in addition to the typical factions (e.g. "vStreetSecuritronFaction") for relationships with other factions.

Various types of armor have faction associations. Wearing any faction disguise armor will turn reputation with that faction to "Neutral". For example, if "Liked" by the NCR but wearing NCR "face wrap armor" (a "disguise armor"), that armor will return reputation with the NCR to "Neutral". It will go back to "Liked" once the armor is removed. Only certain types and sets (in combination with the correct helmet) of armor function as "disguises" in this manner. (See the table in this apparel page of "The Vault" wiki which identifies which vanilla armor counts as a disguise.) "Disguises" provide a temporary membership in their respective faction. Such "indirect" methods of changing faction membership and/or reputation are preferred to directly altering it for the Player.

TIP Companions and Followers
Thanks to miguick of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Faction Disguise system

Stealing and Ownership

"Containers" and their contents have "ownership". This affects who can use items without it being regarded as "stealing". Cells have ownership as well.

  • First the ownership of the item is considered; if none is selected ...
  • Then the ownership of the container is considered; if none is selected ...
  • Then ownership of the Cell is considered.

If the ownership set on the cell is the only way any containers/items are being claimed, then you can just change that to none. But this will also effect any trespassing if it was something in use.

Opening "owned containers" and taking their contents or "owned" items found "lying around", and trespassing (to include opening specific doors with "owners"), have negative effects on the Courier's reputation with the owning NPC and the faction(s) in which they have membership.

You can set NPC container ownership to "Player" as long as it is not a container that another NPC will need to use. But you could use the faction ownership to let the player share the ability to use it, by making a new faction and adding the player to that faction. Anything with the faction ownership set will also count as stealing, unless the player is in the faction or has ally status with that faction.

Containers and "pickable plants" in exteriors can also have faction ownership set. The faction ownership is used so that all people in the faction will consider it a crime and react accordingly. Otherwise only the NPC set as owner would react.

Another way that will set ownership for a whole area is an encounter zone. It looks like the NV main file doesn't set any ownership with encounter zones anyway. But some of the DLC's and others mods may do that. Just mentioning as a place to check on ownership in the future.

Tutorials

Some tutorials are specific on making various kinds of Fallout NV mods with GECK. Others cover aspects of creating mods that are more applicable to mod creation in general. Always bear in mind that the game engine for Skyrim and Fallout 4 is different than that used for older Bethesda games like Morrowwind and Oblivion, and each game version of the engine is different in some way. However, each succeeding game built upon concepts implemented in earlier games, so they are still worth investigating. Your starting point should be the "Basic Tutorials" provided by Bethsoft as part of their "Construction Kits".

Bethsoft Basic Tutorials

Animation

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Animation Sounds

Thanks to Ashtonlp101 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Animation Summary

Thanks to pluramon and RoyBatterian on the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following summary:

TIP Animation Exporting

Thanks to uhmattbravo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP KF edit rotates Actors 90 degrees to right

The following is taken from the "First Aid for frequent problems" section of the Avoiding Blender animation pitfalls Nexus Wiki article.

TIP Play an Animation

Thanks to DoctaSax of the Nexus Fallout "New Vegas" forum for the basis of the following:

Armor and Clothes

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Note the KGTools web site containing the downloads is no longer accessible. Use the links on this site (adults 18+ only) instead.

TIP Armor Skin Tones

Thanks to AusAllerWelt of the Nexus "New Vegas Mod Troubleshooting" forum for the basis of the following:

TIP Bone Weighting

Thanks to madmongo of the Nexus Fallout "Discussions" forum for the basis of the following:

TIP Exporting a mesh from Blender for import into GECK

Blender Mesh Editor

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Blender version NIF export

Thanks to EPDGaffney and madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Clear the display

Thanks to M48A5 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Export Settings

Thanks to AusAllerWelt and madmongo of the Nexus Fallout New Vegas "GECK and Modders" Forum for the basis of the following:

TIP Import Animations

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Import Mesh

Thanks to madmongo and AusAllerWelt of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Import other Model Formats

Thanks to madmongo and user826 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Import Texture

Thanks to AusAllerWelt of the "Fallout New Vegas Mod Talk" forum for the basis of the following.

TIP Import Texture NIF appears Black

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Mesh Object Bounds

Thanks to madmongo of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Noob to Pro Tutorial

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.

TIP Unweighted Vertices

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Collision

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Collision Impact Sounds

Thanks to pixelhate and miguick of the Nexus Fallout "Mod Talk" forum for the basis of the following:

TIP Custom Object Collision

Thanks to madmongo and pixelhate of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Conversions

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Tools behind a "gated" "Adult (18+) Only site" in their "modder resources" section.

TIP Converting meshes

Thanks to madmongo and MA48A5 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Copying between plugins

Creature Creation

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

The process of creating a "creature" is essentially the same as creating a "NPC Companion", but without the "companion wheel".

TIP Locate Embedded Creature Weapon

Thanks to uhmattbravo of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for the following:

Custom NPCs

Other sections have relevant information to this subject. The following "Tips" in particular are applicable.

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

"All Companions are NPCs, but not all NPCs are Companions." Both are discussed in this section, but please note and bear in mind the distinction when used.

TIP Actor height in GECK

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP AI Package Basics

TIP AI Packages and Distance

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Avoid CTD previewing NPCs

TIP Changing only one race

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP CharGen Face Presets

Thanks to madmongo of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following.

TIP Companion Wheel

Thanks to madmongo of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for the following basic summary:

TIP Custom NPC Race

Thanks to Armok74 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Custom Race and Faces

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Custom Race and Skin Textures

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Hostility between NPCs

TIP Interrupt combat for dialog

Thanks to clanky4 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Making NPCs move aka AI Packages

Thanks to madmongo, EPDGaffney, FiftyTifty, and UnvalidUserName of the Nexus FalloutNV 'New Vegas GECK and Modders' and kingbeast88 of the 'New Vegas Mod Troubleshooting' sub-forums for the following basic summary of how to get NPCs to move:

TIP Merchant Inventory

Thanks to EPDGaffney and madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Only Combat Teammates give XP to Player

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Perks for Companions

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for providing the following quotation:

TIP Switching Custom Facial Features

Thanks to rikkurikku and Budong of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Trick with making NPCs

TIP Turn a Temporary Companion into a Permanent one

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Using AI Packages

Dialogue and Lipsynch

Other sections have relevant information to this subject. The following "Tips" in particular are applicable.

  • See the Custom NPCs section regarding scripting "AI Packages" and "Conversations".

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Adding Animation/Video to Dialog

Thanks to Radioactivelad of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Adding Generic Dialog

Thanks to madmongo of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Batch Lip file generation

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Conversation or Quest system

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Conversations between NPCs

Thanks to ashtoplp101 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Tip Cutting Lip files to match dialog

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Get the current speaker reference

Thanks to FiftyTifty of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP How to generate lip files

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Locating voiced dialog

Thanks to clanky4 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Multiple Greetings

Thanks to madmongo of the Nexus "Fallout New Vegas Mod Talk" forum for the basis of the following:

TIP No sound driver available error message

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Obsidian Conversation Editor aka OCE

Thanks to EDPGaffney (the "I" in the following) of the Nexus "New Vegas GECK and Modders" forum for the details of this tip:

Tip Random NPC Comments

Thanks to Mktavish of the Nexus Fallout New Vegas GECK and Modders forum for the basis of the following:
Budong added the following alternative method:

TIP Record new voice files

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Say Once use

Thanks to Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP SayTo Player

Thanks to ashtonlp101 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Standard Dialog

TIP Talking Activators

TIP Text display timing

TIP Topic and response line limits

Thanks to ashtonlp101 and ElPascal of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

FaceGen Heads Faces Hairs and Helmets

This information is compiled from a number of threads, guides, and articles by authors such as DrakeTheDragon, throttlekitty, Ghogiel, scanti, and Skree000. It is an overview at best.


Hair NIFs usually have two models inside of them, one called Hat and one called NoHat. Adjust your alternate hairstyle's Hat model so that it doesn't clip through any hat you want the Actor to wear.

The heads of characters and NPCs in Bethesda games are created using the builtin FaceGen tool, which is a licensed Singular Immersion FaceGen Modeler. According to the FaceGen site "Customizer" tool user manual the resulting information is stored in the following files.

Each model part consists of one or more of the following file types, with the same root name:

  1. TRI. This is the base mesh, which includes UVs and information about morph targets but not the FaceGen shape changes.
  2. BMP. This is the base texture.
  3. EGM. This is the statistical shape information, which is used to modify the base face shape. Without this file, the mesh will never change shape.
  4. EGT. This is the statistical texture information, which is used to modify the base texture image. Without this file, the texture image is fixed.
  5. FIM. This is the UV remapping transform, which is used to transform the detail texture in the FG file (taken from a photograph) into the UV layout of this mesh. Without this file, a mesh cannot have a detail texture applied.

EGM, EGT, and TRI extension files are in turn are used to construct "OBJ" (whole head mesh) files. This is because "faces", "hair", and "helmets" have to be able to "morph" or "conform" to the underlying "head" mesh. Different heads can be used with the same body to provide the customized faces of PlayerCharacters.

Note that everything related to the head must be placed in a BSA for it to be processed properly by the game engine. Otherwise the "loose files" do not get "conformed" to the head mesh properly. (Use the "BSArch" tool linked in the Packaging Tools section to create/update your BSA file.)

Fallout 3 EGM manipulation

The following is based upon a FO3 thread entry by Skree000.
Note that if your head "accessory" (hat, helmet, piercings, etc.) is not conforming to the head, you may need to "unequip" and "re-equip" the accessory whenever you edit your face so it will reconform.

Fixing Mismatched Face and Body Race textures

Thanks to QWinn's article of the Nexus Mod Qwinn's Refined FNV Redesigned 3 for the basis of the following:

Havok Physics

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Havok a dead NPC

Thanks to madmongo and jokerine of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Heightmaps

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Interior Creation

Often neglected topic because the GECK tutorials walk you through the process. Thanks to EPDGaffney and random411 of the Nexus Fallout "New Vegas GECK and Modders" forum for pointing out the need for this section.

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Angle and Grid Snapping

"Angle snapping" & "grid snapping" buttons are covered under "Categories: Preferences" and in the "Bethsoft Tutorial Layout on the GECK Wiki site. You want to enable this and configure the spacing before you start doing anything else.

Basic Interior location design guide

Thanks to djmystro of the "Fallout New Vegas" Mod Talk" forum for the basis of this section. He is the "I" reference in the following. The original source is the thread "Interior Location Creation Tutorial" in that forum.

Static Collections

Others have suggested you might want to add static collections. You can group entire rooms into a static collection, which you can change in game. This makes much easier if you want multiple versions of the same room.

However, it is not always a good idea. Making SCOLs that are very large, composed of many different objects, is just bad practice. SCOLs only help if you're making them out of 2-3 of the same objects, or if all the objects share the same type.

For building purposes, yes: It's convenient. But too many SCOLs, especially if they are large, can produce even worse performance than if the statics were by themselves.

The beauty of SCOLs is that once they are in place, you can ungroup them. It allows you to make more complicated objects and place them with the intent of splitting them later. One thing that this is useful for is if you were to make an indoor garden. You could put the planter and the plants in the same static collection and make a few template planters.

If all the objects share the same textures, then it may be even better to keep them in a static collection (if you use the static collection more then once).

LOD Generation

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

NOTE: The GECK LOD generation process uses "decimation" to create it's "low polygon meshes" for LOD/VWD. Please read the TESTG site sub-topic The problem with LOD/VWD files about why this is believed to be less effective than that used in later games such as Skyrim.

TIP xLODGen

Misc Topics

Subjects with only a short list of entries, not yet warranting their own section.

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

ESM and ESP Files

Master Files (those with a ".ESM" extension - e.g. Fallout3.esm) and Plugin files ("TES files" or "mods" for short - files with a ".ESP" - e.g., Fallout3mod.esp) are the core data files of Bethesda games. A master file acts as a database of all of the data for the world, including object data, dialogue, game settings, object placements, AI settings, landscape, script commands, cells, etc. The GECK is the primary tool we use to create, view, and edit master files and plugins for the "Fallout 3" and "Fallout: New Vegas" series.

(However, not all game data files are Master and Plugin files. Textures, meshes, sounds, videos, etc. are all part of the full game. More about these files elsewhere.)

Master files and Plugins are largely identical in format, but have some important distinctions in practice. The main practical difference is that GECK will not (natively) create Master files. Nor will it allow Plugin files to modify other Plugin files. (The Extender and PowerUp addons overcome this limitation.) However, be aware that when you change an ESP to an ESM, you can only do this properly by setting the file header "master" flag in xEdit/FNVEdit (though now with the GECK Extender you don't need to change the extension so long as the "master" flag is set) so that the ONAM record is generated; otherwise overrides to cells will not work. Additionally references by packages to markers and other scripted objects need to be persistent or they will not work in an ESM. See the GECK: Data Files entry for more.

It sometimes helps to think of using ".ESM" files to add new things, and ".ESP" files to change existing things or modify existing areas. Depending on how you create your "ESM", it might not modify existing things in-game. In other words, if there is an existing navmesh, an "ESP" will overwrite that navmesh, but an "ESM" might not. Similarly, if your "ESM" deletes an object (like a rock) it might work as an "ESP" but the rock might still be there as an "ESM".

It is possible for more than one Plugin file to depend upon the same Master file. They don't even have to be by the same author. Such Plugins are called dependencies. xEdit (aka FNVEdit) is the primary tool used to identify and manipulate such "master/dependent" relationships. (See the wiki article Missing Masters. LOOT can also detect such dependencies, but not alter them.) It can also be used to edit the values of specific records, and to create "compatibility" and "merge" patch files. (See the wiki Merged Plugin Guidelines for Personal Use article.)

If you have a problem with navmeshes after converting an ESP to an ESM, the problem likely is the original navmesh was deleted and your edit needs to be changed to an override (using xEdit/FNVEdit), then refinalized in GECK. A navmesh in the ESP will also eventually stop working. It is a known bug in the Gamebryo Engine and was not fixed until later in Skyrim's life (Creator Engine).

TIP When can you use an ESM only mod
Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Factions and Reputation

GIMP Posters and Images

How to do something

How to add Loading Screens
Thanks to jessesDRpepper of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

How to change Game Settings aka GMSTs
Thanks to punchbattle of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

How to create a challenge

How to create a message

How to create a perk

How to create a Primative - activators, trigger volumes, multibounds, and occlusion planes

Tip Interior Occlusion problem
Thanks to FiftyTify, Radioactivelad, and placeholderthesteam of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following.

Tip Transparent Activators
Thanks to EPDGaffney and pixelhate of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

How to make a working pipboy icon''

Tip Pipboy Icons
Thanks to Leakingroof of the Nexus Fallout3 forum for the wiki article, and scrivener07 of the New Vegas Mod Talk forum for the basis of the following:

How to Move a Quest NPC
Thanks to madmongo and kingbeast88 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

How to Restore edited records
Thanks to dudeapocalypse of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

Import Custom Videos

Item Creation and placement

Make Readius Screenglares

Markers

TIP Portable xMarkers

NVSE Plugins

Unfortunately there is neither documentation nor tutorials on creating an NVSE Plugin. The only advice is to use the older, freeware IDA 5.0 Disassembler by Hex-Rays for 32-bit executables, which is hosted on the ScummVM site, and your knowledge of "C-like" programming languages. From that page:

A recent discussion [Mar 2018] about the most recent IDA Disassembler freeware 7.0 revealed that it no longer supports disassembling older DOS and Windows executables. This is obviously a problem for potential contributors, as well as potential GSoC students wanting to reverse engineer an old adventure game or RPG for their project. The obvious solution is to provide an earlier freeware version that still supports them. Consulting with Hex-Rays, they're kindly consented for us to host one of the earlier IDA freeware versions, for those in the future who wish to use it.

PAINTdotNET Normal Maps

Recipes

UV Mapping

XML

XML is a "data definition" structure, based upon a "data schema" which was defined by Bethesda. They didn't publish their "schema", but some things have been learned about it. However, without a published scheme, you must either use only elements found in other XML files, or be willing to experiment.

Music and Sounds

Fallout New Vegas features a brand new music engine versus that of the one used within Fallout 3 and Oblivion, which has effectively rendered the music tab within the creation of cells useless. See the Wiki tutorial Fallout New Vegas Music for the description of how this now works.

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

File folders by type:
  • collision sounds made by objects hitting other objects or the ground are aspects of the "Havok Material Properties" (edited with NifSkope), and are addressed under the topic of "Collision" in TIP: Collision Impact Sounds. These sounds are hard-coded into the game engine, but the main game typically uses only 32 of the identified 96 possibilities.
  • music (Data\Music): location/event soundtrack. MP3 stereo files.
  • songs (Data\Sound\songs\radionv): radio playlists. Individual song title files begin with the "mus_" prefix, and a "_mono" suffix. Mono: WAV (Pipboy) or OGG (radios/speakers) files; or Stereo: MP3 (Pipboy) files. Besides the obvious problem of a gigantic difference in file size (WAV files are roughly 5 times those of MP3s), this engine will actually play a stereo WAV file on a radio station twice (first the left channel will play, and then the right channel). This problem does not occur with stereo MP3 song files. See the TIP: Format to call a song for more detail on file formats for "radio stations".
  • sounds (Data\Sound\fx): noise/ambience/special effects(fx). WAV mono files. There are a number of sub-folders in the BSA under this category. These are just a sampling of common interest under this category:
  • amb (background noises): OGG files.
  • fx (sound effects): WAV mono files.
  • mus (location music): OGG files. Sub-folders for types:
  • bttl\allcityintro
  • bttl\allcityoutro
  • bttl\allruralintro
  • bttl\allruraloutro
  • endgame
  • inc\night
  • inc\peaceful
  • inc\day
  • inc\creepy
  • mysteriousstranger
  • tenpenny
  • npc (by type of actor): WAV mono files.
  • voc (sound effect "voices"): WAV mono files. These can be "broadcast" from radios or speakers with the playsound function in the menumode for terminals. The sound file length controls the timing.
  • voices (Data\Sound\voice): dialog. OGG and LIP mono files. These are "spoken" by Actors as "talking head" dialog. The LIP file controls the timing.

Tip Adding a new sound noises or fx file

Thanks to EDPGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for contributing clarifications to the following:

TIP Adding breathing effect to helmets

Thanks to ATalkingMicrophone of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:

TIP Format to call a song

Thanks to EDPGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Multi-Level Areas

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Music and Dialog

Thanks to Glenrhee of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Music OFF while Streaming

Thanks to TheWeekendSlice of the Nexus Fallout "Mod Requests" forum for the basis of the following:

TIP Random Multiple Sounds

Thanks to KICHo666 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Replacing Battle Music

Thanks to KadoDragon and DaemonGrin of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP TCD and Gunfire Detection Events

Thanks to punchbattle of the "New Vegas Mod Talk" forum for the basis of the following.

TIP Weapon firing sounds

Thanks to Scott Clemmons of the GameAs "Fallout: New Vegas" forum for the basis of the following:

Navmeshing

(The process is essentially the same between the GECK and the Creation Kit. See also the Worldspace Creation section.)

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Bug extending NavMesh

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Draw Navmesh Quickly

Thanks to kingbeast88 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Navmesh Boundaries

Thanks to madmongo and EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Navmeshing Exterior cells

Thanks to madmongo, EPDGaffney, and kingbeast88 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Navmesh marker for Portal relocates

Thanks to chucksteel and madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

NifSkope Mesh Editor

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Attaching a light source to a mesh

Thanks to MonsterMonkey of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Body part is floating

Thanks to AusAllerWelt of the Nexus "New Vegas GECK and Modders" forum for the basis of the folowing:

TIP Convert NIF header

Thanks to pixelhate of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:

TIP Lighting Property Flags

TIP Merging parts from different source files

Thanks to madmongo and M48A5 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Model Lighting

Thanks to EPDGaffney and pixelhate of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Rotate Mesh

Summary from How To Rotate A Mesh In Nifskope

TIP Shiny lines in exported NIF normal map

Thanks to TzeHuen, pixelhate, and KiCHo666 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Scripting

Other sections have relevant information to this subject. The following "Tips" in particular are applicable.

  • See the Custom NPCs section regarding scripting "AI Packages".

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Refer back to the section GECK Form-ID, Base-ID, Ref-ID, and Editor-ID as necessary until the different types of "IDs" become second nature. The distinctions are crucial to getting various script functions to work correctly. They will primarily work with either Editor-ID or Reference-ID values. They seldom work with both, but if so the syntax must be read carefully to determine which type of value is used for each parameter.

Even if you have another favorite text editor, strongly suggest using Notepad++ along with the GECK specific syntax highlighters listed in the Programs and Tools section. These will catch most syntax errors, saving you a lot of grief.

There are 3 kinds of scripts:

  • The default when creating one is an Object script. Which means this is a script that can be attached to anything in the object tree of GECK that has a "script" drop down field ... except for Quests and Base Effects.
  • Quests require you to select the script as a "Quest" type. They are called (triggered) by various "Quest" conditions.
  • Base Effects require you to select the script as an "Effect" type, available when you are on the window with the "Script" drop down list. Only those type of scripts will show up in the list.

Effect scripts attach on "Assoc Item" just below "Effect Archetype". But Object and Quest scripts are straight forward on where to attach the script: to "Objects" or "Quests" respectively.

Reference variables must be "defined" and assigned a value before they can be used in a command. This often occurs in one of the script types that are executed before the one you are looking at in the moment. But don't assume they are: verify if your script won't save.

So in short: creating a script & saving it (which "compiles" it; turning it into actual code instead of "human readable" instructions) is required for it to then exist. If a script fails to compile, then it won't be saved. Use CIPCIS to determine if it is a simple syntax error preventing your script from compiling. But bear in mind CIPCIS is not aware of "script extender" syntax, so such will produce as error as an unrecognized command. Otherwise the problem is most likely either using an inappropriate command choice or the wrong type of value for the function in question.

But merely existing in a saved/compiled form means nothing towards having that script tell the game engine what to do. You must attach it to something (based upon which one of the 3 types it is) to then have the script code interact with the other dynamic game code.

Scripting Assistance

  • GECK Extender NVSE Plugin. Project to extend GECK functionality and bug fixes. Compatible with all NVSE script extender plugins. (Do not use together with GECK Powerup (nor the Forked version), which it replaces.)
  • GECK 1.4 Powerup Mod. Comes in a "standalone" version for the "vanilla" GECK functions, and one for GECK with NVSE functions. It fixes and improves some issues while providing the missing messages when the GECK compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by experienced mod creators. (Replaced by GECK Extender. Do not use both together.)
  • CIPSCIS: Scripting for Beginners HTML Tutorial. Does not support "script extender" syntax.
  • Top 15 Best Practices for Writing Super Readable Code HTML.
  • RuntimeScriptProfiler by lStewieAl - shadeMe. An NVSE plugin to profile script execution. Ported from shadeMe's Oblivion plugin. Use this to check how efficient your script is when running.

TIP Best Practice Do not begin EditorIDs with numbers

Thanks to madmongo and EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Best Practice Encapsulation Parens Brackets and Braces

Thanks to DoctaSax of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Best Practice Function parameter separation with commas

Thanks to DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Best Practice Sharing Variables between Scripts

Thanks to the contributors to the Fallout New Vegas GECK & Scripting Help 101 forum on the (Age 18+ gated) "LoversLab.com" site for the basis of the following:

TIP Best Practice Type prefixes for Variables

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Tip Best Practice Avoiding Save Game Bloat

TIP Assigning and Testing variables

Thanks to Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Adding Items to Actors aka Leveled Lists

Thanks to Ladez, EDPGaffney, madmongo, and GamerRick of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Basic conditional test syntax

TIP Block Types Multiple vs Single Frame processing

TIP Companion Inventory Weight

Thanks to user826 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Compiling Scripts

TIP Corpses are not Actors or Objects

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Debugging Compound Conditionals

TIP Debugging data to file

Thanks to DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for help with the following.

TIP Dismembering a corpse

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the following.

TIP Dispel Effect

Thanks to DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Do not overlook EventHandlers

Tip EventHandler for HotKey

Thanks to FiftyTifty of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP GameDaysPassed Bug

Thanks to Asterra and DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP GECK parses the entire line before evaluating

Thanks to DoctaSax of the Nexus Fallout "New Vegas GECK and Modders" forum for the following.

TIP Get Actor Health functions

 

TIP Level Lists and GetBaseObject versus GetBaseForm

Thanks to EPDGaffney, DoctaSax, and Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Level Lists Nesting

Thanks to FiftyThifty of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Limit Radio Range to multiple Interior Cells

Thanks to EPDGaffney and user826 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Mannequins aka static Actors

Thanks to b0bulat0r of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Master Dependency Checking

Thanks to miguick of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Menu Options using GetItemCount

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Mod Additions list

Thanks to DoctaSax of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Multiple Script Effects

Thanks to FiftyThifty of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP NPC Weapon Choice

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Object Transformation

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Pass a variable number into a script message

TIP Passing a Note to the player

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Passing a Recipe to the player

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Perk effect on target

Thanks to Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Preload Scripts

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Quest Advancement

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum and RangerBoo of the Nexus Fallout "Mod Troubleshooting" forum for the basis of the following:

TIP Quest Delay timer

TIP Quest Stopping within its own script

Thanks to EPDGaffney of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Referencing Objects

Thanks to uhmattbravo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Relocating objects to Player by script

Thanks to madmongo and Nexusmodsaccountno2 of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

TIP Restricting OnActivate blocks

Thanks to uhmattbravo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Script Result vs Result Script

Thanks to Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Script Size limit

Thanks to jazzisparis of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Special Characters in String Variables

Thanks to Radioactivelad of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Testing new to you functions

Thanks to Mktavish of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Timers

Thanks to xqdcss of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Traits

Thanks to daliawithoutanh of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:

Texturing

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Custom Posters

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Customizing an existing texture

Thanks to pixelhate on the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following summary:

TIP Improving Texture Normal Maps

Thanks to pixelhate, EPDGaffney, and madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

TIP Saving Texture (DDS) with Transparency

Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Weapons

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP GECK CTD when editing weapons

TIP Weapon Effect Animations

Thanks to pixelhate of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:

TIP Weapon has unexpected zero percent VATS Chance

Thanks to yummy2 of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:

Worldspace Creation

(Worldspace creation is basically the same between FO3 and FNV. See also the Navmeshing section.)

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

TIP Creating a new world map

Packaging Mods for Installation

Once you have created (and tested) your mod, you still aren't done. You have to "package" the ESM & ESP files, and all related "assets" into a structure suitable for installation. And given that there are more than one "mod manager" in use by people, this requires some forethought. Once you have created your "mod package", you then have to "publish" it on the Internet, presumably to the "Nexus Mods" site which is the assumption here.

Note: If you package your mod into an "executable installer" (so it has a ".exe" extension), it cannot be installed with a "mod manager". They can only deal with packages in 7Zip, ZIP, or RAR archive formats. You would have to "run" the installer executable first so it unpacked the package into a folder, and then manually move the contents of that folder to the correct locations under "Data".

[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]

Re Original images: You can use screenshots from the game, as long as you are the one who took them, or you use those posted by others with their explicit permission. When in doubt, see the "Terms of Service" and the image "file" page to check the permissions there.

Re Music: If you intend to include externally sourced "music", "voices", or "sounds", see the wiki article Illegal Music Pack Uploads and You. Unless it is your own original work, it's copyrighted by someone else. You have to check for permissions.

Re REQUIRED: That setting is for linking other mods/plugins that are essential for your mod to work correctly.

A video does not fall into that category, as it can only be describing how to install or use your mod. Your best bet if you feel it is essential people use it for your documentation is to provide that explanation and link it prominently in your description (as well as under the "Video" tab). (See the wiki Formatting and BBCode in Descriptions article.) However, bear in mind that:

  • Not everyone likes or can even watch some videos: e.g. medical conditions; a different native language (not easily translated from a video; while it is from a text file);
  • A video is no substitute for written instructions which should be included in a "ReadMe" file. That link not only explains that position but links to a "ReadMe Generator" program to help you create a "proper" file.
  • Most players do not want to read/view anything to get a mod installed. People (well, most of them) never seem to RTFM. They assume all they need to do is install, and at most then add it in their mod manager to their current game settings. They will then turn around and complain your mod is "broken" and demand you fix it NOW. This is a "fact of life" for mod creators. Plan for it, and reduce your installation complexity upfront as much as possible.

To that end, learn how to properly package your mod.

TIP BSA Files

Thanks to Zilav (of xEdit, BSArch, and TTW fame) in the Nexus Fallout "New Vegas Technical Support" forum for the basis of the following:
  • File Names.

While your current mod related filenames undoubtedly make sense to you, it is highly likely they were not named with the player or packaging in mind unless you are quite experienced with supporting mods. The number of mods with the "documentation" in a file simply named "ReadMe.txt" (as if there were no other files with that name, ever) is only slightly less than the total number of mods in existence. This might work for packaging a mod, but when it is unpacked by a mod manager (which typically place all installed "documentation" into a common "docs" folder) the latest installed will overwrite any already existing with that same name. Similarly, a number of mod plugin files with disconnected names (e.g. "name1.esm", "name2.esp", "patch-x.esp") when installed into a "load order" get separated and lost in the list of filenames and become extremely difficult to associate with each other unless some care is taken to prefix them with a common string such as the mod name or abbreviation. And without something to tie the mod abbreviation or prefix to the full package name (such as using both in the "ReadMe" filename), it can become impossible to trace backwards from the individual filename to the mod package name. Listing all the related plugin filenames and their purpose in a "documentation" file is also a reasonable practice for the benefit of both the author and the user.

Consequently, you need to give all the individual files in your package a common prefix. Long path and filename combinatons (up to 255 characters) are not a problem for modern operating systems, so don't be afraid to use them if necessary but try to use some restraint. This also means you need to ensure that anything which depends upon knowing those specific filenames (such as BSA files) is also updated.

  • Packages.

Packages can be divided into two categories: "standard" and "private":

  • A "standard" structured package follows the directory structure used by the game: that is vanilla game sub-folders under "Data" (such as "Meshes", "Textures", "Menus", etc.), with possibly additional "mod specific" sub-folders under those (e.g. "Meshes\armor\<ModName>"). Such can be handled by any of the available managers. Note the current generation of mod managers do not require you to include the "Data" folder itself. See the wiki article Modding Etiquette.
  • A "private" structured package introduces layers of non-vanilla sub-folders (e.g. "<Mod Name>\Data\<Mod version folder>\Meshes", etc.). Such have to be manually restructured to remove the offending "non-standard" folders before they can be properly installed using a "mod manager" (or even recognized if installed manually).

Obviously you want to create "standard" structured packages to avoid having to deal with the questions your users inevitably will have in getting your mod installed.

The most common mistake is that people misunderstand the part about creating an archive package that goes:

go back into the root of the folder so that the address bar once again shows '''C:\<MyMod>''' and then select all the files (.esp & .txt) and folders (meshes & textures) and right-click on them

You are NOT supposed to select the folder C:\<MyMod> in the example. You are supposed to select all the files (and any sub-folders) under that folder. If you select the folder itself, then the package gets created with that folder name as the top level in the archive, and every "mod manager" will treat it as a new folder under the "Data" folder. The files will not get placed in the correct locations; they will be buried one level down and never seen by the game engine.

Even when you build a "standard" package, the structure can be categorized into one of two forms: "simple" and "complex".

Simple structure

All modern "mod managers" can easily install packages with a "simple structure" that starts under (not including) the game "Data" folder (e.g. "Meshes\<category>\<mod name>\<other sub-folders as needed>"). They either add their files directly to the existing vanilla folders, or under their own sub-folder in order to keep them separate. It all depends upon the paths used when building the mesh and texture files. They might create their own, new folders starting at the "Data" level (e.g. "Data\NVSE"), but the package structure simply has the new folder in the package at the same level as the top level vanilla folders, like "Meshes", "Textures", and "NVSE". The "Data" folder is assumed by the manager. This is the reason some package structures, which require they be installed starting in the game root folder (e.g. "Fallout New Vegas\LOOT"), usually cannot be installed correctly with a "mod manager".

Complex structure

The simple structure does not have "conditional install components": meaning some files that are only installed under certain conditions such as the presence of a plugin from a different mod. Complex structure may also require certain "scripted" modifications to existing (usually vanilla) files. The different "mod managers" vary in their ability to handle such scripting (often called "install wizards" or simply "wizards"). If the scripting capabilities of a particular manager are required, it is the author's responsibility to make this adequately clear to the potential mod users. Often such structures use various sub-folders to group the files related to the specific condition together.

Understanding how the various "mod managers" can assist with installation will enable you to use a structure that takes advantage of the most available features of all of them.

Uploading to the Nexus

Mod Publishing Tutorial is written for Skyrim with plenty of illustrative images, but should be pretty universal with obvious changes for any specific game. It's on Nexus, but as the author suggests using the HTML version, that's what's linked first.

An older alternate, shorter version is the wiki How to upload mods article.

The wiki Formating and BBCode in Descriptions article can help you create a more distinctive description page. Remember: this page is where you "sell" your mod to potential players. Like any advertising campaign, "eye appeal" is important.

The next step

So, you wonder if you are ready to step out of the novice stage. You know you are at this stage after you realize the grand scheme you had in your head for your idea isn't going to happen, and scale back your initial ambition.

You should start looking to the forum boards and reading what others are coming up with for idea's on what to mod. Then just take that idea and since now you are more familiar with the GECK and information resources (like the GECK wiki), see if you can solve the problem with their idea. Just in a "lurking" fashion if you don't want to actually go public.

Many mod creators have found this to be a huge source of learning material, since they cannot come up with all the various idea's on what to mod on their own. Helping others is actually helping yourself, and there is nothing like trying to solve a particular problem to consolidate all the various bits of information into an understanding. You will almost always learn something new when investigating how to accomplish another's idea. (Anyone who has engaged in teaching others will tell you they learn more preparing to teach than they started already knowing.)

And just for learning purposes there are all the past posts, some of which have been solved. Many haven't, so there is no shortage of first time solutions to be worked out.


References

(Generally in order of appearance in the article.)

Refs Programs and Tools

Refs GECK Tools

Refs Image Tools

  • Maya (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.)
  • NIF tangents and binormals updater (freeware) by zilav.
  • NifSkope (freeware.) Note this is the latest release and may not be the best choice for FO3/FNV.

Refs Packaging Tools

Refs Scripting Tools

Refs Sound and Voice Tools

Refs Misc Other Tools

Refs Details

Refs Common Problems with GECK

  • New Vegas Templates (Hidden Category). This article section consists entirely of file "Template:GECK: Common Problems" content, which needs to be edited directly to update.

Refs GECK and the Active File

Refs GECK Form-ID, Base-ID, Ref-ID, and Editor-ID

Refs Custom items

Refs Custom Creatures

Refs Spawning modded items

Refs Worldspaces

Refs Additional Material

Refs 3D Model and Texture resources

Refs GeckCustom.INI

Refs Factions, Stealing and Ownership

Refs Bethsoft Basic Tutorials

Refs Animation

Refs Armor & Clothes

Note the KGTools web site containing the downloads is no longer accessible. Use the links on this site (adults 18+ only) instead.

Refs Blender (Mesh Editor)

Refs Collision

Refs Conversions

Tools behind a "gated" "Adult (18+) Only site" in their "modder resources" section.

Refs Creature Creation

Refs Custom NPCs

Refs Dialogue & Lip-synch

Refs FaceGen: Heads, Faces, Hairs, and Helmets

Refs Havok Physics

Refs Heightmaps

Refs LOD Generation

Refs Misc Topics

Refs ESM & ESP Files

Refs Factions & Reputation

Refs GIMP: Posters & Images

Refs How to ...

Refs Import Custom Videos

Refs Item Creation & placement

Refs Make Readius Screenglares

Refs Markers

Refs PAINT.NET: Normal Maps

Refs Recipes

Refs UV Mapping

Refs XML

Refs Music & Sounds

Refs Navmeshing

Refs NifSkope (Mesh Editor)

Refs Scripting

Refs Texturing

Refs Weapons

Refs Worldspace Creation

Refs Packaging Mods for Installation



Nexus wiki articles referred to by this article:


Nexus wiki articles that refer to this article: