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

From Nexus Mods Wiki
Jump to: navigation, search
(Custom NPCs: update)
(TIP Alternate Textures: update)
 
(244 intermediate revisions by 2 users not shown)
Line 25: Line 25:
 
</div>
 
</div>
  
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).  [http://www.darkcreations.org/testg/wiki/Main_Page The Elder Scrolls Texture Guide] (TESTG) site has a [http://www.darkcreations.org/testg/wiki/Glossary 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?)
+
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).  [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Main_Page The Elder Scrolls Texture Guide] (TESTG) site has a [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Glossary 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?)
  
 
== <span id="Programs_and_Tools"></span>Programs and Tools ==
 
== <span id="Programs_and_Tools"></span>Programs and Tools ==
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.
:* [http://geck.technodeep.net/index.php/Main_Page Community GECKWiki]
+
:* [http://geckwiki.com/index.php?title=Main_Page Community GECKWiki]
 
::* [http://geck.foesmm.org/index.php/Tutorials GECK: Tutorials]
 
::* [http://geck.foesmm.org/index.php/Tutorials GECK: Tutorials]
::* [http://geck.technodeep.net/index.php/Category:Getting_Started#My_First_Vault_Tutorial_Series GECK: 'My first vault' tutorial series] Bethesda's intro to mod creation.
+
::* [http://geckwiki.com/index.php?title=Category:Getting_Started#My_First_Vault_Tutorial_Series GECK: 'My first vault' tutorial series] Bethesda's intro to mod creation.
::* [http://geck.technodeep.net/index.php/Category:FAQ GECK: FAQ] Simple questions with answers.
+
::* [http://geckwiki.com/index.php?title=Category:FAQ GECK: FAQ] Simple questions with answers.
::* [http://geck.technodeep.net/index.php/Category:Advanced_Modding_Techniques GECK: Advanced Modding Techniques] Questions with tricky answers.
+
::* [http://geckwiki.com/index.php?title=Category:Advanced_Modding_Techniques GECK: Advanced Modding Techniques] Questions with tricky answers.
 
:* [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.)
* [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.
+
:* [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.
 +
* [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.  
 
* [http://www.nexusmods.com/newvegas/mods/61538/? 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.
 
* [http://www.nexusmods.com/newvegas/mods/61538/? 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.
* [http://www.darkcreations.org/testg/wiki/Category:VWD-OB LOD/VWD Overview] TESTG site wiki.
+
* [http://inkscape.org/ Inkscape Vector Graphics Editor] (freeware).  Open source flexible drawing tools, with broad file format compatibility, powerful text tool, and bezier and spiro curves.
 +
* [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Category:VWD-OB LOD/VWD Overview] TESTG site wiki.
 
:* [http://www.nexusmods.com/newvegas/mods/58562 FNVLODGen] "View While Distant (VWD)"/"Level Of Detail (LOD)" landscape ''object'' generation tool.
 
:* [http://www.nexusmods.com/newvegas/mods/58562 FNVLODGen] "View While Distant (VWD)"/"Level Of Detail (LOD)" landscape ''object'' generation tool.
 
:* [http://www.nexusmods.com/newvegas/mods/61035/? Ultimate resolution landscape LODs and generator TES4LL] landscape ''mesh'' and ''texture'' LOD generation tool.
 
:* [http://www.nexusmods.com/newvegas/mods/61035/? Ultimate resolution landscape LODs and generator TES4LL] landscape ''mesh'' and ''texture'' LOD generation tool.
 
* [http://www.autodesk.com/products/maya/overview Maya] (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.)  Animation, modeling, simulation, and rendering software by '''AutoDesk'''.
 
* [http://www.autodesk.com/products/maya/overview Maya] (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.)  Animation, modeling, simulation, and rendering software by '''AutoDesk'''.
 
* [http://store.steampowered.com/app/441770/MindTex_2/ 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.
 
* [http://store.steampowered.com/app/441770/MindTex_2/ 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.
 +
* [http://www.nexusmods.com/newvegas/mods/66826 Mod Kit - Resource for Modders] by '''pixelhate'''.  Some nif & textures used as references in various Modding situations, including the "invisible activator".
 
* [http://www.nexusmods.com/newvegas/mods/64746 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.  
 
* [http://www.nexusmods.com/newvegas/mods/64746 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.  
 
* [http://niftools.sourceforge.net/wiki/NifSkope 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.)  
 
* [http://niftools.sourceforge.net/wiki/NifSkope 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.)  
Line 97: Line 104:
 
:* [http://www.nexusmods.com/skyrim/mods/6843/? Paint: The Normal Map Tools] by '''Goujosamma''' for Paint.NET.
 
:* [http://www.nexusmods.com/skyrim/mods/6843/? Paint: The Normal Map Tools] by '''Goujosamma''' for Paint.NET.
 
* [http://www.nexusmods.com/newvegas/mods/57245/? Ptolemy Maps for New Vegas] by '''Rocketeer''' and '''Alan Broad''' is a robust suite of tools for creating and organizing 'world map' locations based on their type, faction, importance, etc.
 
* [http://www.nexusmods.com/newvegas/mods/57245/? Ptolemy Maps for New Vegas] by '''Rocketeer''' and '''Alan Broad''' is a robust suite of tools for creating and organizing 'world map' locations based on their type, faction, importance, etc.
 +
* [http://www.nexusmods.com/newvegas/mods/67829 Sniff: S'Lanter's NIF Helper Tool] by '''zilav'''.  A batch NIF processing tool intended for intelligent S'Lanters.
 +
:* 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
 
* [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 102: Line 120:
 
* [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 116: Line 135:
 
=== <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 122: Line 142:
 
:* [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/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/33797/? NMM Tracelog Help] by Thorne67
+
* [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/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 133: Line 157:
 
* [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
 
* [http://www.nexusmods.com/newvegas/mods/34703/? 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".
 
* [http://www.nexusmods.com/newvegas/mods/34703/? 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".
:* [http://afkmods.iguanadons.net/index.php?/topic/3750-wipz-tes5edit/& xEdit discussion page] contains links to latest '''''UPDATES''''' "development/test" and '''''DOWNLOAD''''' "experimental (bleeding edge)" versions.
+
:* [https://www.afkmods.com/index.php?/topic/3750-wipz-tes5edit/& xEdit discussion page] contains links to latest '''''UPDATES''''' "development/test" and '''''DOWNLOAD''''' "experimental (bleeding edge)" versions.
 
:* [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 151: Line 182:
 
* [http://tesalliance.org/forums/index.php?/forum/81-the-enclave/ TESAlliance: The Enclave] for tutorials covering most subjects and tools that apply still to the Fallout series.
 
* [http://tesalliance.org/forums/index.php?/forum/81-the-enclave/ TESAlliance: The Enclave] for tutorials covering most subjects and tools that apply still to the Fallout series.
 
* [http://geck.bethsoft.com/index.php?title=Main_Page Garden of Eden Construction Kit (GECK)] for Fallout 3 (2008) and Fallout: New Vegas} (2010).
 
* [http://geck.bethsoft.com/index.php?title=Main_Page Garden of Eden Construction Kit (GECK)] for Fallout 3 (2008) and Fallout: New Vegas} (2010).
* [http://geck.technodeep.net/index.php/Main_Page Community GECK Wiki] for Fallout 3 (2008) and Fallout: New Vegas} (2010).
+
* [http://geckwiki.com/index.php?title=Main_Page Community GECK Wiki] for Fallout 3 (2008) and Fallout: New Vegas} (2010).
  
 
(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.
 
(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.
Line 220: Line 251:
 
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+ */
">Note that there is a 16 MB limit (that no one ever tells you about) for references (i.e. "objects") in mods. If your mod gets larger than 16 MB and you add an object or an NPC, your mod will be permanently broken. It will crash the game and will crash the GECK if you try to load it.
+
">Note that there is a 16 MB limit (that no one ever tells you about) for references (i.e. "objects") in mods. If your mod gets larger than 16 MB and you add an object or an NPC, your mod will be permanently broken. It will crash the game and will crash the '''GECK''' if you try to load it.
  
 
Here's why: Ever notice that all objects in the game have a ref ID that is two digits to refer to the mod number (called the "mod index"), followed by six digits for the actual ref ID? In other words, the ref ID for water is "000151a3", where "00" is the mod index indicating it is from '''Fallout.ESM''' and "0151a3" is apparently the '''''offset''''' into the file. The largest six digit hex number you can have is FFFFFF, which is 16 MB (minus 1). That's where the 16 MB limit comes from.  
 
Here's why: Ever notice that all objects in the game have a ref ID that is two digits to refer to the mod number (called the "mod index"), followed by six digits for the actual ref ID? In other words, the ref ID for water is "000151a3", where "00" is the mod index indicating it is from '''Fallout.ESM''' and "0151a3" is apparently the '''''offset''''' into the file. The largest six digit hex number you can have is FFFFFF, which is 16 MB (minus 1). That's where the 16 MB limit comes from.  
Line 226: Line 257:
 
The two digit "mod index" at the front means that you can theoretically have 256 mods, though this game breaks once you get to about 130-140 or so.  The "FF" mod index is reserved for "dynamically placed" objects in the game and these are preserved in the "save game" files.  You (as a "mod creator") cannot directly address these "FF" references as they only exist in game memory at run time.
 
The two digit "mod index" at the front means that you can theoretically have 256 mods, though this game breaks once you get to about 130-140 or so.  The "FF" mod index is reserved for "dynamically placed" objects in the game and these are preserved in the "save game" files.  You (as a "mod creator") cannot directly address these "FF" references as they only exist in game memory at run time.
  
Anything with a base/ref ID has to be under that 16 MB reference limit or it breaks. Things that don't have a ref ID (navmeshes, landscape textures, etc.) can be placed without regard to the 16 MB limit. Since your ambitious "overhaul" is likely going to be a fairly large mod, you might want to make all of your object/NPC changes first, then add dialog, navmesh, and similar non-reference changes last.
+
Anything with a base/ref ID has to be under that 16 MB reference limit or it breaks. Things that don't have a ref ID (''navmeshes, landscape textures'', etc.) can be placed without regard to the 16 MB limit. Since your ambitious "overhaul" is likely going to be a fairly large mod, you might want to make all of your object/NPC changes first, then add ''dialog'', ''navmesh'', and similar ''non-reference changes'' last.
 +
 
 +
So the big question then becomes how are you creating your ESM? If you are creating an ESP and then are using '''FNVEdit''' to convert it to an ESM, the '''GECK''' will add things to your ESP in the order that you create them. If you are creating ''worldspaces'', the data for a worldspace landscape can easily be more than 10 MB. Add in your ''navmesh'' and other things and you can easily get over 16 MB. Add anything with an ID after that, and your mod breaks completely, with no warning whatsoever from the '''GECK'''. The '''GECK''' will happily save it without warning, but then if you try to load it in the game, it crashes the game. Go back to the '''GECK''' to fix it, and it crashes the '''GECK'''. Better hope you have an older version of your mod to go back to at that point. Otherwise, you're hosed.
 +
 
 +
Things that don't have an ID number (''conversation topics, landscape data, navmesh data'', etc) can all be placed above the 16 MB boundary. Just keep in mind that if you add anything with an ID number once your mod exceeds 16 MB, the '''GECK''' puts it at the end of your file and you permanently break your mod.
 +
 
 +
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-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.
 +
 
 +
Aside from the 16 MB limit, we are not aware of any other limit with respect to things like recipes and lists; never having managed to create one that's big enough for it to be an issue. There's a ''formlist'' called "everything" which has over 1500 entries in it, so the limit for ''formlist'' entries is definitely higher than 1500.  Suspect that you'll break things long before you reach the 16 MB limit, though.  Things tend to break on powers of 2, especially at character and short integer size boundaries (255 and 65535), or at exactly half of that due to one bit being used for a sign bit (128 or 32767).
 +
 
 +
Scripts are limited to 32k characters. Comments and whitespace are counted in that size limit.
 +
 
 +
Exterior ''worldspace'' cells are limited to something like 128x64 or maybe 128x128 (don't recall which) or the game engine goes wonky. Again, the '''GECK''' will happily create a ''worldspace'' with more cells than this, and doesn't warn you that things will break. But the game's physics engine will totally fail if anything is placed outside of those limits.
 
</div>
 
</div>
  
Line 263: Line 346:
  
 
"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''." - [http://fallout.gamepedia.com/Form_ID 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 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''." - [http://fallout.gamepedia.com/Form_ID 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 [http://geckwiki.com/index.php?title=Form_List 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.
 
"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.
Line 273: Line 358:
  
 
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 [http://geck.foesmm.org/index.php/Creating_a_New_Persistent_Reference GECK: Creating New Persistent Reference].)  Otherwise the list of refs to search through would be way too huge and cause engine lag.
 
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 [http://geck.foesmm.org/index.php/Creating_a_New_Persistent_Reference GECK: Creating New Persistent Reference].)  Otherwise the list of refs to search through would be way too huge and cause engine lag.
 +
 +
<span id="MapIsNotTerrain"></span>
 +
====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 [http://fallout.wikia.com/wiki/Help:Form_IDs 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".
 +
  
 
<span id="Tip-refVar"></span>
 
<span id="Tip-refVar"></span>
 +
 
====TIP Reference Variables explained====
 
====TIP Reference Variables explained====
 
: Thanks to '''vforvic''' of the Nexus "Fallout 3 Mod Talk" forum for the basis of the following:
 
: Thanks to '''vforvic''' of the Nexus "Fallout 3 Mod Talk" forum for the basis of the following:
Line 360: Line 458:
  
 
"According to the layout of this system, the maximum number of additional modules that can be loaded by the game is 254 (256 load order ranges, - 1 for the Savegame FF range, - 1 for the always-mandatory Fallout3.esm/FalloutNV.esm)." - [http://fallout.gamepedia.com/Form_ID Form-ID on The Vault wiki]
 
"According to the layout of this system, the maximum number of additional modules that can be loaded by the game is 254 (256 load order ranges, - 1 for the Savegame FF range, - 1 for the always-mandatory Fallout3.esm/FalloutNV.esm)." - [http://fallout.gamepedia.com/Form_ID Form-ID on The Vault wiki]
 +
 +
: '''FiftyTifty''' added the following advice:
 +
Let's suppose you have a number of Actors you don't want active until your quest reaches a certain "stage".  Then you want a script for them to [http://geckwiki.com/index.php?title=OnLoad Begin OnLoad].  But "OnLoad" will not run on anything "disabled".  (See the "Notes" on that page and also [http://geckwiki.com/index.php?title=Running_an_OnLoad_block_on_a_disabled_item Running an OnLoad block on a disabled item].)  You need some sort of "switch" to enable them.
 +
 +
Rather than enabling each actor individually, set the placed ''actor references'' to have the same ''parent reference'': a dummy trigger object you place in the cell. Then when you want the actors to be enabled, just enable the ''parent reference'' object in your script (as in:
 +
<pre>
 +
actorrefParent.Enable()
 +
</pre>
 +
 +
See the GECKWiki page [http://geckwiki.com/index.php?title=Reference#Enable_Parent Enable Parent] entry.
 
</div>
 
</div>
  
 
<span id="Tip-GlobVar"></span>
 
<span id="Tip-GlobVar"></span>
 +
 
==== TIP Global ref variables '''Player''' and '''PlayerREF''' ====
 
==== 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:
 
: Thanks to '''DoctaSax''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 373: Line 482:
 
white-space: -o-pre-wrap;    /* Opera 7+ */
 
white-space: -o-pre-wrap;    /* Opera 7+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">According to the Community GECK site, "[http://geck.technodeep.net/index.php/Player Player] is used to describe several things, sometimes simultaneously."  Among them is: "A scripting keyword that is effectively a global [http://geck.technodeep.net/index.php/Reference_variables reference variable] that resolves to the Actor reference described above."
+
">According to the Community GECK site, "[http://geckwiki.com/index.php?title=Player Player] is used to describe several things, sometimes simultaneously."  Among them is: "A scripting keyword that is effectively a global [http://geckwiki.com/index.php?title=Reference_variables reference variable] that resolves to the Actor reference described above."
  
The [http://geck.technodeep.net/index.php/Ref_Variable Ref Variable] page only uses "'''PlayerREF'''" for checking that a locally defined ref variable is that specific Actor "formid" reference.  It cautions regarding using a base form reference: "Beware that this is still a base form and may not be used as the [http://geck.technodeep.net/index.php/Calling_reference calling reference] to functions that allows this syntax, although it may be passed as the target if the function permits this.
+
The [http://geckwiki.com/index.php?title=Ref_Variable Ref Variable] page only uses "'''PlayerREF'''" for checking that a locally defined ref variable is that specific Actor "formid" reference.  It cautions regarding using a base form reference: "Beware that this is still a base form and may not be used as the [http://geckwiki.com/index.php?title=Calling_reference calling reference] to functions that allows this syntax, although it may be passed as the target if the function permits this.
  
 
The combination of those statements suggest that it is a poor practice to assume the variable "'''Player'''" refers to the PC Actor formid at any given moment without checking first.  And "[PlayerRef].< function >" syntax implies that "[PlayerRef]" is an abstraction of a locally initialized (e.g. "set myPlayerRef = '''PlayerREF'''") variable.  The following hopefully clears this up.
 
The combination of those statements suggest that it is a poor practice to assume the variable "'''Player'''" refers to the PC Actor formid at any given moment without checking first.  And "[PlayerRef].< function >" syntax implies that "[PlayerRef]" is an abstraction of a locally initialized (e.g. "set myPlayerRef = '''PlayerREF'''") variable.  The following hopefully clears this up.
Line 421: Line 530:
 
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 432: Line 542:
  
 
&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 495: Line 620:
 
:*Set "Max Linear Velocity" to "1068".  
 
:*Set "Max Linear Velocity" to "1068".  
 
:*Set "Max Angular Velocity" to "31.5700".   
 
:*Set "Max Angular Velocity" to "31.5700".   
:Now the weapon should drop to the ground.  
+
:The weapon should now drop to the ground.  NOTE: If you don't see these options either you are looking under the wrong '''node''' or are using a version of '''NifSkope''' other than the one recommended up under the [[#Programs_and_Tools|Programs and Tools]] section.
 +
:''Mopp shapes'' are used for '''static collisions''' (i.e. anything that doesn't move: like fences, walls, etc.). They can be used for movable objects, but are far more performance intensive (depends on the collision poly count) than '''convex''' or '''box''' shapes.
  
:For other object types, look in NIF.XML located in the '''Blender foundation\blender\.blender\scripts\bpymodules\pyffi\formats\nif\''' folder or the '''NifSkope''' documentation files in the "Doc" folder of it's installation folder. Search for ''bhkRigidBody''. It has a good listing and some simple explanations of the options.  
+
:The ''BSXFlags'' entry is crucial to this behavior.  It must be found / placed under the '''BSFadeNode''' in '''NifSkope'''.  You need to have the '''Use BSFadeNode Root''' option checked in your "paint" type program when exporting the NIF. (It's on the upper right area of the '''NIF Export''' options of '''Blender'''.)
 +
 
 +
:For other object types, look in NIF.XML located in the '''Blender foundation\blender\.blender\scripts\bpymodules\pyffi\formats\nif\''' folder or the '''NifSkope''' documentation files in the "Doc" folder of it's installation folder. Search for ''bhkRigidBody''. It has a good listing and some simple explanations of the options.
 
</div>  
 
</div>  
 
&nbsp;
 
&nbsp;
  
 
<span id="Tip-HeadPartsRotated"></span>
 
<span id="Tip-HeadPartsRotated"></span>
 +
 
==== TIP Head Parts Rotated ====
 
==== 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).
 
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).
Line 555: Line 684:
 
<span id="MashingMeshes"></span>
 
<span id="MashingMeshes"></span>
 
==== TIP Mashing Meshes ====
 
==== TIP Mashing Meshes ====
:Thanks to '''madmongo''', '''M48A5''', and 'RoyBatterian'''of the Nexus Fallout "New Vegas Mod Troubleshooters" forum for the basis of the following:'''  
+
:Thanks to '''madmongo''', '''M48A5''', and '''RoyBatterian''' of the Nexus Fallout "New Vegas Mod Troubleshooters" forum for the basis of the following:'''  
 
<div 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">Suppose for example you want to place the model of a particular pistol into a holster for display purposes. (This "pistol" will not be usable. It's for aesthetic purposes only.) Some call this process "mashing" two meshes together (e.g. mashing the pistol into the holster). The process is similar for other sorts of "mashing".  
 
<div 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">Suppose for example you want to place the model of a particular pistol into a holster for display purposes. (This "pistol" will not be usable. It's for aesthetic purposes only.) Some call this process "mashing" two meshes together (e.g. mashing the pistol into the holster). The process is similar for other sorts of "mashing".  
 
The basic procedure is first go into '''NifSkope''' and remove all of the unneeded "animations" and "collision" and such so that you are left with just the (in this instance: "weapon") source mesh. Save that to some new nif (you can delete this temporary nif later).
 
The basic procedure is first go into '''NifSkope''' and remove all of the unneeded "animations" and "collision" and such so that you are left with just the (in this instance: "weapon") source mesh. Save that to some new nif (you can delete this temporary nif later).
Line 572: Line 701:
  
 
(You can do the same basic thing to make a wearable rifle slung over your back. Just edit the rifle's mesh so that it is located on the back where you want it, and weight it 100 percent to the spine bone. If I recall correctly, the spine bone you want is just the one called spine, not spine1 or spine2.)
 
(You can do the same basic thing to make a wearable rifle slung over your back. Just edit the rifle's mesh so that it is located on the back where you want it, and weight it 100 percent to the spine bone. If I recall correctly, the spine bone you want is just the one called spine, not spine1 or spine2.)
 +
 +
'''aghjax''' adds:
 +
<div class="boilerplate metadata" id="Notice_Box" style="margin:0px 10px 10px 10px;  border:1px dashed #DAA520;  color: lightgray;  background-color:#666666;  padding:3px;  word-wrap: break-word">
 +
When your '''NifSkoped''' mashup CTDs: "You very likely broke some branch dependencies. You have to compare them to a working NIF preferably from the [sources] you used to see what is out of place. And make sure you don't have duplicate ''Scene Roots''."
 +
</div>
 
</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>
 +
 
==== TIP Movable or Static custom objects in cell ====
 
==== 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:  
 
:Thanks to '''madmongo''', '''davidlallen''', and '''Tefnacht''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:  
Line 680: Line 833:
 
</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 706: Line 870:
  
 
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.
 
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.
 +
 +
<span id="Tip-WorldspaceHiLites"></span>
 +
==== Highlights of the Worldspace ====
 +
: 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+ */
 +
">This is a summary of various points raised elsewhere in this section for quick reference.  Some details may vary.  Be conservative.
 +
 +
* In FNV, the worldspace size is 128x128 cells with a heightmap for -63 to +63 in both the X and Y directions.  Weird things start to happen if you go over that size.
 +
:* The GECK's heightmap editor only displays +/- 32 in each direction, so it only shows a 64x64 heightmap. The rest of it is blacked out even though you can go to cells beyond that in the render window and see that the cells are both heightmapped and textured (just a uniform brown dirt texture).
 +
:: My GECK tends to want to crash if I get close to the edges of the map, centered on +/- 63 in either the X or Y direction.
 +
 +
* Keep all land height above 14,000 or you can have LOD issues.
 +
 +
* If you are using the landscape editor, be gentle. If you try to shape the landscape too quickly, you tend to create landscape tears.
 +
 +
* 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 place water objects in an exterior cell. You can, but that tends to break things.
 +
:* 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.
 +
:* 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 make an ESP larger than 16 MB and you add something with a reference ID number of some sort to it, you will break your mod. The '''GECK''' will NOT give you any error whatsoever when you do so. When you try to load your mod, you'll crash the game. When you try to load the mod in the '''GECK''' to fix it, you'll crash the '''GECK'''. Hope you saved an earlier version of your mod somewhere that you can go back to.
 +
 +
* There are several ways to avoid the 16 MB bug.
 +
 +
:* The first is to create your landscape first, then place all objects into the worldspace, create all interiors, etc. After all that is done, then paint your landscape, add navmeshes, conversations/quests, etc. Landscape, navmeshes, and quest things can all be safely added above the 16 MB boundary. This works well enough for fairly simple mods.
 +
:* The second way involves setting your '''GECK''' up in networked developer mode, which is not how most people set it up.  This has instructions for setting your '''GECK''' up in networked mode. There are some errors in these instructions, but as far as I am aware, they are the best instructions you'll find anywhere on the net:
 +
:* [http://geckwiki.com/index.php?title=Version_Control Version Control].
 +
::* In networked mode, the 16 MB bug still applies. So create your worldspace, check that in to version control, then add stuff, and check those changes in. When you do this, the '''GECK''' will automatically place ID values below the 16 MB boundary. I'm sure there are still size limits in there somewhere, but I have yet to hit them using this method, even in mods that contain multiple worldspaces.
 +
::* The '''GECK''' tends to crash when working with larger mods anyway, so keeping the bulk of your mod checked in to version control and only working on small bits of it helps fairly dramatically in preventing '''GECK''' crashes.
 +
 +
* In the regions section of the '''GECK''', there is an option to automatically navmesh the entire region. You may find this tempting, but DO NOT EVER USE THIS FEATURE. It is the most broken thing in the '''GECK''' that I have found yet to date. I did actually get it to correctly navmesh a region once. And only once. It was a fairly simple landscape and there wasn't much on it yet. SCOLS make the navmesher crash. Sometimes it will navmesh inside the region boundaries, sometimes, for no reason whatsoever, it will navmesh OUTSIDE your region boundaries instead of inside. Either way, if it screws up, it completely borks your entire navmesh for the entire worldspace. It also tends to crash in an endless loop constantly popping up a box with the error message "Get Jean!" over and over until you kill the '''GECK''' in the task manager.
 +
 +
* Instead, the best you can do with navmeshing is to use the automatic navmesher for a single cell. When you click on the navmesh toolbar to bring it up, the cell auto navmesher is the first question mark from the left, just to the right of the finalize checkmark button. In the navmesh dialog, click the check box to enable height map generation mode, uncheck remove overlapping and remove thin areas, and you'll get about the best performance that you can out of it. A 64x64 worldspace is 4,096 cells. If you can use the auto navmesher to do 4 cells per minute, that's 1,024 minutes, or a bit over 17 hours just clicking on the navmesh button over and over and over and over. If you don't use heightmap generation mode, the navmesher has a tendency to fail to navmesh across bumpy roads and easily walkable surfaces.  (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. It will still navmesh across fences though.)
 +
 +
* The '''GECK''' will not render your worldspace unless there is something in it. But it's really hard to put something in it if you can't see anything. It's kind of a catch 22. I usually drop the little airplane into it, which I delete later. After that, go to an interior cell so you can get the render window to work properly again, then go to your little plane, and now finally you can see your new landscape. When editing your new landscape, always go to a part of your worldspace that has something in it first. If the first thing the '''GECK''' has to render is a section of worldspace with no objects in it, it goes right back to the render bug where you don't see anything except a gray blob (I think it's actually rendering water everywhere, stupid '''GECK'''...).
 +
 +
* If you paint your landscape or use the raise/lower tool in the render window (not the worldspace height editor), you can end up with black squares just outside of the area you were editing. Those black squares will be persistent, in that you can move away from them and they'll still be there when you come back, but they aren't really there. It's just yet another '''GECK''' bug.
 +
 +
Welcome to the buggiest parts of the '''GECK'''. Save often. Keep backups.
 +
</div>
 
   
 
   
 
<span id="Tip-CenterOn"></span>
 
<span id="Tip-CenterOn"></span>
 +
 
====TIP Center_On_Cell '''COC''' Markers====
 
====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:  
 
: Thanks to '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:  
Line 765: Line 978:
 
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 either creating or editing a worldspace, you need to generate LOD ("Level of Detail") mesh and textures to reflect those changes.  But first you need to be sure you understand the difference between VWD (View While Distant) and LOD (Level of Detail).  See the [http://www.darkcreations.org/testg/wiki/Category:VWD-OB LOD/VWD Overview] page on "The Elder Scrolls Texture Guide (TESTG)" site.  (The "FNV" version of "TES4LODGen" mentioned there is [http://www.nexusmods.com/newvegas/mods/58562 FNVLODGen], and along with [http://www.nexusmods.com/newvegas/mods/61035/? Ultimate resolution landscape LODs and generator TES4LL] can be used as an alternative to creating LODs in the '''GECK'''.  The "LOD/VWD Overview" page provides a TES4LL process sequence.)
+
">When either creating or editing a worldspace, you need to generate LOD ("Level of Detail") mesh and textures to reflect those changes.  But first you need to be sure you understand the difference between VWD (View While Distant) and LOD (Level of Detail).  See the [http://web.archive.org/web/20170713081056/http://www.darkcreations.org/testg/wiki/Category:VWD-OB LOD/VWD Overview] page on "The Elder Scrolls Texture Guide (TESTG)" site.  (The "FNV" version of "TES4LODGen" mentioned there is [http://www.nexusmods.com/newvegas/mods/58562 FNVLODGen], and along with [http://www.nexusmods.com/newvegas/mods/61035/? Ultimate resolution landscape LODs and generator TES4LL] can be used as an alternative to creating LODs in the '''GECK'''.  The "LOD/VWD Overview" page provides a TES4LL process sequence.)
  
 
The following articles provide guidance on using the '''GECK''' to generate LOD files:  
 
The following articles provide guidance on using the '''GECK''' to generate LOD files:  
Line 771: Line 984:
 
* [http://geckwiki.com/index.php/World_LOD World LOD] GECKWiki page.
 
* [http://geckwiki.com/index.php/World_LOD World LOD] GECKWiki page.
 
* [http://www.truancyfactory.com/tutorials/fallout3/fallout_lod.html Generating LOD Data for Custom Worldspaces in Fallout 3]
 
* [http://www.truancyfactory.com/tutorials/fallout3/fallout_lod.html Generating LOD Data for Custom Worldspaces in Fallout 3]
 +
 +
Make sure your "ground level" is above the "water heightmap" or your LODs will be "gray blobs".  (See [[#TIP_Static_Water_goes_into_Interior_cells_only|TIP Static Water goes into Interior cells only]].)
  
 
The folders used for LOD output files are laid out on the description page of "FNVLODGen".  The key to finding those for yours would be looking for subfolders with the name of "''yourworldspace''".
 
The folders used for LOD output files are laid out on the description page of "FNVLODGen".  The key to finding those for yours would be looking for subfolders with the name of "''yourworldspace''".
Line 790: Line 1,005:
 
</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 805: Line 1,020:
  
 
<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 821: Line 1,037:
 
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.
 +
 +
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.
  
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.
+
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.
 
 
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.
 
  
 
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 842: Line 1,082:
  
 
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 927: Line 1,180:
  
 
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,003: Line 1,258:
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">Scn    DisguiseFactionPulseScript
 
">Scn    DisguiseFactionPulseScript
This script belongs to a spell effect [''DisguiseFactionPulseActorEffect''] that removes Faction Sniffers from the "magic" armor faction donned when players use faction disguises.  The spell is set off intermittently, through a pulse, that filters the appropriate references within its radius. This radius is set to 25 (spell units), currently, and it's planned to reach at least 50 units. The pulse is placed on the player every two seconds, timed through a quest script that kicks off/on when players equip a faction disguise. - Jorge
+
This script belongs to a spell effect [''DisguiseFactionPulseActorEffect''] that removes Faction Sniffers from the "magic" armor faction donned when players use faction disguises.  The spell is set off intermittently, through a pulse, that filters the appropriate references within its radius. This radius is set to 25 ([[Fallout 3/NV Game Units|game units]]), currently, and it's planned to reach at least 50 units. The pulse is placed on the player every two seconds, timed through a quest script that kicks off/on when players equip a faction disguise. - Jorge
  
 
Also, the script only addresses NCR relations. It'll eventually consider any faction that has faction disguises. [Editor - It now does, but only for those with "armor"; i.e. "not the WhiteGloveSociety".]
 
Also, the script only addresses NCR relations. It'll eventually consider any faction that has faction disguises. [Editor - It now does, but only for those with "armor"; i.e. "not the WhiteGloveSociety".]
Line 1,034: Line 1,289:
  
 
=== Bethsoft Basic Tutorials ===
 
=== Bethsoft Basic Tutorials ===
* [http://geck.technodeep.net/index.php?search=tutorial&title=Special%3ASearch&go=Go Bethsoft Basic GECK Tutorials]
+
* [http://geckwiki.com/index.php?search=tutorial&title=Special%3ASearch&go=Go Bethsoft Basic GECK Tutorials]
 
* [http://en.uesp.net/w/index.php?title=Special%3ASearch&search=tutorials&button= Basic Oblivion & Skyrim Tutorials]
 
* [http://en.uesp.net/w/index.php?title=Special%3ASearch&search=tutorials&button= Basic Oblivion & Skyrim Tutorials]
  
 
=== Animation ===
 
=== Animation ===
 
[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://www.nexusmods.com/fallout3/mods/21983/? ACCESS: Animated Computers Consoles Electronics and Security Systems Resource] Resource Mod.
 
 
* [http://www.nexusmods.com/oblivion/mods/28326/? Adult Animation Tutorial For Noobs] by '''Coronerra'''.
 
* [http://www.nexusmods.com/oblivion/mods/28326/? Adult Animation Tutorial For Noobs] by '''Coronerra'''.
 +
* [http://www.nexusmods.com/fallout3/mods/21983/? Animated Computers Consoles Electronics and Security Systems (ACCESS)] FO3 Resource and PDF Tutorial.
 
* [http://www.nexusmods.com/fallout3/mods/9700/? Artorp Object Animation Tutorial] Video and Blender KF files.
 
* [http://www.nexusmods.com/fallout3/mods/9700/? Artorp Object Animation Tutorial] Video and Blender KF files.
 
* [[Avoiding_Blender_animation_pitfalls|Avoiding Blender animation pitfalls]] Nexus Wiki article.
 
* [[Avoiding_Blender_animation_pitfalls|Avoiding Blender animation pitfalls]] Nexus Wiki article.
Line 1,050: Line 1,305:
 
* [http://www.nexusmods.com/newvegas/mods/56203/? Material and Texture Animations in NifSkope - Tutorial] PDF/DOC download.
 
* [http://www.nexusmods.com/newvegas/mods/56203/? Material and Texture Animations in NifSkope - Tutorial] PDF/DOC download.
 
* [http://forums.nexusmods.com/index.php?/topic/984792-tutorial-working-with-the-nicontrollermanager/ NifSkope: Working with the NiControllerManager] Forum Thread.  Alternate images available [http://www.mediafire.com/file/p0srsyrfuaszevp/Tutorial.zip here].
 
* [http://forums.nexusmods.com/index.php?/topic/984792-tutorial-working-with-the-nicontrollermanager/ NifSkope: Working with the NiControllerManager] Forum Thread.  Alternate images available [http://www.mediafire.com/file/p0srsyrfuaszevp/Tutorial.zip here].
 +
* [http://www.nexusmods.com/newvegas/mods/63770/? Nifskope Testing Skeleton] by clanky4. Mod for testing animations in NifSkope only.
 
* [http://www.youtube.com/watch?v=Zijo8ly6pyI One minute tutorial on Shape Keys] Video.
 
* [http://www.youtube.com/watch?v=Zijo8ly6pyI One minute tutorial on Shape Keys] Video.
 +
* [http://www.youtube.com/watch?v=XU9BAXkn_Bs Tutorial For Making Reload Animations work in FNV] Video by '''The Shiny Haxorus'''.
 +
* [http://www.nexusmods.com/newvegas/mods/66968 Weapon Animation Patching Tutorial] PDF with separate "screenshots" file by '''benja'''.
 
* [http://www.nexusmods.com/newvegas/mods/48521/? Weapon Animation Tutorial] PDF by '''Toasty Fresh'''.
 
* [http://www.nexusmods.com/newvegas/mods/48521/? Weapon Animation Tutorial] PDF by '''Toasty Fresh'''.
* [http://www.nexusmods.com/newvegas/mods/63770/? Nifskope Testing Skeleton] by clanky4. Mod for testing animations in NifSkope only.
+
 
 +
<span id="TIP-AnimationSounds "></span>
 +
====TIP Animation Sounds====
 +
: 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+ */
 +
">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.
 +
</div>
  
 
<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,156: Line 1,438:
 
endif
 
endif
 
</pre>
 
</pre>
Note that in the GECK, a ref variable may store either a ''reference'' or a ''base form''.  ''Base forms'' may not be used as the [http://geck.technodeep.net/index.php/Calling_reference calling reference] to functions that allow this syntax, although it may be passed as the target if the function permits this.  Hence the "IsActor" check in the example, while not necessary for "PlayerRef" (which is always a ''reference''), is a good practice.
+
Note that in the GECK, a ref variable may store either a ''reference'' or a ''base form''.  ''Base forms'' may not be used as the [http://geckwiki.com/index.php?title=Calling_reference calling reference] to functions that allow this syntax, although it may be passed as the target if the function permits this.  Hence the "IsActor" check in the example, while not necessary for "PlayerRef" (which is always a ''reference''), is a good practice.
  
 
If you want to use the ''console'' to force a particular "idle" (such as when "posing" the Actor), you must be in "3rd Person View", go into "Toggle Free Camera" (TFC) mode, select or reference the target Actor, and then issue the "PlayIdle" command.  Note that the skeleton (armature) in use must be compatible with that required by the animation or it won't work correctly.
 
If you want to use the ''console'' to force a particular "idle" (such as when "posing" the Actor), you must be in "3rd Person View", go into "Toggle Free Camera" (TFC) mode, select or reference the target Actor, and then issue the "PlayIdle" command.  Note that the skeleton (armature) in use must be compatible with that required by the animation or it won't work correctly.
Line 1,169: Line 1,451:
 
* [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,178: Line 1,461:
 
* [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,219: Line 1,516:
 
* [[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;
 +
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:
 +
<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;
 
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
Line 1,233: Line 1,548:
 
</div>
 
</div>
  
<span id="Tip-NoobBlender"></span>
+
<span id="TIP: BlenderExport"></span>
====TIP New to Blender====
+
====TIP Export Settings====
: Thanks to '''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"  
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.
+
">For "Fallout New Vegas" (and "Fallout 3") you want to set the default "export" settings for Blender as follows (assuming you are primarily working on '''Armor''' meshes), and then make adjustments as circumstances require.
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.
+
[[File:BlenderExport_Fig.png|frameless|800px|BlenderExport Figure]] <br clear=all>
* 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").
+
If you start with the default settings (click the "Restore Default Settings for Selected Game" button on the lower left), click on ''Creature'' under '''Collision Options''' (top middle right), then click on either the ''Cloth'' or ''Skin'' setting just below that. Then make sure that the ''Use BSFadeNodeRoot'' setting under '''Shader Options''' (top right) is '''unchecked''' (not selected).  
* 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.
+
You can select the ''Shadow Map'' setting under '''Shader Options''' (top right) if you'd like, but you need to go into '''NifSkope''' afterwards anyway so you can set the ''Shadow Map'' '''Shader Option''' setting there, because this version of Blender always gets the following in particular "wrong". Either way works. (Using later versions of Blender brings their own problems.)<br>
* 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>
+
After you export your model, go into '''NifSkope''' to fix the '''Shader''' settings.
 +
* For any '''armor parts''' (i.e. "not human skin"), the '''Shader Type''' needs to be set to ''SHADER_DEFAULT'' and ensure ''SF_SHADOW_MAP'' and ''SF_REMAPABLE_TEXTURES'' are both '''checked''' (selected).
 +
* For any '''visible human skin''' body parts (arms, legs, etc,) the '''Shader Type''' needs to be set to ''SHADER_SKIN'' and ensure ''SF_SHADOW_MAP'' and ''SF_FACEGEN'' are both "checked" (selected). Blender will usually set the rest of the flags correctly.
 +
</div>
  
<span id="Tip-BlenderExport"></span>
+
<span id="Tip-ImportAnimation"></span>
====TIP Blender version NIF export====
+
==== TIP Import Animations ====
: Thanks to '''EPDGaffney''' and '''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:
 
<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:
+
">To create your own, start with the wiki article [[Creating_character_animations|Creating Character Animations]].
<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.
+
A couple of things that aren't documented on that page:
:* 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-BlenderImport"></span>
+
* 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.
====TIP Blender 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:
+
* 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.
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
+
 
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
+
* 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.
background-color:#333333;padding:3px;
+
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
+
* 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.
">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 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.
+
* 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>
  
=== Collision ===
+
<span id="Tip-ImportMesh"></span>
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
==== TIP Import Mesh ====
* [http://www.nexusmods.com/oblivion/mods/19739/? Blender Video Tutorial - Convex Collision] Video.
+
: Thanks to '''madmongo''' and '''AusAllerWelt''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
* [http://youtu.be/sADeZhuv748 Fallout to Blender and back: Collision Meshes - Part 1] Video.
 
* [http://www.youtube.com/watch?v=56LwyhJ4u5Q Fallout to Blender and back: Collision Meshes - Part 2] Video.
 
* [http://youtu.be/AD4uywa1-pE GECK: Collision creation in Blender] Video.
 
 
 
<span id="Tip-CollisionSounds"></span>
 
====TIP Collision Impact Sounds====
 
: Thanks to '''pixelhate''' and '''miguick''' of the Nexus Fallout "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+ */
">In FO3 or FNV the impact sound of one material upon another (e.g. a shell casing falling upon the ground, a footstep on a wooden stair, etc.) is referenced in the collision object as "HAV_MAT" (Havok Material).  But it doesn't handle the sound only; it combines it with the particles emitted when hit or shot as well as the decals associated.  "Havok Material" will decide: The impact sound, the decal, the particle effect on impact, the sound when walking over a surface, and the colliding sound upon dropping, kicking, or grabbing an object.  These are hard coded in the game engine and cannot be changed as far as we knowWhat the actor is wearing does not affect this; only the action being taken.
+
">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.
  
However, there is an INI file setting under "[Audio]":
+
Assume you have a basic mesh ".blend" file posed for the skeleton you want to make into a female armor.
<pre>
 
fPlayerFootVolume=x
 
</pre>
 
which has a "x" float type value of "0.65" by default.  Setting "x" to "0" will make your footsteps totally silent.  You can alter it in scripts using '''NVSE''''s ''SetNumericINISetting'' command, as in:
 
<pre>
 
SetNumericINISetting "fPlayerFootVolume:Audio" x
 
</pre>
 
 
 
Modders have found 96 "Havok Materials" which are combinations of different things mentioned before.  32 of them are the most commonly used by the game.  Bear in mind that the names in the drop down list don't reflect the effect at all and can be misleading; so some experimentation may be called for to achieve the desired sound.
 
  
There's a drop down list in '''NifSkope''' or your preferred texture editor from which you can choose the most fitting one.
+
* First of all, your mesh needs to be UV mapped. Don't use materials for this purpose. FNV requires UV mapping for textures.
  
In '''NifSkope:''' open the "Block" list window, select the ''BHKCollisionObject'', expand and look into each of the ''Nodes'' in the "Block Details" window.
+
* 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.
  
Depending on the type and structure of the Collision, you should find one or two places where HAV_MAT is noted: double click on it to access the drop down list.
+
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.
  
The material you set in the ''bhkRigidBody(T)'' overides any setting on the lower blocks. To get multiple "Havok Materials" with a single NIF, you have to nest multiple ''NiNodes'' and create a new ''bhkColisionBlock'' for each material you use. Check to make sure that the ''Layer'' and ''Layer Copy'' entries in your ''bhkRigidBody(T)'' and the ''Layer'' setting inside ''Data Layers'' in your ''bhkNiTriStripShape'' all match.  Collision sequences are one of the few places in a ".NIF" file where the exact order is essential.
+
* 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.
  
Don't forget that the "armature/skeleton" can have it's own HAV_MAT as well.
+
So basically, the TL:DR short summary version:
 
+
# Create your mesh
If you alter the mesh NIFs for your mod, you will have to include them in your package.  There are basically two ways of doing so:
+
# UV map your mesh
* If the items are replacements for vanilla items and should affect all those items in game: place the modified meshes, keeping the original naming, in the "Data" loose folder reproducing exactly the original folder structure.  These will then override the ones in the vanilla BSA file when "ArchiveInvalidation" is toggled.  In that case, you shouldn't need to make any changes to your ESP/ESM files to have the new meshes active.
+
# Import the human body mesh and skeleton
* If the items are specific to your mod and should coexist with vanilla items: place the modified meshes, with new names, in a folder structure specific to your mod.  You will then be creating new unique instances of the items using those meshes under that unique path and have to include them in your ESP/ESM files.
+
# 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-ObjectCollision"></span>
+
<span id="Tip-BlenderImport"></span>
 
+
====TIP Import other Model Formats====
==== TIP Custom Object Collision ====
+
: Thanks to '''madmongo''' and '''user826''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
: Thanks to '''madmongo''' and '''pixelhate''' 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+ */
">Sometimes (even though you added "collision" to an object) when you initially place it on a shelf or other surface with collision just fine, it seems to fall at least partially through the surface when the cell reloadsIf precisely aligning your object with the surface results in it sinking, try placing the object's Z-axis just slightly above the surface collision boundary and let it drop into collision with the surface.  However, this only works if the object is a "[http://geckwiki.com/index.php/Movable_Static Movable Static]" based upon "Havok Materials", whose weight gives them "gravity" physics. (See also [[#TIP: Collision Impact Sounds|TIP: Collision Impact Sounds]] and the GECK entry for [http://geckwiki.com/index.php/Object_palette Object Palette].)
+
">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.
  
Part of the issue can be in how you created the collision mesh. For simple objects, just copy the mesh for your custom object from the vanilla object mesh. However, that doesn't work so well for complex objects with a complex collision mesh. It's preferable to use a simple box collision (which can be created in '''Nifskope''' instead of your "mesh editor").  For "havoked" or "grabable" objects: primative collision (sphere, box, or capsule) are preferable to avoid engine problems.
+
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>
 
</div>
  
=== Conversions ===
+
<span id="Tip-ImportTexture"></span>
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
====TIP Import Texture====
* [http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.
+
: Thanks to '''AusAllerWelt''' of the "Fallout New Vegas Mod Talk" forum for the basis of the following.
* [http://taleoftwowastelands.com/content/fnv-edit-series-converting-fo3-mods Converting F03 mods to TTW & FNV] Wiki.
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
* [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".
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
* [http://www.youtube.com/watch?v=NPKrwES9Cb4 FNVEdit Creating compatibility patches for "Brumbeks Inventory Sorting" (BIS) by JaHn3tiC] Video.
+
background-color:#333333;padding:3px;
* [http://www.youtube.com/watch?v=z61u0bQUmgM FNVEdit Making a Feature (Basic Compatibility) Patch by Roy Batty] Video.
+
word-wrap: break-word;      /* Internet Explorer 5.5+ */
* [http://www.nexusmods.com/newvegas/mods/38413/? FNVEdit Training Manual] PDF. Generally applies to all 'xEdit' versions for other gamesChapter 7 is on converting FO3 mods to FNV.
+
">* Select your mesh in ''Edit Mode'' and go to ''Windows Type | UV/Image Editor''. (See Fig-1.)<br>
* [http://www.grammarly.com/ Grammarly] pretty well regarded grammar checker, with free versions of their plugins for browsers.
+
[[File:BlenderImportTexture Fig-1.jpg|thumb|300px|left|Blender Import Fig-1]]<br clear=all>
* [http://www.nexusmods.com/newvegas/mods/62261/? How to make a Custom Race] PDF.
+
* 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>
* [http://tone-analyzer-demo.mybluemix.net/ Tone Analyzer] uses linguistic analysis to detect three types of tones from written text: emotions, social tendencies, and writing style. Users can use the online Tone Analyzer service to analyze conversations and communications.
+
[[File:BlenderImportTexture Fig-2.jpg|thumb|300px|left|Blender Import Fig-2]]<br clear=all>
: Tools behind a "gated" "Adult (18+) Only site" in their "modder resources" section.
+
* 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>
:* [http://www.loverslab.com/topic/27557-new-clothing-body-style-converter-beta-v089f-10-26-2014/ New Clothing Body Style Converter] Tool
+
[[File:BlenderImportTexture Fig-3.jpg|thumb|200px|left|Blender Import Fig-3]]<br clear=all>
:* [http://www.loverslab.com/topic/37660-clothing-converter-lattice-library-share-your-clothing-converter-lattices/ Clothing Converter Lattice Library] Resource.
+
</div>
  
<span id="Tip-MeshConversion"></span>
+
<span id="Tip-BlenderBlackTexture"></span>
====TIP Converting meshes====
+
==== TIP Import Texture NIF appears Black ====
: Thanks to '''madmongo''' and '''MA48A5''' of the Nexus 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+ */
">Other games has meshes you would like to use; either vanilla or from modsWhich game is better to get a mesh from? Quality wise, and which game is easiest to convert said mesh to '''FNV''''''Oblivion''', '''Skyrim''', or '''Skyrim Special Edition'''?
+
">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.
 +
</div>
  
If this is for your own personal use, there's no issue. If this is for a mod that you plan on releasing on the '''Nexus''' (or anywhere else), then you can't use assets from other games (period). They are copyright protected against "distribution" without permission.  Not even from other Bethesda games in the same series like '''Fallout'''.  (The exception is if the resources are already included in the "destination" game's files even though not used.)
+
<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.
  
You can only use assets from other mods if the mod author gives you explicit permission to do so (e.g. "this is a modder's resource").
+
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>
  
That said, the game engine for '''Oblivion''' is fairly close to the game engine for '''FO3/FNV'''. They changed quite a bit for '''Skyrim'''. In any event, the skeletons for the player and for NPCs is different for any of the TES games. If you are porting over armor or clothing, you'll need to unparent the mesh from its original armature and reparent the mesh to the '''FNV''' skeleton, and of course reassign all of the bone weights as you'd expect from doing that sort of thing.
+
<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".
  
Statics don't have a skeleton so those will port much more easily.
+
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.)
  
Some things just won't port.  '''Skyrim Special Edition''', being 64-bit, is about impossible to convert to a 32-bit game.<span style="color: orange; background-color:#424242;">[[#Tip-MeshConversionFootnote1|(See also Footnote [1]]])</span>  So that leaves '''Skyrim''' and '''Oblivion'''.  '''Skyrim''' armor that uses ''wings'' for example won't ever animate properly in '''FNV''' no matter what you do, because the '''FNV''' skeleton doesn't include ''wings''. To make them work, you'd have to not only create a new skeleton/armature, but you'd also have to create a whole bunch of animations to go with the new skeleton. Otherwise, the best you can do is have ''static wings'', which will look a bit funny.  (There is one armature with support for '''''moving wings''''' by '''Deedes''' (2014) on Nexus with versions for [http://www.nexusmods.com/fallout3/mods/20620 FO3: The Skeleton] and [http://www.nexusmods.com/newvegas/mods/56657 FNV: The Skeleton].  You would have to re-parent the mesh to that armature.
+
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.
  
The [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" in their "modder resources" section, is designed to facilitate converting "armor" and "clothing" between different body types. However, it is still in "Beta" status since 2014, but does work with upper/lower body meshes and CBBE bodies. Note you will need either an existing [http://www.loverslab.com/topic/37660-clothing-converter-lattice-library-share-your-clothing-converter-lattices/ Clothing Converter Lattice Library] or to make one yourself.
+
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."
  
'''Skyrim''', being a newer game, has more detailed meshes in general, and mod authors have generally followed suit and have created similarly more detailed custom meshes. While this does make for higher quality 3d models, you can run into difficulty if you use a lot of higher quality models and textures in '''FNV''' since it's an older 32-bit game and it will only use 2 GB of memory by default. You can double that to 4 GB if you install the 4 GB patch, but that's as far as you can take it.  (32-bits can't address any more than 4GB.) Your PC may have gobs more memory than that, but '''FNV''' won't use it. So it's very easy to run the game out of memory if you use high resolution textures and high quality models.
+
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.
  
The recommendation is almost never use any textures larger than 1024 x 1024 pixels for '''FNV''' unless it absolutely needs a higher resolution due to the nature of the 3D model, just because of the memory issue.  Also try to keep the triangle count (vertices) as low as possible. If you use a lot of 4096 x 4096 textures, your game will look prettier, but it's also going to crash a lot more often.  (A 4096 x 4096 pixel image with 16 bit color resolution is 32 MB of data. If your screen is displaying 100 different models with textures that size, that's 3.2 GB of data just for the textures. Since a 32 bit program can only handle 4 GB of data, you can see how trying to display a lot of high resolution models is going to run the game out of memory very quickly.) The texture caching system in '''FNV''' seems to leak memory. The more you stress it, the sooner it will run the game out of memory and crash.
+
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>
  
<div name="Simulated code box" class="boilerplate metadata" id="Warning Notice"
+
=== Collision ===
style="margin:0px 10px 10px 10px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;"
+
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
/* Remove the next four 'white-space' lines to restore default white-space processing. */
+
* [http://www.nexusmods.com/oblivion/mods/19739/? Blender Video Tutorial - Convex Collision] Video.
white-space: pre-wrap;      /* css-3 */
+
* [http://youtu.be/sADeZhuv748 Fallout to Blender and back: Collision Meshes - Part 1] Video.
white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+
* [http://www.youtube.com/watch?v=56LwyhJ4u5Q Fallout to Blender and back: Collision Meshes - Part 2] Video.
white-space: -pre-wrap;      /* Opera 4-6 */
+
* [http://youtu.be/AD4uywa1-pE GECK: Collision creation in Blender] Video.
white-space: -o-pre-wrap;    /* Opera 7+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">
 
<span style="color: orange; background-color:#424242;" id="Tip-MeshConversionFootnote1">Footnote [1]:</span> This statement deserves some clarification.
 
  
A lot of people seem to think that anything made with a 64 bit program can't be compatible with stuff made by a 32 bit program. That's not true. What matters is the data format that the programs use. If the format is the same, then the data will work for both the 32 and 64 bit programs. There's nothing special about the data created by a 64 bit program. It's just data.  The key is in the format.
+
<span id="Tip-CollisionSounds"></span>
 
+
====TIP Collision Impact Sounds====
32 bit programs can't access more than 4 GB of memory. This is because 2 to the 32nd power is 4 GB, so if all you have is 32 bits available to specify a memory location, it has to be in the lower 4 GB of memory. This is why FO3 and FNV will never use more than 4 GB of memory (2 GB without the "4 GB patch") no matter what. The programs just aren't capable of accessing any more memory than that.
+
: Thanks to '''pixelhate''' and '''miguick''' of the Nexus Fallout "Mod Talk" forum for the basis of the following:
 
 
'''Skyrim SE''' is basically a 64 bit port of '''Skyrim''' using the updated '''Creation Engine''' that they developed for '''Fallout 4 (FO4)'''. For porting objects from one game to another, we don't really care about that. What we care about is whether the NIF file format changed between '''Skyrim''' and '''Skyrim SE'''. There are plenty of programs which come in 32 and 64 bit versions, and both use the same '''data format''' to store their data '''''if you select it''''', so you can use either the 32 bit or the 64 bit version.
 
 
 
For '''Skyrim SE''' though, they were playing around with the '''Creation Engine''' for '''FO4''' development, and they made changes to the NIF format for '''FO4'''. It's not known how many of those changes (if any) were made to the NIF format for '''Skyrim SE''', but if you can't easily import meshes from '''Skyrim SE''' into '''Blender''' (for example), it's because the tool set hasn't been updated to handle the data format difference. It's a data format difference, not a 32 vs 64 bit difference.
 
</div>
 
</div>
 
 
 
<span id="Tip-PluginCopy"></span>
 
====TIP Copying between plugins====
 
 
<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+ */
">
+
">In FO3 or FNV the impact sound of one material upon another (e.g. a shell casing falling upon the ground, a footstep on a wooden stair, etc.) is referenced in the collision object as "HAV_MAT" (Havok Material)But it doesn't handle the sound only; it combines it with the particles emitted when hit or shot as well as the decals associated. "Havok Material" will decide: The impact sound, the decal, the particle effect on impact, the sound when walking over a surface, and the colliding sound upon dropping, kicking, or grabbing an object. These are hard coded in the game engine and cannot be changed as far as we know.  What the actor is wearing does not affect this; only the action being taken.
* The Trick is to make an ESP first, only dependent on the main master file.   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 fileSo loading a cell first is needed.  Suggest Wasteland cell / Good Springs.  You can of course delete that cell later if it's not needed for your purposes.
 
* Then open the GECK adding the other files from which you want to use assets, with your new .ESP as the "active file".</div>
 
  
=== Creature Creation ===
+
However, there is an INI file setting under "[Audio]":
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
<pre>
 +
fPlayerFootVolume=x
 +
</pre>
 +
which has a "x" float type value of "0.65" by default.  Setting "x" to "0" will make your footsteps totally silent.  You can alter it in scripts using '''NVSE''''s ''SetNumericINISetting'' command, as in:
 +
<pre>
 +
SetNumericINISetting "fPlayerFootVolume:Audio" x
 +
</pre>
 +
 
 +
Modders have found 96 "Havok Materials" which are combinations of different things mentioned before.  32 of them are the most commonly used by the game.  Bear in mind that the names in the drop down list don't reflect the effect at all and can be misleading; so some experimentation may be called for to achieve the desired sound.
 +
 
 +
There's a drop down list in '''NifSkope''' or your preferred texture editor from which you can choose the most fitting one.
 +
 
 +
In '''NifSkope:''' open the "Block" list window, select the ''BHKCollisionObject'', expand and look into each of the ''Nodes'' in the "Block Details" window.
 +
 
 +
Depending on the type and structure of the Collision, you should find one or two places where HAV_MAT is noted: double click on it to access the drop down list.
 +
 
 +
The material you set in the ''bhkRigidBody(T)'' overides any setting on the lower blocks. To get multiple "Havok Materials" with a single NIF, you have to nest multiple ''NiNodes'' and create a new ''bhkColisionBlock'' for each material you use.  Check to make sure that the ''Layer'' and ''Layer Copy'' entries in your ''bhkRigidBody(T)'' and the ''Layer'' setting inside ''Data Layers'' in your ''bhkNiTriStripShape'' all match.  Collision sequences are one of the few places in a ".NIF" file where the exact order is essential.
 +
 
 +
Don't forget that the "armature/skeleton" can have it's own HAV_MAT as well.
  
The process of creating a "creature" is essentially the same as creating a "NPC Companion", but without the "companion wheel".
+
If you alter the mesh NIFs for your mod, you will have to include them in your package.  There are basically two ways of doing so:
 +
* If the items are replacements for vanilla items and should affect all those items in game: place the modified meshes, keeping the original naming, in the "Data" loose folder reproducing exactly the original folder structure.  These will then override the ones in the vanilla BSA file when "ArchiveInvalidation" is toggled.  In that case, you shouldn't need to make any changes to your ESP/ESM files to have the new meshes active.
 +
* If the items are specific to your mod and should coexist with vanilla items: place the modified meshes, with new names, in a folder structure specific to your mod.  You will then be creating new unique instances of the items using those meshes under that unique path and have to include them in your ESP/ESM files.
 +
</div>
  
* [http://www.nexusmods.com/fallout3/mods/6306/? Adding a custom creature to Fallout 3 Tutorial by Ominus] PDF.  Very Basic.
+
<span id="Tip-ObjectCollision"></span>
* [http://geck.bethsoft.com/index.php?title=Bethsoft_Tutorial_NPC_population Bethsoft Tutorial NPC population] HTML.  Covers the basic placement of leveled lists for enemy spawning and the use of generic patrol and sandbox package behaviors.
 
* [http://www.nexusmods.com/newvegas/mods/60497/? Bringing Life to the Mojave by Mindboggles] PDF.
 
* [http://www.youtube.com/watch?v=8YVZ0FoXXcc GECK Tutorial - Creature/NPC Companion by Seddon4494] Video.
 
* [http://www.youtube.com/watch?v=JIHh6-4k_q4 GECK Tutorial: Custom Creature Part 1 (of 4) by gerokeymaster] Video.
 
  
<span id="Tip-EmbeddedWeapon"></span>
+
==== TIP Custom Object Collision ====
====TIP Locate Embedded Creature Weapon====
+
: Thanks to '''madmongo''' and '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
: Thanks to '''uhmattbravo''' of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for 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+ */
">
+
">Sometimes (even though you added "collision" to an object) when you initially place it on a shelf or other surface with collision just fine, it seems to fall at least partially through the surface when the cell reloads.  If precisely aligning your object with the surface results in it sinking, try placing the object's Z-axis just slightly above the surface collision boundary and let it drop into collision with the surface.  However, this only works if the object is a "[http://geckwiki.com/index.php/Movable_Static Movable Static]" based upon "Havok Materials", whose weight gives them "gravity" physics.  (See also [[#TIP: Collision Impact Sounds|TIP: Collision Impact Sounds]] and the GECK entry for [http://geckwiki.com/index.php/Object_palette Object Palette].)
* If you're using an existing creature, the quickest way to locate an embedded weapon would be to look at one of it's existing weapons in '''GECK'''.
+
 
* If it came from a resource, and doesn't have any existing weapons, open the skeleton in '''Nifskope''' and look at the end of bones where it would be logical to fire from. Typically it's named projectile node or something similar, but it's also one of the few (if not only) bones that doesn't start with ''bip01''.
+
Part of the issue can be in how you created the collision mesh.  For simple objects, just copy the mesh for your custom object from the vanilla object mesh.  However, that doesn't work so well for complex objects with a complex collision mesh.  It's preferable to use a simple box collision (which can be created in '''Nifskope''' instead of your "mesh editor"). For "havoked" or "grabable" objects: primative collision (sphere, box, or capsule) are preferable to avoid engine problems.
 
</div>
 
</div>
  
=== Custom NPCs ===
+
=== Conversions ===
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.]
* See the [[#Dialogue & Lip-synch|Dialogue & Lip-synch]] section regarding scripting "Dialogue" and "Conversations".
+
* [http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.
:* [[#Tip-GenericDialog | TIP: Adding Generic Dialog.]]
+
* [http://taleoftwowastelands.com/content/fnv-edit-series-converting-fo3-mods Converting F03 mods to TTW & FNV] Wiki.
:* [[#Tip-Translators|TIP: Conversation/Quest system.]]
+
* [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".
:* [[#Tip-OCE|TIP: Obsidian Conversation Editor (OCE).]]
+
* [http://www.youtube.com/watch?v=NPKrwES9Cb4 FNVEdit Creating compatibility patches for "Brumbeks Inventory Sorting" (BIS) by JaHn3tiC] Video.
:* [[#TIP-RandomNPCcomments|Tip: Random NPC Comments.]]
+
* [http://www.youtube.com/watch?v=z61u0bQUmgM FNVEdit Making a Feature (Basic Compatibility) Patch by Roy Batty] Video.
:* [[#Tip-DialogTabs|TIP: Standard Dialog.]]
+
* [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://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://tone-analyzer-demo.mybluemix.net/ Tone Analyzer] uses linguistic analysis to detect three types of tones from written text: emotions, social tendencies, and writing style. Users can use the online Tone Analyzer service to analyze conversations and communications.
 +
: Tools behind a "gated" "Adult (18+) Only site" in their "modder resources" section.
 +
:* [http://www.loverslab.com/topic/27557-new-clothing-body-style-converter-beta-v089f-10-26-2014/ New Clothing Body Style Converter] Tool
 +
:* [http://www.loverslab.com/topic/37660-clothing-converter-lattice-library-share-your-clothing-converter-lattices/ Clothing Converter Lattice Library] Resource.
 +
 
 +
<span id="Tip-MeshConversion"></span>
 +
====TIP Converting meshes====
 +
: Thanks to '''madmongo''' and '''MA48A5''' 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+ */
 +
">Other games has meshes you would like to use; either vanilla or from mods.  Which game is better to get a mesh from? Quality wise, and which game is easiest to convert said mesh to '''FNV'''?  '''Oblivion''', '''Skyrim''', or '''Skyrim Special Edition'''?
  
* See the [[#Scripting|Scripting]] section regarding:
+
If this is for your own personal use, there's no issue. If this is for a mod that you plan on releasing on the '''Nexus''' (or anywhere else), then you can't use assets from other games (period). They are copyright protected against "distribution" without permission. Not even from other Bethesda games in the same series like '''Fallout'''.  (The exception is if the resources are already included in the "destination" game's files even though not used.)
:* types of scripts: Objects, Quests, and "Base Effects".
 
:* [[#TIP-EditorIDNames|'''TIP: Do not begin Editor-IDs with numbers.''']]
 
:* [[#Tip-CompoundConditionals|TIP: Debugging Compound Conditionals.]]
 
:* [[#Tip-Debugging|TIP: Debugging data to file.]]
 
:* [[#Tip-EventHandler|TIP: Don't overlook EventHandlers.]]
 
:* [[#Tip-Encapsulation|TIP: Encapsulation - Parens, Brackets, and Braces.]]
 
:* [[#Tip-FunctionParameters|TIP: Function parameter separation with commas.]]
 
:* [[#Tip-ParsingLines|TIP: GECK parses the entire line before evaluating.]]
 
:* [[#Tip-NPCWpnChoice|TIP: NPC Weapon Choice.]]
 
:* [[#TIP-MsgVariable|TIP: Pass a variable number into a script message.]]
 
:* [[#Tip-Notes|TIP: Passing a 'Note' to the player.]]
 
:* [[#Tip-Recipes|TIP: Passing a 'Recipe' to the player.]]
 
  
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]<br>
+
You can only use assets from other mods if the mod author gives you explicit permission to do so (e.g. "this is a modder's resource").
  
"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.
+
That said, the game engine for '''Oblivion''' is fairly close to the game engine for '''FO3/FNV'''. They changed quite a bit for '''Skyrim'''. In any event, the skeletons for the player and for NPCs is different for any of the TES games. If you are porting over armor or clothing, you'll need to unparent the mesh from its original armature and reparent the mesh to the '''FNV''' skeleton, and of course reassign all of the bone weights as you'd expect from doing that sort of thing.
  
* [http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel] HTML. (Most recommended.)
+
Statics don't have a skeleton so those will port much more easily.
* [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'''.
+
Some things just won't port. '''Skyrim Special Edition''', being 64-bit, is about impossible to convert to a 32-bit game.<span style="color: orange; background-color:#424242;">[[#Tip-MeshConversionFootnote1|(See also Footnote [1]]])</span>  So that leaves '''Skyrim''' and '''Oblivion'''.  '''Skyrim''' armor that uses ''wings'' for example won't ever animate properly in '''FNV''' no matter what you do, because the '''FNV''' skeleton doesn't include ''wings''. To make them work, you'd have to not only create a new skeleton/armature, but you'd also have to create a whole bunch of animations to go with the new skeleton. Otherwise, the best you can do is have ''static wings'', which will look a bit funny. (There is one armature with support for '''''moving wings''''' by '''Deedes''' (2014) on Nexus with versions for [http://www.nexusmods.com/fallout3/mods/20620 FO3: The Skeleton] and [http://www.nexusmods.com/newvegas/mods/56657 FNV: The Skeleton].  You would have to re-parent the mesh to that armature.
* [http://geckwiki.com/index.php/Adding_items_to_vendors GECK: Adding items to vendors] Wiki tutorial.
 
* [http://www.youtube.com/playlist?list=PLo2FGzSVbkcPedlm9zZ981YvUy7DoSQew GECK: Companion Tutorial playlist by cgy95] Video series.
 
* [http://geck.technodeep.net/index.php/Creating_a_new_vendor GECK: Creating a new vendor] Wiki tutorial.
 
* [http://www.youtube.com/watch?v=O9wnoZ7tKro GECK: Creating an NPC] Video.
 
* [http://www.youtube.com/watch?v=NuFepoBHptk GECK: Custom NPC and Dialog] Video.
 
* [http://forums.nexusmods.com/index.php?/topic/5184015-guide-replacing-vanilla-hair-with-modded-hair/ GUIDE: Replacing Vanilla Hair with Modded Hair] Forum Thread.
 
* [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/38059/? NCCS - NosCo Companion System] ModReady-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/41652/? Rivens Tattoo Flash Sheets] Resource. (Copy-and-paste tattoos.)
 
* [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.
 
  
<span id="Tip-ActorHeight"></span>
+
The [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" in their "modder resources" section, is designed to facilitate converting "armor" and "clothing" between different body types. However, it is still in "Beta" status since 2014, but does work with upper/lower body meshes and CBBE bodiesNote you will need either an existing [http://www.loverslab.com/topic/37660-clothing-converter-lattice-library-share-your-clothing-converter-lattices/ Clothing Converter Lattice Library] or to make one yourself.
==== TIP Actor height in GECK ====
 
: 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+ */
 
">If you want to make an Actor taller or shorter in the '''GECK''', just modify their '''Height''' on the ''Traits'' tab. It's a little confusing because most Actors have a value of "0.00" for height, which just means ''use the default'': "0.00" is the same as setting the height to "1.00" (told you it's confusing). If you set it to something other than zero, then it's a percentage scale factor. In other words, if you set the height to "0.95" then they'll be "95 percent" as tall as the default, or about 5 percent shorterSetting the height to "1.05" would make them 5 percent taller (105 percent of normal height).
 
  
'''Body meshes''' can just be copied from '''FO3''' to '''FNV''' (and vice-versa, but that's illegal "porting": so, personal use only). The skeleton is the same. The only thing that is different between the two games as far as body parts are concerned is "hair" and "hats", which end up rotated by 90 degrees between the two games. You can fix that in '''NifSkope''' by just rotating the part by 90 degrees. (See [[#TIP:_Head_Parts_Rotated|TIP: Head Parts Rotated]] under the "Custom Items" section.)  You don't need to re-parent meshes to armatures and that sort of thing.
+
'''Skyrim''', being a newer game, has more detailed meshes in general, and mod authors have generally followed suit and have created similarly more detailed custom meshes. While this does make for higher quality 3d models, you can run into difficulty if you use a lot of higher quality models and textures in '''FNV''' since it's an older 32-bit game and it will only use 2 GB of memory by default. You can double that to 4 GB if you install the 4 GB patch, but that's as far as you can take it. (32-bits can't address any more than 4GB.) Your PC may have gobs more memory than that, but '''FNV''' won't use it. So it's very easy to run the game out of memory if you use high resolution textures and high quality models.
  
If you want your Actor to be about a foot shorter, that's about 84 percent at the default height of about 6 feet, so set their height to "0.84".
+
The recommendation is almost never use any textures larger than 1024 x 1024 pixels for '''FNV''' unless it absolutely needs a higher resolution due to the nature of the 3D model, just because of the memory issue.  Also try to keep the triangle count (vertices) as low as possible. If you use a lot of 4096 x 4096 textures, your game will look prettier, but it's also going to crash a lot more often.  (A 4096 x 4096 pixel image with 16 bit color resolution is 32 MB of data. If your screen is displaying 100 different models with textures that size, that's 3.2 GB of data just for the textures. Since a 32 bit program can only handle 4 GB of data, you can see how trying to display a lot of high resolution models is going to run the game out of memory very quickly.) The texture caching system in '''FNV''' seems to leak memory. The more you stress it, the sooner it will run the game out of memory and crash.
</div>
 
  
<span id="Tip-GetDistance"></span>
+
<div name="Simulated code box" class="boilerplate metadata" id="Warning Notice"  
====TIP AI Packages and Distance====
+
style="margin:0px 10px 10px 10px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;"
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
/* Remove the next four 'white-space' lines to restore default white-space processing. */
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
+
white-space: pre-wrap;      /* css-3 */
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
+
white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
background-color:#333333;padding:3px;
+
white-space: -pre-wrap;      /* Opera 4-6 */
 +
white-space: -o-pre-wrap;    /* Opera 7+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">Supposing you want your character to meet up with an NPC at some X-Marker location, but they aren't there when you "fast travel" to that location?  You need to "teleport" them ,but you don't want to just make them "vanish".  Here is one way to handle it.
+
">
 +
<span style="color: orange; background-color:#424242;" id="Tip-MeshConversionFootnote1">Footnote [1]:</span> This statement deserves some clarification.
  
In the "Dialog Result Script" where you make the NPC start using your "AI Package" to send them to that location, also start a "quest script" (e.g. "ThisQuestName"). This quest should have a processing delay of perhaps one second, and then check for the player to be a certain distance away from the NPC, and for the NPC to not be in the player's view ("Line of Sight": LoS). Once it's found that both requirements are satisfied, the NPC is teleported to the marker and the quest was ended.  The quest is set to be stopped on proper completion of the AI package as well, in case it's still running.
+
A lot of people seem to think that anything made with a 64 bit program can't be compatible with stuff made by a 32 bit program. That's not true. What matters is the data format that the programs use. If the format is the same, then the data will work for both the 32 and 64 bit programs. There's nothing special about the data created by a 64 bit program. It's just data.  The key is in the format.
  
The example script below uses the '''JIP LN NVSE''' function ''GetDistance2D'', but it will work fine with the vanilla ''GetDistance'' function as well.
+
32 bit programs can't access more than 4 GB of memory. This is because 2 to the 32nd power is 4 GB, so if all you have is 32 bits available to specify a memory location, it has to be in the lower 4 GB of memory. This is why FO3 and FNV will never use more than 4 GB of memory (2 GB without the "4 GB patch") no matter what. The programs just aren't capable of accessing any more memory than that.
<pre>
+
 
Begin GameMode
+
'''Skyrim SE''' is basically a 64 bit port of '''Skyrim''' using the updated '''Creation Engine''' that they developed for '''Fallout 4 (FO4)'''. For porting objects from one game to another, we don't really care about that. What we care about is whether the NIF file format changed between '''Skyrim''' and '''Skyrim SE'''. There are plenty of programs which come in 32 and 64 bit versions, and both use the same '''data format''' to store their data '''''if you select it''''', so you can use either the 32 bit or the 64 bit version.
    ; separation of player and NPC check
 
    If player.GetDistance2D refNPC >= 2048
 
        If player.GetLOS refNPC == 0
 
            refNPC.moveto refMarker
 
            ; maybe remove their AI package or add another one or whatever here?  maybe EVP?
 
            StopQuest ThisQuestName
 
        EndIf
 
    EndIf
 
End
 
  
Begin GameMode
+
For '''Skyrim SE''' though, they were playing around with the '''Creation Engine''' for '''FO4''' development, and they made changes to the NIF format for '''FO4'''. It's not known how many of those changes (if any) were made to the NIF format for '''Skyrim SE''', but if you can't easily import meshes from '''Skyrim SE''' into '''Blender''' (for example), it's because the tool set hasn't been updated to handle the data format difference. It's a data format difference, not a 32 vs 64 bit difference.
    ; NPC near X-Marker check
+
</div>
    if refNPC.GetDistance2D refMarker <= 64
 
        StopQuest ThisQuestName
 
    endif
 
End</pre>
 
''GetLOS'' isn't always reliable, so in some situations it may be preferred just to increase the distance; maybe use ''GetDistance3D''''GetLOS'' has returned "true" when the NPC or object was at the very edge of the player's camera, and has not realized the player couldn't see the NPC. These both require an extreme circumstance, and most of the time it works fine; but it's best to test each situation.
 
 
</div>
 
</div>
  
<span id="Tip-NPCPreview"></span>
+
<span id="Tip-PluginCopy"></span>
====TIP Avoid CTD previewing NPCs====
+
====TIP Copying between plugins====
 
<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+ */
">To avoid crashing the GECK when you desire to "preview" an NPC, try opening their face "advanced" tab first. Then go back to one of the other tabs to check the "Preview Full".  And when editing, click "Ok" for closing the NPC window, and then save the file instead of switching to the other tabs. Don't leave "edits" hanging when switching among tabs.</div>
+
">
 +
* The Trick is to make an ESP first, only dependent on the main master file.  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.  You can of course delete that cell later if it's not needed for your purposes.
 +
* Then open the GECK adding the other files from which you want to use assets, with your new .ESP as the "active file".</div>
  
<span id="Tip-OnlyOneRace"></span>
+
=== Creature Creation ===
====TIP Changing only one race====
+
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
: 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+ */
 
">Since the '''GECK''' is really an evil Vault-Tek experiment designed to test modder's frustration levels, one of the annoying things that it does is any time you even click on a race to view it, it marks that race as changed. Your mod will therefore not only create your custom race, but it will also overwrite any other mod's changes to the (Caucasian, Asian, Asian Child, Ghoul, etc.) races. If you don't want your mod to change these other races, when you start up the '''GECK''': select your mod and select ''Details''. Then select the races other than your custom race one by one, and press the ''<Delete>'' key. That will flag those changes so that they don't get loaded when you next load up the GECK. Now load your mod up as usual and save it. That will get rid of the extra races in your mod that you probably didn't want to modify.
 
  
Alternately, you can use FNVEdit to remove the extra race records. It's a bit less clicking and fiddling to do it in the GECK, but either way works.
+
The process of creating a "creature" is essentially the same as creating a "NPC Companion", but without the "companion wheel".
</div>
 
  
<span id="TIP-CompanionWheel"></span>
+
* [http://www.nexusmods.com/fallout3/mods/6306/? Adding a custom creature to Fallout 3 Tutorial by Ominus] PDF.  Very Basic.
====TIP Companion Wheel====
+
* [http://geck.bethsoft.com/index.php?title=Bethsoft_Tutorial_NPC_population Bethsoft Tutorial NPC population] HTML.  Covers the basic placement of leveled lists for enemy spawning and the use of generic patrol and sandbox package behaviors.
: Thanks to '''madmongo''' of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for the following basic summary:
+
* [http://www.nexusmods.com/newvegas/mods/60497/? Bringing Life to the Mojave by Mindboggles] PDF.
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
+
* [http://www.youtube.com/watch?v=8YVZ0FoXXcc GECK Tutorial - Creature/NPC Companion by Seddon4494] Video.
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
+
* [http://www.youtube.com/watch?v=JIHh6-4k_q4 GECK Tutorial: Custom Creature Part 1 (of 4) by gerokeymaster] Video.
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">To make the companion wheel work, you MUST use the specific dialog options and variables shown in the [http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel] tutorial, as those are the options that the command wheel is expecting. Hopefully when converting an existing one, the original companion has enough dialog options that you can just copy the voice files to the dialog topics that you need. The tutorial has two quests, one that runs the companion and one that is only to hire the companion. You don't really need a quest to hire the companion. You can just do it through dialog if you really want to keep it simple.
 
  
Only one companion conversation option should be active at a time.  In other words, if you already have a dialog option for the companion to follow you, you need to disable that conversation option and use the existing '''FollowersLetsGo''' topic instead. Similarly, if you have a wait option, you need to disable that and use '''FollowersWait''' instead. Using ''SetPlayerTeammate 1'' in the hiring script is enough make the command wheel appear whenever you talk to the NPC, but the command wheel options won't actually work unless you use the '''Followers''' topics: such as '''FollowersWait, FollowersLetsGo, FollowersTrade''', and the various '''FollowersTactics'''' options.
+
<span id="Tip-EmbeddedWeapon"></span>
 
+
====TIP Locate Embedded Creature Weapon====
If the topics aren't showing up, check to make sure you have ''Top Level'' checked (upper right on the quest form) and make sure that the conditions are valid. Also, trading (''OpenTeammateContainer'') won't work unless the NPC is set to be a teammate
+
: Thanks to '''uhmattbravo''' of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for the following:
(you've done a ''SetPlayerTeammate 1'' on the NPC, which is usually done when hiring the NPC).
 
 
 
Make sure you have a line with ''SetPlayerTeammate 0'' when firing the companion so the command wheel will no longer show up when you talk to them.  The tutorial has the details of exactly which topics you need to use.
 
</div>
 
 
 
span id="Tip-CustomRaceFaces"></span>
 
====TIP Custom Race and Faces====
 
: 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+ */
">A ''custom race'' doesn't give you a ''custom face''. (The ''head'' mesh is separate from the ''body'' mesh and the ''race'' textures.  See [[#Tip-CustomSkinTextures|TIP: Custom Race & Skin Textures.]]) It gives you a custom face blueprint that is further modified by all of the '''FaceGen''' stuff (see [[#FaceGen:_Heads,_Faces,_Hairs,_and_Helmets|FaceGen: Heads, Faces, Hairs, and Helmets]] section) when you actually apply it to your NPC or player preset. If the custom race version is pretty close to what you want, then you'll probably want to adjust all of the sliders in both the ''Geometry'' and the ''Texture'' section of the NPC pretty close to the middle (zero) for each slider. There are some shading and tinting effects that always get applied whether you want them or not, which is a royal pain in the backside sometimes. Unfortunately, there's no known way to disable them.
+
">
 +
* If you're using an existing creature, the quickest way to locate an embedded weapon would be to look at one of it's existing weapons in '''GECK'''.
 +
* If it came from a resource, and doesn't have any existing weapons, open the skeleton in '''Nifskope''' and look at the end of bones where it would be logical to fire from. Typically it's named projectile node or something similar, but it's also one of the few (if not only) bones that doesn't start with ''bip01''.
 
</div>
 
</div>
  
<span id="Tip-CustomSkinTextures"></span>
+
=== Custom NPCs ===
 +
Other sections have relevant information to this subject.  The following "Tips" in particular are applicable.
 +
* See the [[#Dialogue & Lip-synch|Dialogue & Lip-synch]] section regarding scripting "Dialogue" and "Conversations".
 +
:* [[#Tip-GenericDialog | TIP: Adding Generic Dialog.]]
 +
:* [[#Tip-Translators|TIP: Conversation/Quest system.]]
 +
:* [[#Tip-OCE|TIP: Obsidian Conversation Editor (OCE).]]
 +
:* [[#TIP-RandomNPCcomments|Tip: Random NPC Comments.]]
 +
:* [[#Tip-DialogTabs|TIP: Standard Dialog.]]
  
====TIP Custom Race and Skin Textures====
+
* See the [[#Scripting|Scripting]] section regarding:
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
:* types of scripts: Objects, Quests, and "Base Effects".
 +
:* [[#TIP-EditorIDNames|'''TIP: Do not begin Editor-IDs with numbers.''']]
 +
:* [[#Tip-CompoundConditionals|TIP: Debugging Compound Conditionals.]]
 +
:* [[#Tip-Debugging|TIP: Debugging data to file.]]
 +
:* [[#Tip-EventHandler|TIP: Don't overlook EventHandlers.]]
 +
:* [[#Tip-Encapsulation|TIP: Encapsulation - Parens, Brackets, and Braces.]]
 +
:* [[#Tip-FunctionParameters|TIP: Function parameter separation with commas.]]
 +
:* [[#Tip-ParsingLines|TIP: GECK parses the entire line before evaluating.]]
 +
:* [[#Tip-NPCWpnChoice|TIP: NPC Weapon Choice.]]
 +
:* [[#TIP-MsgVariable|TIP: Pass a variable number into a script message.]]
 +
:* [[#Tip-Notes|TIP: Passing a 'Note' to the player.]]
 +
:* [[#Tip-Recipes|TIP: Passing a 'Recipe' to the player.]]
 +
 
 +
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]<br>
 +
 
 +
"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.
 +
 
 +
* [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://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Forum Thread by '''trilioth'''.
 +
* [http://geckwiki.com/index.php/Adding_items_to_vendors GECK: Adding items to vendors] Wiki tutorial.
 +
* [http://www.youtube.com/playlist?list=PLo2FGzSVbkcPedlm9zZ981YvUy7DoSQew GECK: Companion Tutorial playlist by cgy95] Video series.
 +
* [http://geckwiki.com/index.php?title=Creating_a_new_vendor GECK: Creating a new vendor] Wiki tutorial.
 +
* [http://www.youtube.com/watch?v=O9wnoZ7tKro GECK: Creating an NPC] Video.
 +
* [http://www.youtube.com/watch?v=NuFepoBHptk GECK: Custom NPC and Dialog] Video.
 +
* [http://forums.nexusmods.com/index.php?/topic/5184015-guide-replacing-vanilla-hair-with-modded-hair/ GUIDE: Replacing Vanilla Hair with Modded Hair] Forum Thread.
 +
* [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/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/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.
 +
 
 +
<span id="Tip-ActorHeight"></span>
 +
==== TIP Actor height in GECK ====
 +
: 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+ */
">Suppose you want to add tattoos (or scars or whatever decoration) to the skin of a particular NPC or race.  The body texture is controlled by the race, not by the mesh "NIF" file. You need to change this in the '''GECK'''. '''NifSkope''' won't help you here.
+
">If you want to make an Actor taller or shorter in the '''GECK''', just modify their '''Height''' on the ''Traits'' tab. It's a little confusing because most Actors have a value of "0.00" for height, which just means ''use the default'': "0.00" is the same as setting the height to "1.00" (told you it's confusing). If you set it to something other than zero, then it's a percentage scale factor. In other words, if you set the height to "0.95" then they'll be "95 percent" as tall as the default, or about 5 percent shorter.  Setting the height to "1.05" would make them 5 percent taller (105 percent of normal height).
  
You are probably going to want to create a ''custom race'' for your character, otherwise the tattoo will show up on every NPC who is a member of that race.
+
'''Body meshes''' can just be copied from '''FO3''' to '''FNV''' (and vice-versa, but that's illegal "porting": so, personal use only). The skeleton is the same. The only thing that is different between the two games as far as body parts are concerned is "hair" and "hats", which end up rotated by 90 degrees between the two games. You can fix that in '''NifSkope''' by just rotating the part by 90 degrees.  (See [[#TIP:_Head_Parts_Rotated|TIP: Head Parts Rotated]] under the "Custom Items" section.)  You don't need to re-parent meshes to armatures and that sort of thing.
  
To create a ''custom race'', open up the '''GECK''' with at least the '''Fallout New Vegas.ESM''' file selected, select the ''Actor Data | Race'' tab on the left (in the Object Window), double click on one of the races to bring up the ''Race'' form, and now select one of the races to duplicate. (Note there is a "TestQACaucasian" race that is not otherwise used if you want to try out the process.)  If your tattooed character is ''Caucasian'', for example, right-click on the ''Caucasian'' race and select ''Duplicate''.
+
If you want your Actor to be about a foot shorter, that's about 84 percent at the default height of about 6 feet, so set their height to "0.84".
 +
</div>
  
 +
<span id="TIP-AIPackageBasics"></span>
 +
==== TIP AI Package Basics ====
 
<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 solid #00C600;color: green;
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
background-color:#fff5f5;padding:3px;
+
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">Important Note: Since the '''GECK''' is an evil Vault-Tec tool designed to test modder's frustration levels, it's important to note that, for no other reason than it's evil, it has now decided to mark your original vanilla ''Caucasian'' race as modified, even though you haven't made any modifications to it, thus guaranteeing that your tattoo mod will conflict with any other mods that modify the ''Caucasian'' race. Stupid '''GECK'''. (See also [[#Tip-OnlyOneRace|TIP: Changing only one race.]]) Fortunately, fixing this is fairly simple. You can use '''FNVEdit''' to remove the modified ''Caucasian'' race from your mod, OR you can just save your mod, start up the '''GECK''' again, select ''Data'', and instead of just selecting your new mod, highlight your new mod and select the '''Details''' button (at the bottom next to the '''Set as Active File''' button). There should be a '''RACE''' entry under the ''Type Column'', with the '''Caucasian''' Editor-IDHighlight that and press the ''<Delete>'' key. This will mark the modified ''Caucasian'' race as not to be loaded by the '''GECK'''. Select the '''Close''' button, and now load up your mod in the '''GECK'''. With that your mod no longer includes the modified '''Caucasian''' race, so save your mod, and now the unintentionally modified vanilla ''Caucasian'' race is permanently gone from your mod.</div>
+
">You need to understand the difference between an [http://geckwiki.com/index.php?title=GetCurrentAIPackage AIPackage] and an [http://geckwiki.com/index.php?title=GetCurrentAIProcedure AIProcedure].  Also, check out the [http://geckwiki.com/index.php?title=Category:AI_Functions Category:AI Functions] to understand the less obvious things you can do with them(Take the time to read the linked wiki pages.)
  
Now that you have a modified race to work with, again select ''Race'' on the left side and double-click on your "new race" to bring up the ''Race'' form with your "new race" selected. <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: red;
+
First you have to chose the correct type of [http://geckwiki.com/index.php?title=Category:Packages Package] to use; investigating how each is intended to be used and actually functions in practice for your purposes.  Remember: only one '''Package''' will run on any given Actor at a time; but that package can have several '''Procedures''' within it to deal with different circumstances. While there is overlap between the two, note that '''Procedures''' is a longer list. Don't get ahead of yourself: work on and refine each '''Procedure''' by itself before you attempt to combine them into a comprehensive '''Package'''. (You will use "condition flags" to control which gets used when.  More on this later.)
background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">Make sure you do not even click on any other race, or that race will be marked as modified by your mod</span> (stupid '''GECK'''). Again, if you goof up and accidentally click on another race, you can mark it as deleted during load and get rid of it that way, or you can clear it out using '''FNVEdit'''.
 
  
Make sure the ''Playable'' box is checked. As long as you copied from another playable race, it should be checked already.
+
For example: "Stalking" would be a '''Procedure''' that is more than just a simple "follower" script because you want the Actor to try to remain unnoticed. For one thing, you might want to use an "Escort" or "Guard" base package instead of "Follow". "Sneaking" is inherently slower than normal movement, but NPCs "cheat" by "teleporting" when they get too far away from the target they are following.  (You  might not have noticed this unless you checked on companions behind yourself frequently in rough terrain.)  But you might find you need to shift in and out of "sneak" mode.  Various '''Target Followers''' may affect what you need for the effective trailing distance to avoid having aggressive ones attacking your "stalker".
  
Select the ''Text Data'' tab at the top of the ''Race'' form, and change the name of your "new race". If you don't do this, when you go to select your race during character creation, you'll have two races that both say ''Caucasian'' (or whatever race you copied) and you won't be able to tell which race is which. So change it to something like ''Tattoo Race'' or ''Caucasian Tattoo'' or whatever you want to call it.
+
Once you get that functional, you might want a "flee" '''Procedure''' that will keep that Actor at a proper distance from the '''Target''' without losing track of them so it can resume "following". A "special case" to test is if your "stalker" is fleeing while the '''Target''' changes cells.  In which case, what are you going to have your "stalker" do to "pick up the scent" of their '''Target''' again?
  
If you are only modifying the female body texture, check the ''Female'' box down at the bottom where it says ''editing''. (There is a box for ''Male'' and ''Female'', and ''Male'' is checked by default.)
+
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.
  
There are four textures that define a human body: The ''body'' texture (includes ''torso, arms, legs, and feet''), ''left hand, right hand, and head''. All of these except the ''head'' are found on the ''Body Data'' tab. The default human bodies use the same texture for both the right and left hand. For my tattooed characters, I have given them custom tattoos on each hand and therefore have ended up with unique textures for both the left and right hands. Just click on ''Edit'' and select your new textures. If you are only replacing the body texture, then you only need to modify the ''Upper Body Texture'' and you can leave the hand textures alone.
+
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.  
 
 
<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+ */
 
">Another important note: You only select the main texture file (i.e. '''upperbodyfemale.dds''') in the '''GECK'''. The '''GECK''', and the game, assume that the ''normal map'' and ''skin'' files are in the same folder, and have exactly the same name as the main texture, except with "_n" for the normal map and "_sk" for the skin appended to the base filename. In other words:
 
: If your tattooed texture is called '''upperbodyfemale.dds''':
 
:* the normal map has to be '''upperbodyfemale_n.dds''', and
 
:* the skin needs to be '''upperbodyfemale_sk.dds'''.  
 
: If your tattooed texture is called '''tattoobody.dds''', then
 
:* the normal map needs to be '''tattoobody_n.dds''', and
 
:* the skin needs to be '''tattoobody_sk.dds'''.  
 
Typically, if you are only adding tattoos to an existing texture, you can just copy the "_n" and "_sk" files from the original body to the folder with your new tattoo texture. Each modified texture (body, left hand, right hand, head) that you have needs a matching "_n" and "_sk" file.</div>
 
  
It should go without saying that all of these textures have to be somewhere in your "Data\Textures" folder.
+
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.
  
The ''head'' texture works the same, except it is under the ''Face Data'' tab instead of the ''Body Data'' tab with all of the other textures.
+
See also:
 +
* [[#TIP_AI_Packages_and_Distance|TIP AI Packages and Distance]]
 +
* [[#TIP_Making_NPCs_move_aka_AI_Packages|TIP Making NPCs move aka AI Packages]]
 +
</div>
  
Once you have all of your modifications done and you have all of the files in the right place, you can click the '''preview boxes''' to look at your race's ''Head'' or ''Full'' view.
+
<span id="Tip-GetDistance"></span>
  
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
+
====TIP AI Packages and Distance====
style="margin:0px 10px 10px 10px;border:1px solid #00C600;color: green;
+
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">Something else to note: if you make changes to the ''head'' texture and '''preview''' it, further changes to the ''head'' texture don't always show up in the '''GECK'''. It caches a copy of your ''head'' texture and sometimes won't show any newer version in the preview window. You can shut down the GECK and reload your mod to properly preview your head texture changes if that happens. ''It will usually pick up modifications to the '''body''' texture if you preview again though.'' It's only the ''head'' texture that gets stuck (it has the same issue for  textures for items and other non-NPC things).  See also [[#Tip-FaceFeatures|TIP: Switching Custom Facial Features.]]</div>
 
 
 
If you are using a custom body for your player, you can select the NIF for that on the ''Body Data'' tab as well. There is an ''Upper Body'' model, and a ''Left'' and ''Right Hand'' model. For hand and body NIFs, all you need is the NIF in your '''Meshes''' folder. ''Head'' meshes need an "EGM" file as well, and the file name again needs to match. If your NIF is '''CustomHead.nif''' then the "EGM" needs to be '''CustomHead.egm''', for example.
 
 
 
If all you are doing is adding a texture to whatever the default mesh is on your system for that race, then you probably don't need to worry about custom NIFs. This is true even if you are using a ''body replacer'', since they tend to place themselves in the same location as the default vanilla body NIFs in the folder structure. In other words, if you are using say the "Type 3 body replacer" and your "tattoo texture" is for "Type 3", you already have custom NIFs in your '''Meshes\Characters...''' folder for the "Type 3", and those are already what gets loaded by the GECK for each race type. You don't need to have a custom "Type 3" NIF for your character.
 
 
 
On the other hand, if you want a custom NIF just for your character so that they use a different mesh than the default races, then you will need to specify a custom NIF in the ''race'' in the '''GECK'''. Whatever ''body texture'' is defined in the NIF ends up getting ignored by the game, though. The game will use the custom texture defined in the '''GECK''' instead.
 
</div>
 
 
 
<span id="Tip-Hostility"></span>
 
====TIP Hostility between NPCs====
 
 
<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+ */
">Hostilities will not immediately break out between two NPCs when they come into proximity simply because they are in "Enemy" [[#Factions|Factions]]. Their actions are influenced by the NPCs personal "aggression" and "[http://geck.technodeep.net/index.php/Confidence confidence]" numbers (on the GECK "[http://geck.technodeep.net/index.php/AI_Data_Tab AI Data Tab]" page and the resulting "Threat Ratio" at the time.
+
">Supposing you want your character to meet up with an NPC at some X-Marker location, but they aren't there when you "fast travel" to that location? You need to "teleport" them ,but you don't want to just make them "vanish". Here is one way to handle it.
  
You can use the "[http://geck.technodeep.net/index.php/SetActorValue setav]" command in script to change the "[http://geck.technodeep.net/index.php/ActorValue#User_Defined_Actor_Values Actor Value]" for permanent changes or "[http://geck.technodeep.net/index.php/DamageActorValue DamageActorValue]" and "[http://geck.technodeep.net/index.php/RestoreActorValue RestoreActorValue]" for temporary changes to the "[http://geck.technodeep.net/index.php/Stats_List Stats List]". (See the GECK "[http://geck.technodeep.net/index.php/Actor_Value_Codes Actor Value Code]" list.) Be careful about the scope of effect of your changesRead the warnings under "[http://geck.technodeep.net/index.php/ActorValue Actor Value]" carefully.
+
In the "Dialog Result Script" where you make the NPC start using your "AI Package" to send them to that location, also start a "quest script" (e.g. "ThisQuestName"). This quest should have a processing delay of perhaps one second, and then check for the player to be a certain distance away from the NPC, and for the NPC to not be in the player's view ("Line of Sight": LoS)Once it's found that both requirements are satisfied, the NPC is teleported to the marker and the quest was endedThe quest is set to be stopped on proper completion of the AI package as well, in case it's still running.
  
There are ten "user defined/mod actor values". They have no defined game functions, but can be used by quests to establish permanent data on the actor. Keep in mind that setting one of the variables on an actor implicitly defines that variable for ALL actors, not just in your modUsing these values to store extra information has the potential to cause conflicts with other mods. <span style="color: red; background-color:#fff5f5;">If you need to store information on an actor, use a token (an unplayable, therefore invisible, piece of armour) instead.</span>
+
The example script below uses the '''JIP LN NVSE''' function ''GetDistance2D'', but it will work fine with the vanilla ''GetDistance'' function as well.
</div>
+
<pre>
 
+
Begin GameMode
<span id="Tip-InterruptCombat"></span>
+
    ; separation of player and NPC check
====TIP Interrupt combat for dialog====
+
    If player.GetDistance2D refNPC >= 2048
: Thanks to '''clanky4''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
        If player.GetLOS refNPC == 0
 +
            refNPC.moveto refMarker
 +
            ; maybe remove their AI package or add another one or whatever here?  maybe EVP?
 +
            StopQuest ThisQuestName
 +
        EndIf
 +
    EndIf
 +
End
 +
 
 +
Begin GameMode
 +
    ; NPC near X-Marker check
 +
    if refNPC.GetDistance2D refMarker <= 64
 +
        StopQuest ThisQuestName
 +
    endif
 +
End</pre>
 +
''GetLOS'' isn't always reliable, so in some situations it may be preferred just to increase the distance; maybe use ''GetDistance3D''''GetLOS'' has returned "true" when the NPC or object was at the very edge of the player's camera, and has not realized the player couldn't see the NPC.  These both require an extreme circumstance, and most of the time it works fine; but it's best to test each situation.
 +
</div>
 +
 
 +
<span id="Tip-NPCPreview"></span>
 +
====TIP Avoid CTD previewing NPCs====
 
<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+ */
">Suppose you want an NPC (once engaged) to interrupt combat in order to switch to some dialog: such as to offer to surrender when their HP drops low enough(An example of this is during the "Dog/God" fight in the kitchen of the Sierra Madre Casino, but that script is a mess to try to interpret.)
+
">To avoid crashing the GECK when you desire to "preview" an NPC, try opening their face "advanced" tab firstThen go back to one of the other tabs to check the "Preview Full".  And when editing, click "Ok" for closing the NPC window, and then save the file instead of switching to the other tabs. Don't leave "edits" hanging when switching among tabs.</div>
  
When the conditions for that interruption are correct, use the command:
+
<span id="Tip-OnlyOneRace"></span>
<div name="Simulated code box" class="boilerplate metadata" id="SimCodeBox"  
+
====TIP Changing only one race====
style="margin:0px 10px 10px 10px; border:1px dashed #DAA520; color: lightgray;  
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
background-color:#424242; padding:3px;"
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
/* Remove the next four 'white-space' lines to restore default white-space processing. */
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
white-space: pre-wrap;      /* css-3 */
+
background-color:#333333;padding:3px;
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+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">PlayerRef.[http://geckwiki.com/index.php/StopCombatAlarmOnActor StopCombatAlarmOnActor]
+
">Since the '''GECK''' is really an evil Vault-Tek experiment designed to test modder's frustration levels, one of the annoying things that it does is any time you even click on a race to view it, it marks that race as changed. Your mod will therefore not only create your custom race, but it will also overwrite any other mod's changes to the (Caucasian, Asian, Asian Child, Ghoul, etc.) races. If you don't want your mod to change these other races, when you start up the '''GECK''': select your mod and select ''Details''. Then select the races other than your custom race one by one, and press the ''<Delete>'' key. That will flag those changes so that they don't get loaded when you next load up the GECK. Now load your mod up as usual and save it. That will get rid of the extra races in your mod that you probably didn't want to modify.
</div>
 
This ends the fighting flag for all enemies targeting the specified actor (e.g. PlayerRef). All hostile actors that are in combat with that actor will return to their normal routines. Now they can enter into dialog (or other activities such as a "run away" travel package).
 
  
If you wish to only stop the fighting flag for a single actor, refer to [http://geckwiki.com/index.php/StopCombat StopCombat].
+
Alternately, you can use FNVEdit to remove the extra race records. It's a bit less clicking and fiddling to do it in the GECK, but either way works.
 
</div>
 
</div>
  
<span id="Tip-NPCMovement"></span>
+
<span id="Tip-CharGenFacePresets"></span>
====TIP Making NPCs move ''aka '''AI Packages'''''====
+
====TIP CharGen Face Presets====
: 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''' 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+ */
">An NPC that just stands there typically is doing so because they don't have an [http://geck.technodeep.net/index.php/AI_Packages_Tab GECK: AI package] to run.
+
">When you want to take a Actor's (Player or NPC) face data to or from a save game file and turn it into a "CharGen Face Preset":
 +
* [http://www.nexusmods.com/newvegas/mods/35769/ FaceGen Save Face Ripper for FNVEdit] tool to rip face hex data from save files for use in '''FNVEdit'''.
 +
* [http://www.nexusmods.com/newvegas/mods/56009? Jokerine's Misc Resources and Tutorials - FNV] has a step-by-step tutorial on the process.
  
A typical companion will have a companion script which will have defined a number of [http://geck.technodeep.net/index.php/Category:Packages GECK: Packages]: a '''Follow''' default package, a '''Follow Long''' package, an '''Idle/Wait''' package, and a '''Non-hired''' package (they may use the same package for ''Wait'' and '''Non-hired''', like a ''sandbox'' type package, for example). Each of the packages must have a condition variable, which will typically be the equivalent of "'''if (''IsFollowingDefault'' == 1)'''" for the follow default package, or ''IsFollowingLong'' for the follow long package, or ''HasBeenHired'' is set to zero for the '''Not-hired''' ''sandbox'' (or whatever) package, and "'''if (''waiting'' == 1)'''" for the '''Wait''' package. If you don't have a condition, then the package will want to always run. Those variables (e.g. ''IsFollowingDefault'', ''IsFollowingLong'', etc.) all have to be defined in the NPC's script. You set the various variables to match what you want the character to do as the way you control which package is used, then do an ''[http://geck.bethsoft.com/index.php?title=EvaluatePackage EvaluatePackage] (.EVP)'' function on the NPC to get them to switch.
+
Once you have the face in the '''GECK''', you can copy the face from one Actor to another by opening both Actors in the '''GECK'''. There is a copy and paste option under the ''Face Advanced'' tab.  
  
Function ''[http://geckwiki.com/index.php/ResetAI ResetAI]'' clears all current AI behaviors from an actor. Combat, pathing, and packages are re-evaluated.  This is a severe command that affects all AI behavior.  Usually, you just want to have an actor re-evaluate its current package. In that case, use ''EvaluatePackage'' instead. (When using the number of "tokens" present in an Actor's inventory to control AI packages, one author found it necessary to use ''ResetAI'' instead of ''EVP'' in order to get their script to function correctly more often than the first time. The cause behind this behavior is unknown.)
+
There are two bugs you need to be aware of.
 +
* First, you need to copy the hair color over to the target Actor first (the three RGB values under the ''Face'' tab); otherwise when you change the hair color the FaceGen data will change slightly.
 +
* The second thing is that when you do copy and paste from the ''Face Advanced'' tab, whatever option is selected (by default it's the first one, ''Brow Ridge High/Low'') will not be copied. So go to the source Actor, press ''Copy'', go to the target Actor, press ''Paste'', then change the selection from ''Brow Ridge High/Low'' (or whatever is currently selected) to something else and press ''Paste'' again.
  
See also [http://geckwiki.com/index.php/How_Are_Packages_Evaluated How Are Packages Evaluated].
+
The '''Character Gen Preset''' shouldn't have any factions or inventory or anything else. You can open up one of the existing presets (they all have "CG" at the start of their Editor-ID) and save it with a new Editor-ID and it should be set up correctly. If you are making a new one from scratch instead, make sure you check ''Is CharGen Face Preset''. The '''GECK''' is a buggy mess, so if you change any of the flags on the left, save the Actor and re-open before changing tabs and doing something else or your changes to the check boxes can get lost.
 +
</div>
 +
 
 +
<span id="TIP-CompanionWheel"></span>
  
So, if you want your NPC to '''Follow''' you, it's necessary to script the following in the NPC's conversation quest (replace "MyNPCREF" with the NPC's actual Ref-ID, obviously):
+
====TIP Companion Wheel====
 +
: Thanks to '''madmongo''' of the Nexus FalloutNV 'New Vegas GECK and Modders' sub-forum for the following basic summary:
 
<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:#424242;padding:3px;
+
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">
+
">To make the companion wheel work, you MUST use the specific dialog options and variables shown in the [http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel] tutorial, as those are the options that the command wheel is expecting.  Hopefully when converting an existing one, the original companion has enough dialog options that you can just copy the voice files to the dialog topics that you need.  The tutorial has two quests, one that runs the companion and one that is only to hire the companion. You don't really need a quest to hire the companion. You can just do it through dialog if you really want to keep it simple.
: Set IsFollowingDefault to 1
+
 
: Set IsFollowingLong to 0
+
Only one companion conversation option should be active at a time.  In other words, if you already have a dialog option for the companion to follow you, you need to disable that conversation option and use the existing '''FollowersLetsGo''' topic instead. Similarly, if you have a wait option, you need to disable that and use '''FollowersWait''' instead. Using ''SetPlayerTeammate 1'' in the hiring script is enough make the command wheel appear whenever you talk to the NPC, but the command wheel options won't actually work unless you use the '''Followers''' topics: such as '''FollowersWait, FollowersLetsGo, FollowersTrade''', and the various '''FollowersTactics'''' options.
: Set waiting to 0
+
 
: MyNPCREF.evp
+
If the topics aren't showing up, check to make sure you have ''Top Level'' checked (upper right on the quest form) and make sure that the conditions are valid. Also, trading (''OpenTeammateContainer'') won't work unless the NPC is set to be a teammate
 +
(you've done a ''SetPlayerTeammate 1'' on the NPC, which is usually done when hiring the NPC).
 +
 
 +
Make sure you have a line with ''SetPlayerTeammate 0'' when firing the companion so the command wheel will no longer show up when you talk to them.  The tutorial has the details of exactly which topics you need to use.
 
</div>
 
</div>
If you want the NPC to '''Follow Long''', you would do the following:
+
 
 +
<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"  
 
<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:#424242;padding:3px;
+
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
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?
: Set IsFollowingDefault to 0
+
 
: Set IsFollowingLong to 1
+
: 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".
: Set waiting to 0
+
 
: MyNPCREF.evp
+
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>
 
</div>
: <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+ */
 
">(Also, on the NPC object: uncheck the ''no low-level processing'' box if they need to follow you through portals consistently.)</span>
 
  
And if you want the NPC to '''Wait''', you would do the following:
+
<span id="Tip-CustomRaceFaces"></span>
 +
====TIP Custom Race and Faces====
 +
: 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:#424242;padding:3px;
+
background-color:#333333;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">
+
">A ''custom race'' doesn't give you a ''custom face''.  (The ''head'' mesh is separate from the ''body'' mesh and the ''race'' textures.  See [[#Tip-CustomSkinTextures|TIP: Custom Race & Skin Textures.]]) It gives you a custom face blueprint that is further modified by all of the '''FaceGen''' stuff (see [[#FaceGen:_Heads,_Faces,_Hairs,_and_Helmets|FaceGen: Heads, Faces, Hairs, and Helmets]] section) when you actually apply it to your NPC or player preset. If the custom race version is pretty close to what you want, then you'll probably want to adjust all of the  sliders in both the ''Geometry'' and the ''Texture'' section of the NPC pretty close to the middle (zero) for each slider. There are some shading and tinting effects that always get applied whether you want them or not, which is a royal pain in the backside sometimes. Unfortunately, there's no known way to disable them.
: Set IsFollowingDefault to 0
 
: Set IsFollowingLong to 0
 
: Set waiting to 1
 
: MyNPCREF.evp
 
 
</div>
 
</div>
: <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+ */
 
">(Don't forget to set the ''Guard Location'' on the '''Wait''' package to "Near Current Location" instead of the default "Near Editor Location", or the companion will run off to wait at their spawn site.)</span>
 
  
Note that you want to set variables to enable your packages, and also clear variables to stop the other packages from trying to run. You want to set it up so that the only condition that evaluates to '''true''' is the one that's for the package you want the NPC to run. For example: if you want the NPC to follow the "default" package, you need to enable the '''IsFollowingDefault''' variable while disabling both the '''IsFollowingLong''' and the '''Wait''' package variables.
+
<span id="Tip-CustomSkinTextures"></span>
  
The ''HasBeenHired'' variable would be used to enable or disable various conversation options, and would also be set when the NPC is hired and cleared when the NPC is fired (and again, an ''.EVP'' would be done to get the character to ''sandbox'' when not hired so they don't just stand there like an idiot).
+
====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:
 +
<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+ */
 +
">Suppose you want to add tattoos (or scars or whatever decoration) to the skin of a particular NPC or race.  The body texture is controlled by the race, not by the mesh "NIF" file. You need to change this in the '''GECK'''. '''NifSkope''' won't help you here.
  
If you want a fully functional command wheel, you '''''have to use the conversation topics''''' that the command wheel expects.
+
You are probably going to want to create a ''custom race'' for your character, otherwise the tattoo will show up on every NPC who is a member of that race.
  
The first tutorial listed ('Advanced Companion creation guide with Companion Wheel') is recommended for learning to use the "companion command wheel".
+
To create a ''custom race'', open up the '''GECK''' with at least the '''Fallout New Vegas.ESM''' file selected, select the ''Actor Data | Race'' tab on the left (in the Object Window), double click on one of the races to bring up the ''Race'' form, and now select one of the races to duplicate.  (Note there is a "TestQACaucasian" race that is not otherwise used if you want to try out the process.)  If your tattooed character is ''Caucasian'', for example, right-click on the ''Caucasian'' race and select ''Duplicate''.
  
[[File:EPDGaffney_AIPackage-GoingHome.png|thumbnail|100px|AIPackage-GoingHome_Fig-01]]
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
Some people prefer to follow the simpler instructions and example in the [http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Thread by '''trilioth''' (even though it does not include how to use the "companion wheel"), but get confused at "Step 3: Create AI Packages".
+
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+ */
 +
">Important Note: Since the '''GECK''' is an evil Vault-Tec tool designed to test modder's frustration levels, it's important to note that, for no other reason than it's evil, it has now decided to mark your original vanilla ''Caucasian'' race as modified, even though you haven't made any modifications to it, thus guaranteeing that your tattoo mod will conflict with any other mods that modify the ''Caucasian'' race. Stupid '''GECK'''.  (See also [[#Tip-OnlyOneRace|TIP: Changing only one race.]]) Fortunately, fixing this is fairly simple. You can use '''FNVEdit''' to remove the modified ''Caucasian'' race from your mod, OR you can just save your mod, start up the '''GECK''' again, select ''Data'', and instead of just selecting your new mod, highlight your new mod and select the '''Details''' button (at the bottom next to the '''Set as Active File''' button). There should be a '''RACE''' entry under the ''Type Column'', with the '''Caucasian''' Editor-ID. Highlight that and press the ''<Delete>'' key. This will mark the modified ''Caucasian'' race as not to be loaded by the '''GECK'''. Select the '''Close''' button, and now load up your mod in the '''GECK'''. With that your mod no longer includes the modified '''Caucasian''' race, so save your mod, and now the unintentionally modified vanilla ''Caucasian'' race is permanently gone from your mod.</div>
  
The way this was done in the vanilla game (and the [[:File:EPDGaffney_AIPackage-GoingHome.png|AIPackage-GoingHome_Fig-01]] image here) was using quest variables, whereas '''trilioth''''s tutorial uses script variables. Follow the tutorial, as based on the preceding steps you should have these variables in your object script, not your quest script.  The way you create the package is the same otherwise. (See [[:File:EPDGaffney_AIPackage-GoingHome.png|AIPackage-GoingHome_Fig-01]].  {{Thumbnail_enlargement_message}})
+
Now that you have a modified race to work with, again select ''Race'' on the left side and double-click on your "new race" to bring up the ''Race'' form with your "new race" selected. <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+ */
 +
">Make sure you do not even click on any other race, or that race will be marked as modified by your mod</span> (stupid '''GECK'''). Again, if you goof up and accidentally click on another race, you can mark it as deleted during load and get rid of it that way, or you can clear it out using '''FNVEdit'''.
  
<span style="text-align: left; color: red; background-color:#fff5f5;">(WARNING: There is a bug in GECK on versions of Windows after Win7 that causes the columns under the "Conditions" tab to be collapsed to the left and appear to not be present. Accessing this field in the "AI Package" form consistently causes this bug to trigger, and it then affects other "list box" type fields in other forms.  Please see the [[#Issue:_GECK_is_missing_text_in_fields|Issue: GECK is missing text in fields]] entry for suggestions on dealing with this.)</span>
+
Make sure the ''Playable'' box is checked. As long as you copied from another playable race, it should be checked already.
  
For '''Patrol''' packages your NPC needs to be linked to your first "X marker" in the navmeshed patrol path. (See the [[#Tip-NavMeshExteriors|TIP: Navmeshing Exterior cells.]])  All "X markers" in the patrol path need a ''unique ID'', need to be ''persistent'', and linked to each other in the succession you wish it traversed. "Idle markers" can be used but need ''duration'' times set and need to be made ''persistent''.
+
Select the ''Text Data'' tab at the top of the ''Race'' form, and change the name of your "new race". If you don't do this, when you go to select your race during character creation, you'll have two races that both say ''Caucasian'' (or whatever race you copied) and you won't be able to tell which race is which. So change it to something like ''Tattoo Race'' or ''Caucasian Tattoo'' or whatever you want to call it.
  
To make a new '''Patrol''' package with a unique ID: Just edit a base package to your liking; then change the Editor-ID name. GECK will create a new form.  Make sure the package type is '''Patrol''', the ''starting location'' is a linked reference (e.g. "X marker"), and flagged ''repeatable''. Then give the NPC the new package and link your NPC to the first marker in the patrol path.
+
If you are only modifying the female body texture, check the ''Female'' box down at the bottom where it says ''editing''. (There is a box for ''Male'' and ''Female'', and ''Male'' is checked by default.)
  
An NPC not waking up from sleep is an indication the time schedule conflicts with another package.  All it should need is a package type of '''Sleep''', a ''schedule time'' and ''duration'' (do not allow the times to overlap with other packages), flag enable ''fallout behavior'' & for ''location'': the ''name of a cell'' or a linked reference (which needs to be selected) or a ''near reference'' (if you have multiple beds for instance and don't care which they use).
+
There are four textures that define a human body: The ''body'' texture (includes ''torso, arms, legs, and feet''), ''left hand, right hand, and head''. All of these except the ''head'' are found on the ''Body Data'' tab. The default human bodies use the same texture for both the right and left hand. For my tattooed characters, I have given them custom tattoos on each hand and therefore have ended up with unique textures for both the left and right hands. Just click on ''Edit'' and select your new textures. If you are only replacing the body texture, then you only need to modify the ''Upper Body Texture'' and you can leave the hand textures alone.
  
'''Exterior sandbox''' type packages need a package type of ''sandbox'', and a ''wander location'' set with a ''radius''. Set whatever flags you want in: ''allowed behavior'', enabled ''fallout behavior'' in flags, and a non overlapping time scheduled.
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 
+
style="margin:0px 10px 10px 10px;border:1px solid #00C600;color: green;
When you send someone away (i.e. "no longer hired" or "go home"), set the "GoHome" package to be a "sandbox" type instead of "travel", and they will automatically run off to the "home" location to sandbox there. The game scripts often teleport actors to that location first when they want to avoid encountering "hostiles" enroute. Be sure you first set the conditions you are using as appropriate (i.e. "not hired", "available for hire", etc.) before an ".evp" command to take immediate effect.
+
background-color:#fff5f5;padding:3px;
 
+
word-wrap: break-word;      /* Internet Explorer 5.5+ */
Be very careful using "[http://geck.technodeep.net/index.php/AddScriptPackage AddScriptPackage] <packagename>". In practice, whenever an NPC teleports (fast travel, goes through a door, etc) they tend to stop running whatever AI package was added through '''AddScriptPackage''', and then use a suitable sandbox package. It's a useful function for some things, but it won't work in cases like this (traversing cells).
+
">Another important note: You only select the main texture file (i.e. '''upperbodyfemale.dds''') in the '''GECK'''. The '''GECK''', and the game, assume that the ''normal map'' and ''skin'' files are in the same folder, and have exactly the same name as the main texture, except with "_n" for the normal map and "_sk" for the skin appended to the base filename. In other words:
 
+
: If your tattooed texture is called '''upperbodyfemale.dds''':
If your NPCs take off for parts unknown when following a package, make sure you have a "North Marker" placed in the cell.
+
:* the normal map has to be '''upperbodyfemale_n.dds''', and
 +
:* the skin needs to be '''upperbodyfemale_sk.dds'''.  
 +
: If your tattooed texture is called '''tattoobody.dds''', then
 +
:* the normal map needs to be '''tattoobody_n.dds''', and
 +
:* the skin needs to be '''tattoobody_sk.dds'''.  
 +
Typically, if you are only adding tattoos to an existing texture, you can just copy the "_n" and "_sk" files from the original body to the folder with your new tattoo texture. Each modified texture (body, left hand, right hand, head) that you have needs a matching "_n" and "_sk" file.</div>
 +
 
 +
It should go without saying that all of these textures have to be somewhere in your "Data\Textures" folder.
 +
 
 +
The ''head'' texture works the same, except it is under the ''Face Data'' tab instead of the ''Body Data'' tab with all of the other textures.
 +
 
 +
Once you have all of your modifications done and you have all of the files in the right place, you can click the '''preview boxes''' to look at your race's ''Head'' or ''Full'' view.
 +
 
 +
<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+ */
 +
">Something else to note: if you make changes to the ''head'' texture and '''preview''' it, further changes to the ''head'' texture don't always show up in the '''GECK'''. It caches a copy of your ''head'' texture and sometimes won't show any newer version in the preview window. You can shut down the GECK and reload your mod to properly preview your head texture changes if that happens. ''It will usually pick up modifications to the '''body''' texture if you preview again though.'' It's only the ''head'' texture that gets stuck (it has the same issue for  textures for items and other non-NPC things). See also [[#Tip-FaceFeatures|TIP: Switching Custom Facial Features.]]</div>
 +
 
 +
If you are using a custom body for your player, you can select the NIF for that on the ''Body Data'' tab as well. There is an ''Upper Body'' model, and a ''Left'' and ''Right Hand'' model. For hand and body NIFs, all you need is the NIF in your '''Meshes''' folder. ''Head'' meshes need an "EGM" file as well, and the file name again needs to match. If your NIF is '''CustomHead.nif''' then the "EGM" needs to be '''CustomHead.egm''', for example.
  
To make the NPC go back to Goodsprings (for example), you need a package that sends him there. The condition for the package will be similar to "<CompanionREF>.HasBeenHired == 0". You don't necessarily need to make an Xmarker the destination. You can have the package be a sandbox inside the "Goodsprings Saloon" cell if you want. Then he'll just sandbox around inside the Saloon whenever he isn't hired and he'll go back there if you fire him.
+
If all you are doing is adding a texture to whatever the default mesh is on your system for that race, then you probably don't need to worry about custom NIFs. This is true even if you are using a ''body replacer'', since they tend to place themselves in the same location as the default vanilla body NIFs in the folder structure. In other words, if you are using say the "Type 3 body replacer" and your "tattoo texture" is for "Type 3", you already have custom NIFs in your '''Meshes\Characters...''' folder for the "Type 3", and those are already what gets loaded by the GECK for each race type. You don't need to have a custom "Type 3" NIF for your character.
See also [[#TIP-AIPackages|TIP: Using AI Packages.]]
+
 
 +
On the other hand, if you want a custom NIF just for your character so that they use a different mesh than the default races, then you will need to specify a custom NIF in the ''race'' in the '''GECK'''. Whatever ''body texture'' is defined in the NIF ends up getting ignored by the game, though. The game will use the custom texture defined in the '''GECK''' instead.
 
</div>
 
</div>
  
<span id="Tip-MerchantInventory"></span>
+
<span id="Tip-Hostility"></span>
 
+
====TIP Hostility between NPCs====
==== TIP Merchant Inventory ====
 
: 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 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 '''GECK''' tutorial [http://geckwiki.com/index.php/Adding_items_to_vendors Adding items to vendors] fails to point out that you can only have one merchant/vendor container in a different cell (such as "VendorChestsCell"). For example, if you open up the '''GECK''' and go to the '''NovacGiftShop''' cell and double click on '''Cliff Briscoe''' (which brings up his "reference editor"), and then click on the "Merchant" tab, you will see where his merchant chest gets linked in even though it's in a different cell. You can change that link to a different container, but you can't add a second container there.
+
">Hostilities will not immediately break out between two NPCs when they come into proximity simply because they are in "Enemy" [[#Factions|Factions]].  Their actions are influenced by the NPCs personal "aggression" and "[http://geckwiki.com/index.php?title=Confidence confidence]" numbers (on the GECK "[http://geckwiki.com/index.php?title=AI_Data_Tab AI Data Tab]" page and the resulting "Threat Ratio" at the time.
  
If you want to add a second container, you can't place it in a different cell. It has to be in the cell where the merchant is located and the cell has to have its ownership set to the merchant. And of course the container has to be persistent and its ownership has to be set to the merchant.
+
You can use the "[http://geckwiki.com/index.php?title=SetActorValue setav]" command in script to change the "[http://geckwiki.com/index.php?title=ActorValue#User_Defined_Actor_Values Actor Value]" for permanent changes or "[http://geckwiki.com/index.php?title=DamageActorValue DamageActorValue]" and "[http://geckwiki.com/index.php?title=RestoreActorValue RestoreActorValue]" for temporary changes to the "[http://geckwiki.com/index.php?title=Stats_List Stats List]". (See the GECK "[http://geckwiki.com/index.php?title=Actor_Value_Codes Actor Value Code]" list.)  Be careful about the scope of effect of your changes.  Read the warnings under "[http://geckwiki.com/index.php?title=ActorValue Actor Value]" carefully.
  
You can place the container in the shop (hidden behind a wall or underground if you'd like), or you can place the items individually in the shop.
+
There are ten "user defined/mod actor values". They have no defined game functions, but can be used by quests to establish permanent data on the actor. Keep in mind that setting one of the variables on an actor implicitly defines that variable for ALL actors, not just in your mod.  Using these values to store extra information has the potential to cause conflicts with other mods. <span style="color: red; background-color:#fff5f5;">If you need to store information on an actor, use a token (an unplayable, therefore invisible, piece of armour) instead.</span>
 +
</div>
  
Another approach is to add the items directly to the merchant's original container. There are two ways to do this. First, you can just edit the original container. That works, but breaks compatibility with any mods that also edit that container. The second way to do it is to use a script to add the items to the container, like making a quest with a quest script that is set to run once to add the items. Since you aren't actually modifying the container permanently, this second approach won't break things if another mod also wants to modify the same container.
+
<span id="Tip-InterruptCombat"></span>
  
Let's suppose you want to have a merchant sell certain items only if you succeed in a "speech check"The solution to adding this inventory leads to some interesting bits of information pertaining to inventories in general.
+
====TIP Interrupt combat for 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+ */
 +
">Suppose you want an NPC (once engaged) to interrupt combat in order to switch to some dialog: such as to offer to surrender when their HP drops low enough(An example of this is during the "Dog/God" fight in the kitchen of the Sierra Madre Casino, but that script is a mess to try to interpret.)
  
Merchants will sell any items that are marked as owned by them as long as their container or the item is in the same cell when the [http://geckwiki.com/index.php/ShowBarterMenu ShowBarterMenu] function is called.  This includes items lying about the shop outside an obvious container (apparently the shop itself, i.e. the "interior cell", can count as one if '''solely owned''' by the NPC; as exemplified by buying Chet's silenced pistol from him removes the one in his display case and that doesn't appear to be specifically scripted anywhere). Of course, the merchant in question must be able to sell that type of item (e.g. the merchant must have the AID service ticked in their NPC form or the wine in their owned fridge won't be available to buy in the barter menu).
+
When the conditions for that interruption are correct, use the command:
 +
<div name="Simulated code box" class="boilerplate metadata" id="SimCodeBox"
 +
style="margin:0px 10px 10px 10px; 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+ */
 +
">PlayerRef.[http://geckwiki.com/index.php/StopCombatAlarmOnActor StopCombatAlarmOnActor]
 +
</div>
 +
This ends the fighting flag for all enemies targeting the specified actor (e.g. PlayerRef). All hostile actors that are in combat with that actor will return to their normal routines. Now they can enter into dialog (or other activities such as a "run away" travel package).
  
The tested conditions determining what can be sold are:
+
If you wish to only stop the fighting flag for a single actor, refer to [http://geckwiki.com/index.php/StopCombat StopCombat].
# Any item that is owned by the merchant, in the cell with them, enabled, and a type that they can sell will turn up in their barter menu.
 
# These items do not need to be in containers.
 
# Additionally, the merchant's own personal inventory is an "owned container", and anything reverse-pickpocketed onto their person (or presumably added via script, though this was not tested) becomes part of their barter menu.
 
# Likewise, placing the player's items into the merchant's owned containers makes these items part of the barter menu as well.  ("Ownership" automatically changes as soon as the transfer completes; i.e. item is released.)
 
# If the cell (this usually refers to an "interior cell") is marked as owned by them, all items in that cell without explicit ownership will belong to them, as usual, and these items will be available for purchase as well.
 
# An item that is marked as belonging to the merchant will be available for purchase even if the entire cell is not marked as owned by them.
 
# If something is owned by the merchant and it was originally put in one cell, transferring it to their current cell makes it immediately part of their barter menu.
 
# Disabling and enabling owned items works to control whether these owned items are eligible to be in the barter menu (provided they meet the other criteria).
 
# Items that are owned by a faction of which the NPC is a member will NOT be available in that NPC's barter menu; ownership must be theirs alone (which is the case when the interior cell is owned only by the NPC).
 
 
 
Bottom line seems to be, if the merchant owns it and it's in the cell they're in when you open their barter menu, as long as they sell that form type, it should be there to buy.  The editor location has no impact.
 
 
 
So, what you would do is set up your secret items container in advance and leave it out of reach in that cell.  Then when the secret stash should become available to the player for purchase, run [http://geckwiki.com/index.php/SetOwnership SetOwnership] on the container or item (either of which needs a Reference ID and to be marked as a persistent reference).
 
 
 
This normally means the vendor must be in that cell, so it may be a good idea to give them dialogue about how the merchant needs to meet them at a location in that cell, should the player ever speak to them when they are in a different cell.  Alternatively, you could script an owned container to be transferred to the current cell in that circumstance.  You could use an invisible model for the container and place it near the merchant before opening the barter menu.  It's not believed you need collision on the container but that has not been tested.  If you do need collision, the container should just be scaled down to nothing to avoid weird collision experiences.
 
 
</div>
 
</div>
  
<span id="TIP-CompanionXP"></span>
+
<span id="Tip-NPCMovement"></span>
 
+
====TIP Making NPCs move aka AI Packages====
==== TIP Only Combat Teammates give XP to Player ====
+
: 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:
: 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+ */
">Followers don't give their kill XP to the Player unless they have been "hired" as "companions" or otherwise had the function [http://geckwiki.com/index.php/SetPlayerTeammate SetPlayerTeammate 1] appliedThe XP sharing is apparently a built-in engine function specific to "combat teammates" and not those with simply a "follow" AI package.
+
">An NPC that just stands there typically is doing so because they don't have an [http://geckwiki.com/index.php?title=AI_Packages_Tab GECK: AI package] to run.
</div>
+
 
 +
A typical companion will have a companion script which will have defined a number of [http://geckwiki.com/index.php?title=Category:Packages GECK: Packages]: a '''Follow''' default package, a '''Follow Long''' package, an '''Idle/Wait''' package, and a '''Non-hired''' package (they may use the same package for ''Wait'' and '''Non-hired''', like a ''sandbox'' type package, for example). Each of the packages must have a condition variable, which will typically be the equivalent of "'''if (''IsFollowingDefault'' == 1)'''" for the follow default package, or ''IsFollowingLong'' for the follow long package, or ''HasBeenHired'' is set to zero for the '''Not-hired''' ''sandbox'' (or whatever) package, and "'''if (''waiting'' == 1)'''" for the '''Wait''' package. If you don't have a condition, then the package will want to always run. Those variables (e.g. ''IsFollowingDefault'', ''IsFollowingLong'', etc.) all have to be defined in the NPC's script. You set the various variables to match what you want the character to do as the way you control which package is used, then do an ''[http://geck.bethsoft.com/index.php?title=EvaluatePackage EvaluatePackage] (.EVP)'' function on the NPC to get them to switch.
 +
 
 +
Function ''[http://geckwiki.com/index.php/ResetAI ResetAI]'' clears all current AI behaviors from an actor. Combat, pathing, and packages are re-evaluatedThis is a severe command that affects all AI behavior.  Usually, you just want to have an actor re-evaluate its current package. In that case, use ''EvaluatePackage'' instead.  (When using the number of "tokens" present in an Actor's inventory to control AI packages, one author found it necessary to use ''ResetAI'' instead of ''EVP'' in order to get their script to function correctly more often than the first time.  The cause behind this behavior is unknown.)
  
<span id="Tip-CompanionPerks"></span>
+
See also [http://geckwiki.com/index.php/How_Are_Packages_Evaluated How Are Packages Evaluated].
  
====TIP Perks for Companions====
+
===== Following =====
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for providing the following quotation:
+
So, if you want your NPC to '''Follow''' you, it's necessary to script the following in the NPC's conversation quest (replace "MyNPCREF" with the NPC's actual Ref-ID, obviously):
 
<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:#424242;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]:
+
">
Quote:
+
: Set IsFollowingDefault to 1
;<blockquote>
+
: Set IsFollowingLong to 0
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
+
: Set waiting to 0
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: white;
+
: MyNPCREF.evp
background-color:#666666;padding:3px;
 
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:
 
<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.
 
 
 
I recommend making special companion versions of perks even if you want to use existing effects. E.g. if you want to give Raul the equivalent of Shotgun Surgeon for some reason, make a special "RaulShotgunSurgeonPerk" that's filtered just to him, and add it to the player with player.addperk RaulShotgunSurgeonPerk 1 the first time Raul is hired. Even if Raul leaves the party, you shouldn't have to worry about the perk hanging out on the player as long as the perk owner conditions are filtered properly.
 
 
 
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].
 
 
</div>
 
</div>
 
+
If you want the NPC to '''Follow Long''', you would do the following:
<span id="Tip-FaceFeatures"></span>
 
====TIP Switching Custom Facial Features====
 
: Thanks to '''rikkurikku''' 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:#424242;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
">For example: Let us say you want to switch between the normal actor's face, and one that is "bloodied".  Set up your "bloody" face version texture as a different race and use the ''[http://geckwiki.com/index.php/SetRace SetRace]'' function to switch, followed by "Update3D" to refresh the display in-game.  This applies to both the Player and NPCs.  See [[#TIP: Custom Race & Skin Textures|TIP: Custom Race & Skin Textures]] regarding creating a "custom race" and the appropriate folders.<br>
+
">
When switching among custom facial features (such as eyes or hair), switch to a "vanilla" feature first, and then switch to a new "custom" look.  The GECK gets confused if you try to switch straight from one custom feature to another.
+
: Set IsFollowingDefault to 0
 +
: Set IsFollowingLong to 1
 +
: Set waiting to 0
 +
: MyNPCREF.evp
 
</div>
 
</div>
 
+
: <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
<span id="Tip-MakingNPCs"></span>
+
background-color:#fff5f5;padding:3px;
 
 
====TIP Trick with making NPCs====
 
<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+ */
">If you create the NPC in an ESP, you can run into the infamous "head/body mismatch" bug. There are some settings you can change that fix the bug on some computers, but if you want it to work on all systems, define the NPC in an ESM file.
+
">(Also, on the NPC object: uncheck the ''no low-level processing'' box if they need to follow you through portals consistently.)</span>
* See also sections [[#Dialogue & Lip-synch|Dialogue & Lip-synch]] and [[#Scripting|Scripting]] for related info.</div>
 
  
<span id="TIP-AIPackages"></span>
+
And if you want the NPC to '''Wait''', you would do the following:
====TIP Using AI Packages====
 
 
<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:#424242;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">
 
">
* 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).
+
: Set IsFollowingDefault to 0
* <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.
+
: Set IsFollowingLong to 0
* 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].
+
: Set waiting to 1
* 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.
+
: MyNPCREF.evp
* Check that the order of your packages and their conditions do not prevent some from ever triggering.  Treat each as if a part of a series of nested "IF ELSE" blocks. ('''IF < condition > is "true" then do "this package", ELSE do "that"''', where "that" can be another ("nested") "IF ELSE" block.)  The last "ELSE" should trigger an "idle" or similar "default" package.
+
</div>
* The [http://geck.bethsoft.com/index.php?title=RemoveScriptPackage RemoveScriptPackage] function is only used for packages added by way of the ''AddScriptPackage'' function.  Once you remove an added script, the actor will automatically re-evaluate and determine which package should take it's place.
+
: <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
* 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.
+
background-color:#fff5f5;padding:3px;
* 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.
+
word-wrap: break-word;      /* Internet Explorer 5.5+ */
* 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.
+
">(Don't forget to set the ''Guard Location'' on the '''Wait''' package to "Near Current Location" instead of the default "Near Editor Location", or the companion will run off to wait at their spawn site.)</span>
  
See also [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
+
Note that you want to set variables to enable your packages, and also clear variables to stop the other packages from trying to run. You want to set it up so that the only condition that evaluates to '''true''' is the one that's for the package you want the NPC to run. For example: if you want the NPC to follow the "default" package, you need to enable the '''IsFollowingDefault''' variable while disabling both the '''IsFollowingLong''' and the '''Wait''' package variables.
</div>
 
  
=== Dialogue and Lipsynch ===
+
===== Conversations =====
Other sections have relevant information to this subject. The following "Tips" in particular are applicable.
+
The ''HasBeenHired'' variable would be used to enable or disable various conversation options, and would also be set when the NPC is hired and cleared when the NPC is fired (and again, an ''.EVP'' would be done to get the character to ''sandbox'' when not hired so they don't just stand there like an idiot).
  
* See the [[#Custom NPCs|Custom NPCs]] section regarding scripting "AI Packages".
+
If you want a fully functional command wheel, you '''''have to use the conversation topics''''' that the command wheel expects.
:* [[#TIP-CompanionWheel|TIP: Companion Wheel.]]
 
:* [[#Tip-Hostility|TIP: Hostility between NPCs.]]
 
:* [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 
:* [[#Tip-CompanionPerks|TIP: Perks for Companions.]]
 
:* [[#TIP-AIPackages|TIP: Using AI Packages.]]
 
  
* See the [[#Scripting|Scripting]] section regarding:
+
The first tutorial listed ('Advanced Companion creation guide with Companion Wheel') is recommended for learning to use the "companion command wheel".
:* types of scripts: Objects, Quests, and "Base Effects".
 
:* [[#TIP-EditorIDNames|'''TIP: Do not begin Editor-IDs with numbers.''']]
 
:* [[#Tip-CompoundConditionals|TIP: Debugging Compound Conditionals.]]
 
:* [[#Tip-Debugging|TIP: Debugging data to file.]]
 
:* [[#Tip-EventHandler|TIP: Don't overlook EventHandlers.]]
 
:* [[#Tip-Encapsulation|TIP: Encapsulation - Parens, Brackets, and Braces.]]
 
:* [[#Tip-FunctionParameters|TIP: Function parameter separation with commas.]]
 
:* [[#Tip-ParsingLines|TIP: GECK parses the entire line before evaluating.]]
 
:* [[#Tip-NPCWpnChoice|TIP: NPC Weapon Choice.]]
 
:* [[#TIP-MsgVariable|TIP: Pass a variable number into a script message.]]
 
:* [[#Tip-Notes|TIP: Passing a 'Note' to the player.]]
 
:* [[#Tip-Recipes|TIP: Passing a 'Recipe' to the player.]]
 
  
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
[[File:EPDGaffney_AIPackage-GoingHome.png|thumbnail|100px|AIPackage-GoingHome_Fig-01]]
* [http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Thread.
+
Some people prefer to follow the simpler instructions and example in the [http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Thread by '''trilioth''' (even though it does not include how to use the "companion wheel"), but get confused at "Step 3: Create AI Packages".
* [http://www.youtube.com/watch?v=mm_fF4VHhw4&feature=related Crow`s Tutorial on Dialogue] Video.
+
 
* [http://www.nexusmods.com/newvegas/mods/63034/? FEEL - Facial Expression Editor (Limited - pfft...) by Fallout 2AM] in-game facial expression editor.
+
The way this was done in the vanilla game (and the [[:File:EPDGaffney_AIPackage-GoingHome.png|AIPackage-GoingHome_Fig-01]] image here) was using quest variables, whereas '''trilioth''''s tutorial uses script variables. Follow the tutorial, as based on the preceding steps you should have these variables in your object script, not your quest script.  The way you create the package is the same otherwise. (See [[:File:EPDGaffney_AIPackage-GoingHome.png|AIPackage-GoingHome_Fig-01]]. {{Thumbnail_enlargement_message}})
* [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 FNVNOTE: This must be installed under the "Data\Sound\voice\processing" folder.
+
<span style="text-align: left; color: red; background-color:#fff5f5;">(WARNING: There is a bug in '''GECK''' on versions of '''Windows''' after Win7 that causes the columns under the "Conditions" tab to be collapsed to the left and appear to not be present.  Accessing this field in the "AI Package" form consistently causes this bug to trigger, and it then affects other "list box" type fields in other forms. Please see the [[#Issue:_GECK_is_missing_text_in_fields|Issue: GECK is missing text in fields]] entry for suggestions on dealing with this.)</span>
* [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.
+
===== Package Types =====
* [http://www.moddb.com/mods/explorer/tutorials/geck-custom-holotape-voice GECK: Custom Holotape + Voice] Wiki.
+
For '''Patrol''' packages your "Patrol Leader" NPC needs to be linked to your first "X marker" in the navmeshed patrol path. (See the [[#Tip-NavMeshExteriors|TIP: Navmeshing Exterior cells.]]) All "X markers" in the patrol path need a ''unique ID'', need to be ''persistent'', and linked to each other in the succession you wish it traversed. "Idle markers" can be used but need ''duration'' times set and need to be made ''persistent''Patrol packages might be buggy with idle markers: they worked in Fallout 3, but in the experience of mod creators have issues in '''New Vegas'''.  For parties of more than one Actor, the remainder should "Guard" the "Patrol Leader" in order to react to threats to that Leader.
* [http://youtu.be/NWtIRBPVedw GECK: Dialog and Lip Synch] Video.
+
 
* [http://www.youtube.com/watch?v=NWtIRBPVedw GECK: Dialog and Lip Synch Tutorial] Video by Seddon4494.
+
To make a new '''Patrol''' package with a unique ID: Just edit a base package to your liking; then change the Editor-ID name. '''GECK''' will create a new form. Make sure the package type is '''Patrol''', the ''starting location'' is a linked reference (e.g. "X marker"), and flagged ''repeatable''. Then give the NPC the new package and link your NPC to the first marker in the patrol path.
* [http://www.youtube.com/watch?v=NvQCChzifyQ GECK: Dialogue with Lip Files] Video.
+
 
* [http://geck.bethsoft.com/index.php?title=Quest_and_Dialogue_Tutorial GECK: Dialogue Tutorial] Wiki.
+
An NPC not waking up from sleep is an indication the time schedule conflicts with another package. All it should need is a package type of '''Sleep''', a ''schedule time'' and ''duration'' (do not allow the times to overlap with other packages), flag enable ''fallout behavior'' & for ''location'': the ''name of a cell'' or a linked reference (which needs to be selected) or a ''near reference'' (if you have multiple beds for instance and don't care which they use).
* [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.
+
''Sandboxing'' chooses things completely at random, including just standing where they are and picking idles from the idle manager. '''Exterior sandbox''' type packages need a package type of ''sandbox'', and a ''wander location'' set with a ''radius'', rather than just in a particular cell. Set whatever flags you want in: ''allowed behavior'', enabled ''fallout behavior'' in flags, and a non overlapping time scheduled.
* [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video.
+
 
* [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.
+
You'll also want to avoid locking/unlocking doors in ''packages'', as this is completely broken and unreliable in '''New Vegas'''.
* [http://www.nexusmods.com/newvegas/mods/63317/? Lazy Voice Finder - FInd voice assets just you want] Mod.
+
 
* [http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal Online Text to Speech Demo] Web site.
+
When you send someone away (i.e. "no longer hired" or "go home"), set the "GoHome" package to be a "sandbox" type instead of "travel", and they will automatically run off to the "home" location to sandbox there. The game scripts often teleport actors to that location first when they want to avoid encountering "hostiles" enroute. Be sure you first set the conditions you are using as appropriate (i.e. "not hired", "available for hire", etc.) before an ".EVP" command to take immediate effect.
* [http://www.youtube.com/watch?v=NvQCChzifyQ Qenosa's Tutorial on Dialogue and NPC creation] Video.
+
 
 +
Be very careful using "[http://geckwiki.com/index.php?title=AddScriptPackage AddScriptPackage] <packagename>". In practice, whenever an NPC teleports (fast travel, goes through a door, etc) they tend to stop running whatever AI package was added through '''AddScriptPackage''', and then use a suitable sandbox package. It's a useful function for some things, but it won't work in cases like this (traversing cells).
 +
 
 +
If your NPCs take off for parts unknown when following a package, make sure you have a "North Marker" placed in the cell.
 +
 
 +
To make the NPC go back to Goodsprings (for example), you need a package that sends him there. The condition for the package will be similar to "<CompanionREF>.HasBeenHired == 0". You don't necessarily need to make an Xmarker the destination. You can have the package be a sandbox inside the "Goodsprings Saloon" cell if you want. Then he'll just ''sandbox'' around inside the Saloon whenever he isn't hired and he'll go back there if you fire him.
 +
See also [[#TIP-AIPackages|TIP: Using AI Packages.]]
  
<span id="Tip-GenericDialog"></span>
+
===== Teleporting and Following Navmeshes =====
====TIP Adding Generic Dialog====
+
In order  for a companion to ''teleport'' to you when you go through a door (or otherwise ''teleport'' elsewhere, as when using '''Fast Travel'''), all the companion needs is to be set as ''your companion'', i.e. you executed the script command '''SetPlayerTeammate 1'''.
: 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"
 
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 want your NPC/Vendor to have some ''generic dialog'' (meaning: re-use existing dialog already in the game that is not situation specific; like "Hello").
 
  
There are two ways you can do this.
+
Additionally, for a companion to follow you, the companion needs to have a ''follow package'' and that package needs a conditional variable on it which is "true", and all other packages that the companion has need conditions that are "false" at the same time so that they will not run instead of the ''follow package''.
  
* One is to extract all of the voice sounds and corresponding LIP files from the game "Fallout - Sound.BSA file" to some other folder (NOT to "Data"); then go through and pick and choose which lines you want; and just create new dialog topics and responses for your NPCs that use those lines verbatim. Then just copy/paste and rename your voice files for the new dialog. For some things, this will be the faster way of doing it.
+
For example. let's say your NPC has a ''follow package'' and a ''wait package'', and a variable '''npc_following''' and a variable '''npc_waiting'''. The ''follow package'' has the condition '''"if npc_following = 1"''' and the ''wait package'' has the condition '''"if npc_waiting = 1"'''. If you '''"set npc_following to 1"''' and '''"set npc_waiting to 0"''', and then execute an '''EVP''' command on the NPC, then they should follow you. If you want them to ''wait'', '''"set npc_following to 0"''' and '''"set npc_waiting to 1"'''. If you accidentally set both variables to 1 then either package could execute (depending upon their sequence in the packages list), so the NPC might follow you or they might not. If you accidentally set both variables to 0 then the companion will not do anything.
  
* For ''Vendors'' though, it's probably faster to integrate them into the existing vendor system. This will probably require a bit more digging through the '''GECK''' to make sure you get your NPC correctly configured. You'll probably need the voice type to be set to the proper type of the existing vendor you are modeling yours after, the NPC's class to be set to what the vendor dialog expects, and you'll probably need to add the appropriate factions for vendors to your NPC. Just go through the configuration of an existing similar vendor NPC and you should be able to figure it all out.
+
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.
  
See also [[#Tip-DialogTabs | TIP: Standard Dialog.]]
+
===== 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>
  
<span id="Tip-Translators"></span>
+
<span id="Tip-MerchantInventory"></span>
====TIP Conversation or Quest system====
+
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
+
==== TIP Merchant Inventory ====
 +
: 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 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 conversation/quest system for Fallout New Vegas seems like nonsense until you realize it evolved out of the conversation/quest system for Morrowind. In Morrowind, different people could say the same topics, and most of it wasn't voiced; so it made a lot of sense to group things by '''quests''' and '''topics''' instead of by '''speaker'''.
+
">The '''GECK''' tutorial [http://geckwiki.com/index.php/Adding_items_to_vendors Adding items to vendors] fails to point out that you can only have one merchant/vendor container in a different cell (such as "VendorChestsCell"). For example, if you open up the '''GECK''' and go to the '''NovacGiftShop''' cell and double click on '''Cliff Briscoe''' (which brings up his "reference editor"), and then click on the "Merchant" tab, you will see where his merchant chest gets linked in even though it's in a different cell. You can change that link to a different container, but you can't add a second container there.
  
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.
+
If you want to add a second container, you can't place it in a different cell. It has to be in the cell where the merchant is located and the cell has to have its ownership set to the merchant. And of course the container has to be persistent and its ownership has to be set to the merchant.
</div>
+
 
 +
You can place the container in the shop (hidden behind a wall or underground if you'd like), or you can place the items individually in the shop.
 +
 
 +
Another approach is to add the items directly to the merchant's original container. There are two ways to do this. First, you can just edit the original container. That works, but breaks compatibility with any mods that also edit that container. The second way to do it is to use a script to add the items to the container, like making a quest with a quest script that is set to run once to add the items. Since you aren't actually modifying the container permanently, this second approach won't break things if another mod also wants to modify the same container.
 +
 
 +
Let's suppose you want to have a merchant sell certain items only if you succeed in a "speech check".  The solution to adding this inventory leads to some interesting bits of information pertaining to inventories in general.
 +
 
 +
Merchants will sell any items that are marked as owned by them as long as their container or the item is in the same cell when the [http://geckwiki.com/index.php/ShowBarterMenu ShowBarterMenu] function is called.  This includes items lying about the shop outside an obvious container (apparently the shop itself, i.e. the "interior cell", can count as one if '''solely owned''' by the NPC; as exemplified by buying Chet's silenced pistol from him removes the one in his display case and that doesn't appear to be specifically scripted anywhere).  Of course, the merchant in question must be able to sell that type of item (e.g. the merchant must have the AID service ticked in their NPC form or the wine in their owned fridge won't be available to buy in the barter menu).
  
<span id="TIP-CuttingLipFiles"></span>
+
The tested conditions determining what can be sold are:
====Tip Cutting Lip files to match dialog====
+
# Any item that is owned by the merchant, in the cell with them, enabled, and a type that they can sell will turn up in their barter menu.
:  Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
+
# These items do not need to be in containers.
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
+
# Additionally, the merchant's own personal inventory is an "owned container", and anything reverse-pickpocketed onto their person (or presumably added via script, though this was not tested) becomes part of their barter menu.
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
+
# Likewise, placing the player's items into the merchant's owned containers makes these items part of the barter menu as well.  ("Ownership" automatically changes as soon as the transfer completes; i.e. item is released.)
background-color:#333333;padding:3px;
+
# If the cell (this usually refers to an "interior cell") is marked as owned by them, all items in that cell without explicit ownership will belong to them, as usual, and these items will be available for purchase as well.
word-wrap: break-word;      /* Internet Explorer 5.5+ */
+
# An item that is marked as belonging to the merchant will be available for purchase even if the entire cell is not marked as owned by them.
">Assuming you are cutting up existing voice files to make new dialog.  What I typically do is import the existing voice clip into '''Audacity''' (see [[#Programs and Tools | Programs and Tools]]) and chop it down to the part I want, then export that as a '''WAV''' file and rename it to match the file name that the GECK expects in the dialog quest. Make sure you export it as a WAV and not an OGG. The Lip generator wants a WAV file.
+
# If something is owned by the merchant and it was originally put in one cell, transferring it to their current cell makes it immediately part of their barter menu.
 +
# Disabling and enabling owned items works to control whether these owned items are eligible to be in the barter menu (provided they meet the other criteria).
 +
# Items that are owned by a faction of which the NPC is a member will NOT be available in that NPC's barter menu; ownership must be theirs alone (which is the case when the interior cell is owned only by the NPC).
  
Instead of trying to cut down the lip file to match, just regenerate the lip file from scratch. Click on the voice file in the box at the bottom of the dialog editing box to highlight it, then click on "From WAV" and click on "Generate Lip File", which should now no longer be grayed outIf you don't seem to be able to actually generate a LIP file, double-check that your voice file is in MONO (and not Stereo) mode.
+
Bottom line seems to be, if the merchant owns it and it's in the cell they're in when you open their barter menu, as long as they sell that form type, it should be there to buyThe editor location has no impact.
  
This of course requires that you have copied the lip generator from Oblivion or Skyrim, or the alternative [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf]. In Oblivion the lip generator's in '''\Sound\Processing''', which is where it belongs in FNV as well. (See the links above for options.) <span style="margin:0px 10px 10px 0px;border:1px solid #00C600;color: green;
+
So, what you would do is set up your secret items container in advance and leave it out of reach in that cell.  Then when the secret stash should become available to the player for purchase, run [http://geckwiki.com/index.php/SetOwnership SetOwnership] on the container or item (either of which needs a Reference ID and to be marked as a persistent reference).
background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">NOTE: The '''FonixData.cdf''' tool must be installed under the '''sound\voice\processing''' folder.</span>
 
  
Helpful tip - I will often record a very short bit of blank audio in the dialog editing box just so it puts a blank WAV and LIP file in the right directory where it's expecting it. Then I just go to that folder and delete those "dummy files", which seems kinda stupid, but it gets the folders all created properly and named properly and stops me from doing stupid things like typing one of the folder names wrong. Then I copy and paste the file name from the GECK onto my newly edited WAV so that I can't make a stupid typo there as well.
+
This normally means the vendor must be in that cell, so it may be a good idea to give them dialogue about how the merchant needs to meet them at a location in that cell, should the player ever speak to them when they are in a different cell. Alternatively, you could script an owned container to be transferred to the current cell in that circumstance.  You could use an invisible model for the container and place it near the merchant before opening the barter menu. It's not believed you need collision on the container but that has not been tested.  If you do need collision, the container should just be scaled down to nothing to avoid weird collision experiences.
 
</div>
 
</div>
  
<span id="Tip-GetSpeaker"></span>
+
<span id="TIP-CompanionXP"></span>
==== 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 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:
 
<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+ */
">Suppose you want to identify the current speaker of a line of dialog for use as a later reference.  Dialog "inherits" it's implied speaker from it's topic, so you need to use the "[http://geckwiki.com/index.php/GetActionRef GetActionRef]" function, placed inside the dialog "Result Script (End)" block.
+
">Followers don't give their kill XP to the Player unless they have been "hired" as "companions" or otherwise had the function [http://geckwiki.com/index.php/SetPlayerTeammate SetPlayerTeammate 1] applied.  The XP sharing is apparently a built-in engine function specific to "combat teammates" and not those with simply a "follow" AI package.
 
 
See also the GECKWiki "[http://geckwiki.com/index.php/Calling_reference Calling reference]" page.  
 
 
</div>
 
</div>
  
<span id="Tip-TopicVoices"></span>
+
<span id="Tip-CompanionPerks"></span>
====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 Perks for Companions====
 +
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for providing the following quotation:
 
<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 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.
+
">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:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: white;
 +
background-color:#666666;padding:3px;
 +
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:
 +
<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 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;
+
I recommend making special companion versions of perks even if you want to use existing effects. E.g. if you want to give Raul the equivalent of Shotgun Surgeon for some reason, make a special "RaulShotgunSurgeonPerk" that's filtered just to him, and add it to the player with player.addperk RaulShotgunSurgeonPerk 1 the first time Raul is hired. Even if Raul leaves the party, you shouldn't have to worry about the perk hanging out on the player as long as the perk owner conditions are filtered properly.
background-color:#fff5f5;padding:3px;
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">NOTE: The '''FonixData.cdf''' tool must be installed under the '''sound\voice\processing''' folder.</span>
 
  
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.
+
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>
  
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.
+
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].
  
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 filesNow 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.
+
'''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-NoDriver"></span>
+
<span id="Tip-FaceFeatures"></span>
==== 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 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:
 
<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+ */
">So, you keep getting an error message saying "Error: No sound driver available for use" every time you open the dialogue window.  What gives and how do you make it go away?
+
">For example: Let us say you want to switch between the normal actor's face, and one that is "bloodied"Set up your "bloody" face version texture as a different race and use the JIP ''[http://geckwiki.com/index.php/SetRace SetRace]'' function to switch, followed by "Update3D" to refresh the display in-game.  This applies to both the Player and NPCs.  See [[#TIP: Custom Race & Skin Textures|TIP: Custom Race & Skin Textures]] regarding creating a "custom race" and the appropriate folders.<br>
 
 
It's not necessarily an audio driver problemIt doesn't matter where your '''GECK''' is installed.
 
  
The form in the '''GECK''' where you edit dialog is also where you record audio for that dialog. If you do not have a microphone or some sort of ''line input'' connected to your computer, the '''GECK''' can't find anything to record audio from and gives you that error.
+
'''Budong''' added:<br>
 +
If you want to ensure compatibility for everyone, you can accomplish the same thing entirely without needing the JIP NVSE Plugin.  Set up one race for your "healthy" NPC, and another race for the "injured" NPC. Link them to one another via the ''YoungerRace'' and ''OlderRace'' options in the '''RaceEditor''', then call the ''AgeRace'' function to visually clobber/heal them. Entirely vanilla and will work for everyone.
  
Plug in a microphone and the error will go away. Depending upon your version of '''Windows''', something other than a microphone (such as headphones) plugged into the line input will also make the error go away.
+
When switching among custom facial features (such as eyes or hair), switch to a "vanilla" feature first, and then switch to a new "custom" lookThe '''GECK''' gets confused if you try to switch straight from one custom feature to another.<br>
 
 
Some audio drivers will have a ''virtual audio source'' of some sort that will be enough for the '''GECK''' to think that it has something to record from.  If nothing else, many audio drivers used to have a loopback so that they could record whatever was going out through the speakers. (Microsoft and the audio driver manufacturers have moved away from this since some folks were using it to illegally record the audio off of '''YouTube''' videos and the like.)
 
 
 
Look under the '''Windows''' "Control Panel | System | Sound | Input | Device Properties".  There should be a drop-down box in the "Device Properties" window that lets you enable various devices (e.g. "Stereo Mix (Realtek Audio)") that (regardless of whether they actually function or not) will be sufficient to get rid of the error message in '''GECK'''.
 
 
 
If you have something configured or plugged into one of your sound card's inputs and you still have the error, then you have an audio driver problem.
 
 
</div>
 
</div>
  
<span id="Tip-OCE"></span>
+
<span id="Tip-MakingNPCs"></span>
  
====TIP Obsidian Conversation Editor aka '''OCE'''====
+
====TIP Trick with making NPCs====
: Thanks to ''' EDPGaffney''' (the "I" in the following) of the Nexus "New Vegas GECK and Modders" forum for the details of this tip:
 
 
<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+ */
">'''Obsidian''' wrote the '''Conversation Editor''' (OCE) to help them do dialogue in this game in a way that was workable for so many branching paths and such.  It comes with the "New Vegas G.E.C.K." and can be accessed by clicking the last button on the right on the top toolbar, which looks like the symbol for a "right-justified" paragraph. Its interface looks very similar to the ''Dialogue Tree'' in the '''Quest''' window that most people seem to use even in this game. (I suspect because of all the Fallout 3 tutorials, and that OCE wasn't available in Fallout 3).  Some of its advantages are:
+
">If you create the NPC in an ESP, you can run into the infamous "head/body mismatch" bug. There are some settings you can change that fix the bug on some computers, but if you want it to work on all systems, define the NPC in an ESM file.
* loading things much faster,
+
* See also sections [[#Dialogue & Lip-synch|Dialogue & Lip-synch]] and [[#Scripting|Scripting]] for related info.</div>
* never crashing (at least for me after weeks of editing hundreds of lines),
 
* not having that Windows 10 bug unless you open certain other things in the G.E.C.K.,
 
* being able to save your mod with it open,
 
* inheriting the speaking NPC (and optionally other conditions if you tell it to, I think) so that you needn't enter it for every single line,
 
* being able to edit conversations in a more visually comprehensible way (as a tree, with entries you can modify in the same window),
 
* making new dialogue by simply adding a child to the last thing you wrote and typing it into the same window as the rest of the conversation,
 
* being able to copy topics and then paste them as links or simply pasting the topic as a new topic with the same text and conditions,
 
* and having access to every feature of the Fallout 3 method (well, theoretically; I'm still not sure about recording).</div>
 
  
<span id="TIP-RandomNPCcomments"></span>
+
<span id="Tip-TempCompanion"></span>
====Tip Random NPC Comments====
+
==== 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:
 
<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+ */
">Drop in Xmarkers at the locations where you want to provide specific comments, and give them a unique Ref-ID.  Then put in a condition of:
+
">Supposing you want to turn a "temporary" quest companion into a permanent one (for example '''Corporal Halford''').  How would you go about it?
"Subject: GetDistance to that XmarkerRef < 10000" (as an abstract, pseudo example) on each of the Info/response entries, in addition to a "GetIsID" condition.
+
 
If the 150 char limit isn't enough then add another 150 char block in the Response field.
+
The recommended tutorial, which includes using a companion wheel, is: [http://www.nexusmods.com/newvegas/mods/45278 Advanced Companion creation guide with Companion Wheel]. Since the NPC already exists and has a quest for hiring, you don't need to make the hiring quest part of the tutorial.  Make sure you use the existing functions as shown in the tutorial instead of creating your own. Those functions are what makes the companion wheel workSee also [[#TIP_Companion_Wheel|TIP Companion Wheel]].
On the Topic text (at the top) say something like: "Do you have any info on this place?"Flag it as a top level dialogue; then the priority will determine where it shows in the list of options after their "Greeting".
+
 
If you're not within the maximum distance to any marker then that option shouldn't show up as a dialogue option for the player. - Source: Mktavish, Nexus forums
+
When I made a companion out of '''Corporal Betsy''' I found it easiest to make a duplicate and then swap out the duplicate <span style="color: red; background-color:#fff5f5;">once the vanilla quests were done</span>. The advantage of this is that you don't have to hack into the existing quests and dialog, other than to add the hiring option (which triggers the swap) at the appropriate conversation stage.
 
</div>
 
</div>
  
<span id="Tip-SayOnce"></span>
+
<span id="TIP-AIPackages"></span>
==== TIP '''Say Once''' use ====
+
====TIP Using AI Packages====
: Thanks to '''Mktavish''' 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+ */
">The "Say Once" flag is set per "response", not per "Topic".  So basically you take the Topic, and add as many responses to it as you want.  Flag them "top level", and set "priority" for what order each response will be presented in.  You can even set conditions that might change when they are used, such as (for example) a "quest stage" or "gateway variable".  Once they have been spoken, the responses you flag as "Say Once" will no longer be considered in the priority list thereafter.
+
">
 +
* 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.
 +
* 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 cellsIt 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].
 +
* 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 activationOn 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.
 +
* Check that the order of your packages and their conditions do not prevent some from ever triggering.  Treat each as if a part of a series of nested "IF ELSE" blocks. ('''IF < condition > is "true" then do "this package", ELSE do "that"''', where "that" can be another ("nested") "IF ELSE" block.)  The last "ELSE" should trigger an "idle" or similar "default" package.
 +
* The [http://geck.bethsoft.com/index.php?title=RemoveScriptPackage RemoveScriptPackage] function is only used for packages added by way of the ''AddScriptPackage'' function.  Once you remove an added script, the actor will automatically re-evaluate and determine which package should take it's place.
 +
* AI Packages attached directly to the actor are activated or deactivated by setting the variables used in the conditional testsIf 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 zeroThey 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 Actor.  A scheduling conflict will prevent either package from running.
  
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]].
+
* 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.
</div>
 
 
 
<span id="Tip-DialogTabs"></span>
 
====TIP Standard Dialog====
 
 
<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 30px;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+ */
">Certain bits of dialog are standard, but have to be added from the correct tab in the '''Quest Stages'''.
+
">LLP behaves differently, depending on whether the object is persistent or not, and on whether the object is in an interior or an exterior cell:
See the following references:
+
* [http://geckwiki.com/index.php/Quest_and_Dialogue_Tutorial Quest and Dialogue Tutorial], in particular the "Dialogue Topics" section.
+
* Persistent in an interior: All functions should always work reliably.
* [http://www.youtube.com/watch?v=mm_fF4VHhw4&feature=related Crow`s Tutorial on Dialogue] Video.
+
* Persistent in an exterior: If the Actor is in the same cell, or the cell is currently buffered (i.e. within loaded ''uGrids'') - all functions should always work reliably. Otherwise, some functions will fail (example: GetParentCell).
* [http://www.youtube.com/watch?v=NvQCChzifyQ Qenosa's Tutorial on Dialogue and NPC creation] Video.
+
* Non-persistent in either an interior or an exterior: If the cell is currently buffered - all functions should always work reliably. Otherwise, all functions will always fail.
* [http://geckwiki.com/index.php/Creating_a_new_vendor Creating a new vendor] tutorial on creating dialog for a NPC's interaction with the player.
+
 
* [http://geckwiki.com/index.php/StartConversation StartConversation] command forces a conversation between two NPCs, starting with a specified topic.
+
Keep in mind an Actor may not be unloaded immediately when changing cells, while persistent ones and quest NPCs marked in their base form will process more frequently.
* [http://geck.technodeep.net/index.php/How_to_script_conversation_between_two_or_more_NPCs How to script conversation between two or more NPCs] tutorial.
+
 
* [http://geckwiki.com/index.php/Category:Dialogue GECK Category: Dialogue] This page has a number of important points to bear in mind, such as flags and:
+
If you place an actor in the world with the '''GECK''' and mark that REF as persistent - then they are persistent regardless of the LLP setting. They can always be referenced by a script.
:* '''Prompt:''' This text will be displayed in place of the topic text. If left blank (as is default), the topic text will be used.
+
 
:* '''Result Script (Begin):''' This script runs when the Info is played, at the moment the actor starts saying his line.
+
You can use the '''JIP LN NVSE''' function [http://geckwiki.com/index.php/SetPersistent SetPersistent] to set a non-persistent (dynamic, aka "spawned") reference to persistent at runtime.
:* '''Result Script (End):''' This script runs at the moment the actor finishes speaking.
 
  
The following is intended to help clarify the above GECKWiki pages:
+
You might want to also be aware of and test for an Actor's "processing level" with the [http://geckwiki.com/index.php/GetActorProcessingLevel GetActorProcessingLevel] function.
* ''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.
 
* 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.
 
* You will need Voice "sound" (and corresponding Lip-Sync ".lip") files for your dialog lines so they take the appropriate amount of time before proceeding to the next line.  Otherwise they may appear to "skip" over some lines or cut each other off.  "Silent" sound files are common for this purpose when the actor is not voiced, but still needed to establish the timing.  See the [[#Sound and Voice Tools|Sound and Voice Tools]] section entries for the necessary tools.
 
* Sort your list of dialog '''Topics''' by ''Priority''.  ("1" is highest, "100" is lowest.)  Place the ''GREETING''  and ''GOODBYE'' Topics at the top of the list.  '''Topics''' are processed from the top down until it finds the first one with all conditions "true".
 
* Order your list of "conditional test" ''responses'' in each '''Topic''' by priority as well.  Consider all the conditional responses as an "IF ... ELSEIF ... ELSE ... ENDIF" block.  The first ''response'' which tests as "all true" will be "the winner" and processing will skip to it's "Result Script".
 
* "Conditional tests" override ''Priority'' values.  Think of "Priority" as a way to group ''Topic'' statements; but NOT as a "tie breaker" ... especially in the case of those ''responses'' which otherwise have the same conditions.  The order of the placement of the response lines within a ''Topic'' determines the order they are tested.  Only the first which succeeds is processed.  Later responses with the same conditions will never get processed.  Use conditional tests to ensure only one response is appropriate at a time.  See also the GECKWiki [http://geckwiki.com/index.php/Using_Complex_Conditions Using Complex Conditions] and [http://geckwiki.com/index.php/Causes_of_CTDs Causes of CTDs] pages.
 
* 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].)
 
 
</div>
 
</div>
 
+
See also [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
<span id="Tip-TextDisplay"></span>
 
 
 
==== TIP Text display timing ====
 
<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+ */
 
">Many new mod creators think of "voice" and "lip-sync" files as "optional" when they only intend to display a text message.  Then they wonder why sometimes their message only displays briefly in a flash and others wait until something is clicked upon. The latter is because a message displayed under control of a menu block is "paused" until an "input" (key entry or button click) is received.  (Sometimes this is not as obvious as a "button", such as using an elipsis ("...") instead.  Generally not having an obvious means of proceeding is considered "poor design" unless it is deliberate as a form of "visual puzzle".) This is one way to ensure the message is seen by the Player.
 
 
 
If you are not getting display of the Dialog response text outside of a menu, most likely it is because the text has no "voice" audio and/or lip-sync file attached. (Both are needed.)  These files determines how long the text remains on screen before allowing the display to proceed.  Even if there is no actual voice to be heard, a "silent" audio file of sufficient length is required to determine the length of the display of the text.  The mod [http://www.nexusmods.com/newvegas/mods/63052 Silent Voice Generator] by '''Enter_77''' can generate both silent voice and corresponding lip-sync files of up to 30 seconds duration from exported GECK quest and dialog text documents.  (See "Voices" under the [[#Music_and_Sounds|Music and Sounds]] section.  It is recommended placing your own "silent voice" files under their own sub-folder to avoid the risk of overwriting actual voices used by others.)
 
 
</div>
 
</div>
  
=== FaceGen ''Heads Faces Hairs and Helmets'' ===
+
=== Dialogue and Lipsynch ===
: 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.
+
Other sections have relevant information to this subjectThe following "Tips" in particular are applicable.
  
* [http://www.nexusmods.com/oblivion/mods/9360 The Conformulator] Mod Tool.
+
* See the [[#Custom NPCs|Custom NPCs]] section regarding scripting "AI Packages" and "Conversations".
* [[Working with Skyrim head TRIs|Working with Skyrim head TRIs]] (Wiki) for additional tutorials and resources.
+
:* [[#TIP-CompanionWheel|TIP: Companion Wheel.]]
* [http://oblivion.nexusmods.com/mods/20166 Head06 Resource] Oblivion Mod by '''Throttlekitty''' as a reference example.
+
:* [[#Tip-Hostility|TIP: Hostility between NPCs.]]
 +
:* [[#Tip-InterruptCombat|TIP: Interrupt combat for dialog]]
 +
:* [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 +
:* [[#Tip-CompanionPerks|TIP: Perks for Companions.]]
 +
:* [[#TIP-AIPackages|TIP: Using AI Packages.]]
  
The heads of characters and NPCs in Bethesda games are created using the builtin [http://facegen.com/index.htm FaceGen] tool, which is a licensed '''Singular Immersion ''FaceGen Modeler'''''. According to the FaceGen site "Customizer" tool [http://facegen.com/customizer_help.htm user manual] the resulting information is stored in the following files.
+
* See the [[#Scripting|Scripting]] section regarding:
 
+
:* types of scripts: Objects, Quests, and "Base Effects".
Each model part consists of one or more of the following file types, with the same root name:
+
:* [[#TIP-EditorIDNames|'''TIP: Do not begin Editor-IDs with numbers.''']]
# TRI. This is the base mesh, which includes UVs and information about morph targets but not the FaceGen shape changes.
+
:* [[#Tip-CompoundConditionals|TIP: Debugging Compound Conditionals.]]
# BMP. This is the base texture.
+
:* [[#Tip-Debugging|TIP: Debugging data to file.]]
# 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.
+
:* [[#Tip-EventHandler|TIP: Don't overlook EventHandlers.]]
# EGT. This is the statistical texture information, which is used to modify the base texture image. Without this file, the texture image is fixed.
+
:* [[#Tip-Encapsulation|TIP: Encapsulation - Parens, Brackets, and Braces.]]
# 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.
+
:* [[#Tip-FunctionParameters|TIP: Function parameter separation with commas.]]
 +
:* [[#Tip-ParsingLines|TIP: GECK parses the entire line before evaluating.]]
 +
:* [[#Tip-NPCWpnChoice|TIP: NPC Weapon Choice.]]
 +
:* [[#TIP-MsgVariable|TIP: Pass a variable number into a script message.]]
 +
:* [[#Tip-Notes|TIP: Passing a 'Note' to the player.]]
 +
:* [[#Tip-Recipes|TIP: Passing a 'Recipe' to the player.]]
  
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" meshDifferent heads can be used with the same body to provide the customized faces of PlayerCharacters.
+
[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.
Note that everything related to the head must be placed in a BSA for it to be processed properly by the game engineOtherwise the "loose files" do not get "conformed" to the head mesh properly. (Use the "BSArch" tool linked in the [[#Packaging_Tools|Packaging Tools]] section to '''''create/update''''' your BSA file.)
+
* [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://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 FNVNOTE: 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=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://youtu.be/NWtIRBPVedw GECK: Dialog and Lip Synch Tutorial] Video by '''Seddon4494'''Covers basics of dialog and lipsynch.
 +
* [http://geck.bethsoft.com/index.php?title=Quest_and_Dialogue_Tutorial GECK: Quest and Dialogue Tutorial] Wiki.
 +
* [http://www.youtube.com/watch?v=BQdUQmIdvUc GECK: How to make an NPC with Basic Dialogue] Video by '''MrWoobeee'''.  Covers booth FO3 & FNV.
 +
* [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 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] Text file by '''Capt Mitch''', using Skyrim Lip-sync toolOblivion 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.
 +
* [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.
  
 +
<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"  
 
<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+ */
">From '''DrakeTheDragon''':<br>
+
">[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.
Be aware that for EGM and TRI files it is one whole head mesh (OBJ) per morph, the base mesh with the morph applied to its fullest, and when you import them into modeling apps it is paramount the vertex count and order isn't even remotely touched, or they'll be useless to you as they won't fit into the EGM/TRI file afterwards anymore later. Morph offsets are calculated from the difference between the neutral base mesh's vertices and the morphed mesh's vertices, and this can't work when one or more sets of them don't have identical vertex indices anymore. Don't use any fancy scripted modification tools from your modeling app or anything else complex which could likely alter the vertex order either. If I remember right, even alterations to the UV map can change the vertex order and render the OBJ useless beyond repair already.
 
  
[The '''Oblivion''' mod [http://www.nexusmods.com/oblivion/mods/18566 Adding Eye Morphs to FaceGen Files]] is a guide for much more than just adding "eye morphs".  It's an invaluable resource and a profound guide how to do all of it at the same time. It covers the basics and all possible tasks likewise and, again, it goes far beyond just eye morphs in all departments. [Curator: As '''Oblivion''' utilizes the same underlying '''Gamebryo''' game engine as FO3 and FNV, it is still applicable in general.  It includes the necessary tools by '''Scanti'''.  There is a later version of [http://www.nexusmods.com/oblivion/mods/9360 The Conformulator] than the one in that package.]
+
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.
  
Last I heard the latest [http://www.niftools.org/ NIF Tools] im-/export scripts for '''Blender''' could also be used to create EGM files, but '''Scanti's Conformulator''' is still the better solution and can be used for far more than just that.
+
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.
  
I'm 3 years behind though [in Oct 2013] and not 'up to date' with the most recent developments anymore.
+
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>
 
</div>
  
 +
<span id="Tip-GenericDialog"></span>
 +
====TIP Adding Generic Dialog====
 +
: 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+ */
">From '''Ghogiel''':<br>
+
">So, you want your NPC/Vendor to have some ''generic dialog'' (meaning: re-use existing dialog already in the game that is not situation specific; like "Hello").
It's rather easy to use '''The Conformulator'''. I've used it for years since it was very first released.
+
 
 +
There are two ways you can do this.
  
Once you have your Fallout NIF, just export from '''Nifskope''' to OBJ, and use that in the '''Conformulator''' instead of trying to use a NIF as input.
+
* One is to extract all of the voice sounds and corresponding LIP files from the game "Fallout - Sound.BSA file" to some other folder (NOT to "Data"); then go through and pick and choose which lines you want; and just create new dialog topics and responses for your NPCs that use those lines verbatim. Then just copy/paste and rename your voice files for the new dialog. For some things, this will be the faster way of doing it.
  
So you have your final F3 NIF. (Try not to do anything else to this NIF: nothing that will reorder the vertex numbering index!)
+
* For ''Vendors'' though, it's probably faster to integrate them into the existing vendor system. This will probably require a bit more digging through the '''GECK''' to make sure you get your NPC correctly configured. You'll probably need the voice type to be set to the proper type of the existing vendor you are modeling yours after, the NPC's class to be set to what the vendor dialog expects, and you'll probably need to add the appropriate factions for vendors to your NPC. Just go through the configuration of an existing similar vendor NPC and you should be able to figure it all out.
  
* Open it in '''Nifskope'''.
+
See also [[#Tip-DialogTabs | TIP: Standard Dialog.]]
* Export as OBJ file type.
+
</div>
* Open '''Conformulator'''.
+
 
* Input that OBJ file.
+
<span id="Tip-BatchLips"></span>
* In the TRI file input field, select the "humanhead.tri" file.
+
==== TIP Batch Lip file generation ====
* Hit <conformulate>.
+
: Thanks to '''EPDGaffney''' 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, the lads at the "New California" mod team happened upon an incredibly useful bit of information regarding a hidden functionality for batch generation of LIP files. The way it works is:
  
I've experimented with using stuff like, a simple primitive box, make a TRI from the head onto that, then use that TRI to bake the EGMs onto final helmets (the theory is, the helmet mesh(or whatever) will deform much more uniformly in all directions) as an attempt to try to get around odd deformations on some headwear.
+
[[File:GECKFacialAnimation menu.PNG|thumbnail|100px|GECK Facial Animation menu image]]
 +
# Set up all your WAV files in advance, with the correct names and formatting so that they would be "previewable" in the '''GECK''' for the relevant lines of dialogue.
 +
#: Then, once they're all done, you can do the batch process.
 +
# This step is required for '''MO/MO2''' users.  <span style="color:green;background-color:#FFFFFF;">If not using '''MO/MO2''' or a similar "empty Data folder" mod manager, you probably don't need to worry about this step as the folders should already be there under "Data\Sound\Voice".</span>
 +
#: If you are using '''MO/MO2''', go into your vanilla '''Fallout New Vegas Data''' folder and then make all the hierarchies (e.g. "Fallout New Vegas\Data\Sound\Voice\NewCalifornia.esm\PBODocIsaakVoiceType"), but the audio files don't need to be moved from your '''MO/MO2''' folder.
 +
#:[[File:GECKFacialRecreate prompt.PNG|thumbnail|100px|GECK Recreate Facials prompt image]]
 +
#: <span style="color:red;background-color:#FFFFFF;">This was only tested for '''MO2''', but it probably works for other "empty Datafolder" managers such as '''MO'''.  Because '''MO''' and '''MO2''' load everything virtually, it makes sense that the '''GECK''' doesn't know where to put the LIP files unless you make the hierarchy in the vanilla folder.  Users should be able to make LIP files the normal way (individually) as long as the folder structure is there in the vanilla Data folder.</span>
 +
# Whether you skip '''Step 2''' or not, now click on the '''GECK''' menu bar ''Gameplay | Facial Animation... '' option.  (See [[:File:GECKFacialAnimation menu.PNG|GECK Facial Animation menu image]].  {{Thumbnail_enlargement_message}})
 +
# You'll be asked: "Do you want to forcibly recreate all facial animation files", and you'll want to choose the "Yes" button.  (See [[:File:GECKFacialRecreate prompt.PNG|GECK Recreate Facials prompt image]].  {{Thumbnail_enlargement_message}})
 +
# The GECK will put up a progress bar and then appear to freeze as it processes in the background.  After the better part of an hour, it should be finished.  However, in practice, it does the last Form-IDs first, meaning after the first couple of minutes it has probably finished with what was needed, and could be force-quit if desired.  They didn't actually try that; but it crashed on its own once and everything seemed fine.
  
Most of the time the quality is set to "vertice". You only need to get more fiddly if your headware deforms oddly (e.g. the brim of a hat bending a bit).  Which is where using the box method I mentioned above was developed for. Or trying to copy the face morphs from one TRI to a new oneAnd hair morphs. Otherwise I can't see how you can mess up.
+
:: <span style="color:red;background-color:#FFFFFF;">Dialogue topics that are technically vanilla but are modified to add new dialogue, even for characters that are added by a new ESM/ESP; most notably '''GREETING''' but also any of the combat lines or the iron sights one(s), unfortunately have very low Form-IDs, and as such will be among the last to be generated by this batch process.</span> Probably easier to do those manually unless you plan to set '''GECK''' to do its work and then leave your PC alone for a bit.
 
</div>
 
</div>
  
 +
<span id="Tip-Translators"></span>
 +
 +
====TIP Conversation or Quest system====
 +
: 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+ */
">From '''ThrottleKitty''':<br>
+
">The conversation/quest system for Fallout New Vegas seems like nonsense until you realize it evolved out of the conversation/quest system for Morrowind. In Morrowind, different people could say the same topics, and most of it wasn't voiced; so it made a lot of sense to group things by '''quests''' and '''topics''' instead of by '''speaker'''.
[http://www.nexusmods.com/oblivion/mods/18566/? Adding Eye Morphs to FaceGen Files] is just about all I know about EGM/TRI/EGT files, and some tools to work with them aside from '''The Conformulator'''.
+
 
 +
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.
  
For the problem with the mouth not moving, there's a couple of solutions; first the problem! '''The Conformulator''' compares your mesh to the original NIF/TRI/EGM files and creates morphs based on those offsets. So if the mouth isn't 100% perfect, you'll get a 'bad' morph. With my [http://oblivion.nexusmods.com/mods/20166 Head06] mod, the goal was to create a high-res version of the original, and stay true to the form. Even with small differences between the mouths, I ended up with a 'sticky mouth' look when talking. (So maybe the first solution isn't much of one).
+
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*).
  
I got around this by slightly opening the mouth a very little bit, a tip I got from '''Scanti'''. The vertices are too close together and the tolerance of '''The Conformulator''' was as such that it didn't know which way to move those areas. Took a couple tries, but I successfully managed to copy the morphs from the stock head to my custom one.
+
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.
  
You'll need to use one of the other tools (I used the [hex editor] '''010''' scripts) to take the offending morphs in and out of the TRI file for fixing. You get an OBJ [file] as an output, which can be mangled about, then injected back in.
+
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]].)
  
The EGT file is a package of 50 textures. The only way you'll be able to reuse the existing ones is if your model has an '''''identical''''' UV layout- or close at least. If not, a bit of [fiddling] of models and UVs should yield a good result for baking the textures from one UV set to another. (short of buying the '''Facegen''' software to do it the right way).
+
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>
 
</div>
  
==== Fallout 3 EGM manipulation ====
+
<span id="Tip-ConvoBtwnNPCs"></span>
: The following is based upon a FO3 [http://forums.nexusmods.com/index.php?/topic/92378-what-is-egm-file/ thread entry] by '''Skree000'''.
+
==== 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"  
 
<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,194: Line 2,567:
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 
">
 
">
EGMs are data files associated with head "accessories" that help deform them to accommodate the Head-Deformation associated with the Character Creation menu.
+
* 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.
  
Without an EGM file, your character skull would stick through the hat, hair or helmet model if you made the skull really wide, tall or deep.
+
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
  
EGMs, without requiring a licensed commercial product, are created through a mod tool called '''The Conformulator'''.
+
; 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
  
'''The Conformulator''' takes TRI files; which are basically models that have ''Morph Targets''. ''Morph Targets'' are what you manipulate when you change sliders in your character creation screen. These are basically just moveable bones that are skinned to parts of the face. A TRI file is an archive of one model and its morph targets.
+
;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>
  
'''The Conformulator''' also requires an OBJ or NIF format mesh to 'conform' to the TRI file. Basically it skins the mesh to the TRI file's ''Morph Target'' parameters, so that whenever you 'squash the forehead', the 'forehead region' of the headgear also gets squashed.
+
<span id="TIP-CuttingLipFiles"></span>
  
'''The Conformulator''' doesn't always do a perfect job, so it has a few options allowing modders to control how sensitive or accurate the conformulation is to the TRI file.
+
====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:
EGM's are REQUIRED for any headgear/hair. Without them, it will look awful; as if you have extremely deformed/altered character faces/heads.
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
To make your own EGM, export an OBJ of your headgear/hair from your modelling program, [Curator: the mesh ''transforms'' are exported when it's output as file type "OBJ" but not in a NIF], and then open '''The Conformulator'''.
+
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">Assuming you are cutting up existing voice files to make new dialog.  What I typically do is import the existing voice clip into '''Audacity''' (see [[#Programs and Tools | Programs and Tools]]) and chop it down to the part I want, then export that as a '''WAV''' file and rename it to match the file name that the GECK expects in the dialog quest. Make sure you export it as a WAV and not an OGG. The Lip generator wants a WAV file.
  
* Input the vanilla head TRI file, which is located in the Fallout3.BSA. (Unpack that with one of the BSA extraction tools listed in the [[#Packaging_Tools|Packaging Tools]] sectionNote the warning!)  
+
Instead of trying to cut down the lip file to match, just regenerate the lip file from scratch. Click on the voice file in the box at the bottom of the dialog editing box to highlight it, then click on "From WAV" and click on "Generate Lip File", which should now no longer be grayed outIf you don't seem to be able to actually generate a LIP file, double-check that your voice file is in MONO (and not Stereo) mode.
  
: The TRI files you need are in "\meshes\character\_male\" and the one you want should be called "Humanhead.tri" or something like that. There are also "femalehead.tri" for female versions, if your mesh has problems with one gender over the other.
+
This of course requires that you have copied the lip generator from Oblivion or Skyrim, or the alternative [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf]. In Oblivion the lip generator's in '''\Sound\Processing''', which is where it belongs in FNV as well. (See the links above for options.)  <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+ */
 +
">NOTE: The '''FonixData.cdf''' tool must be installed under the '''sound\voice\processing''' folder.</span>
  
: For the most part "Humanhead.tri" works just fine, since the only real major differences between male and female heads are slightly different facial ''morph targets'', which aren't really that important for hairdos or hats to fit on the skull. (Skull deforms are all basically akin to each other.)
+
Helpful tip - I will often record a very short bit of blank audio in the dialog editing box just so it puts a blank WAV and LIP file in the right directory where it's expecting it. Then I just go to that folder and delete those "dummy files", which seems kinda stupid, but it gets the folders all created properly and named properly and stops me from doing stupid things like typing one of the folder names wrong. Then I copy and paste the file name from the GECK onto my newly edited WAV so that I can't make a stupid typo there as well.
 
 
* Once your TRI file is plugged in, plug in the OBJ of your headgear/hair mesh.
 
 
 
* Hit "Conformulate".
 
 
 
* Done. Your EGM is ready!
 
 
 
'''GECK''' will auto-detect any EGMs that are present in the folder where the headgear is located. HOWEVER!!! The EGM name must MATCH the .nif file name of the headgear.
 
 
</div>
 
</div>
  
: 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="Tip-GetSpeaker"></span>
 
+
==== TIP Get the current speaker reference ====
=== Havok Physics ===
+
: Thanks to '''FiftyTifty''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Havok Removal] PDF.
 
* [[Making_Havok_ragdolls_in_Blender|Making Havok ragdolls in Blender]] Wiki.
 
 
 
<span id="Tip-HavokDeadNPC"></span>
 
====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:
 
 
<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+ */
">Positioning a "dead" NPC can be frustratingSpawning a dead NPC will have them appear as you left them (usually standing in the "T-crucifix" pose).  Instead have the NPC alive in a temp holding cell, then move them to where you want them to end up and kill them.  If the "dead" NPC just stands there you can have havok kick in if you place a small dummy explosion by the freshly enabled NPC. '''Jokerine''' wrote about that [http://forums.nexusmods.com/index.php?/topic/5831532-egg-planting-script-placeatme-problems/?p=52011812 here]. You could probably copy the same script she wrote there and give it to your NPC.  If you do it that way, they'll havok (have game physics applied) and drop in some random-ish fashion, though not too random since they mostly ended up in the same position on the floor. If you have the NPC move to the same room when the player enters the room, the player will see the NPC appear and then fall to the ground; so best to do this out of sight of the player if possible.
+
">Suppose you want to identify the current speaker of a line of dialog for use as a later referenceDialog "inherits" it's implied speaker from it's topic, so you need to use the "[http://geckwiki.com/index.php/GetActionRef GetActionRef]" function, placed inside the dialog "Result Script (End)" block.
  
Dead NPCs can be havoked in the GECK, though like much in the GECK that seems to be a bit buggy at times. Dead NPCs will spawn as you leave them though, so if you leave them just standing there in the GECK, then they'll just be standing there when the player finds them.
+
See also the GECKWiki "[http://geckwiki.com/index.php/Calling_reference Calling reference]" page.  
 
 
Live NPCs won't havok ''in the GECK'', but if you kill them when they spawn or when a player approaches, they'll havok and fall and will end up in some random-ish position when the player finds them.
 
 
</div>
 
</div>
  
=== Heightmaps ===
+
<span id="Tip-TopicVoices"></span>
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
====TIP How to generate '''lip''' files====
* [http://forums.nexusmods.com/index.php?/topic/517230-tutorial-converting-a-dem-to-a-heightmap/ Converting a "Digital Elevation Map" (DEM) file to a Heightmap] Thread.
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
* [http://www.truancyfactory.com/tutorials/fallout3/fallout_worldspace2.html Fallout3 Creating a Heightmap] HTML with images.
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
* [http://forums.nexusmods.com/index.php?/topic/224954-height-map-creation-and-editing-tutorial/ Heightmap creation and editing from imported image/data] Thread.
+
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 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.  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;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">NOTE: The '''FonixData.cdf''' tool must be installed under the '''sound\voice\processing''' folder.</span>
 +
 
 +
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.
  
=== Interior Creation===
+
Note:
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.
+
* 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.  
  
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
+
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''' fileThe 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.
* [http://www.youtube.com/watch?v=qThfCjgNUdE Fallout New Vegas GECK interior building] Video (9:21) by '''deacrb'''.
 
* [http://www.youtube.com/watch?v=0rK5UdhMyas GECK Tutorial - Building a House, Part 1] Video (12:16) by '''Seddon4494'''.
 
* [http://geckwiki.com/index.php/Creating_a_New_Empty_Cell Creating a New Empty Cell] GECK Wiki(Note: FNV has fewer pre-made empty buildings than FO3.  "TestQuest01" seems to be all.)
 
  
====Angle and Grid Snapping====
+
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.
"Angle snapping" & "grid snapping" buttons are covered under "[http://geckwiki.com/index.php/Categories:Preferences Categories: Preferences]" and in the "[http://geckwiki.com/index.php/Bethsoft_Tutorial_Layout#Grid_and_Angle_Snapping Bethsoft Tutorial Layout] on the GECK Wiki site. You want to enable this and configure the spacing before you start doing anything else.
+
</div>
  
====Basic Interior location design guide====
+
<span id="Tip-LocatingVoices"></span>
: 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 "[http://forums.nexusmods.com/index.php?/topic/581268-interior-location-creation-tutorial/ Interior Location Creation Tutorial]" in that forum.
 
  
 +
==== 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"  
 
<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+ */
">I learned a lot of things creating AWOP that seriously sped up my production time creating huge interior locations so I thought I would bundle a load of tips together in a guide to help others getting started with some simple handy facts that will save you a lot of time if you wanna go creating dungeons.
+
">When you want to edit or replace an existing Actor's voice file, how do you go about locating them?
  
Contents:
+
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.
* Position 0
 
* Block Size
 
* Handy Keys
 
* Havoc Engine
 
* Walkthrough
 
* How I Started
 
* Copied vs New
 
* Bodging Gaps
 
* Cave Gaps
 
* Cave Navmesh
 
* Interior Size/Object Count
 
* Adding NPCs
 
* Object Spacing
 
* Fast Navmesh
 
* Fast travel to Object/NPC in Render Windiw
 
* Interior Light and Fog settings.
 
* Locating Objects
 
  
=====Position 0=====
+
For example, looking for Boone referring to his "beret":
On creating a new interior make sure the first block is placed at 0 on all axis. This will make the auto-move functions much simpler and easy to understand (as well as mathematically predictable).
+
* 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.
  
=====Block size=====
+
To replace the written dialogue bit you'd need to do some work in the GECK as outlined elsewhere in this section.
Each block is by default 256x256 or in caves double or triple that size. There are however exceptions such as the Office and Factory building sets which have a default height of 288 which can cause blocks moved using the auto-align functions to shift out of place vertically requiring manual readjustment later.
+
</div>
  
=====Handy keys=====
+
<span id="TIP-MultipleGreetings"></span>
Note: [RMB = HOLD the <Right mouse button>]
 
* <F> - Drop object onto nearest surface.
 
* <G> - Move object up by a small amount
 
* <F5> - Refreshes the scene allowing for viewing of light effects and such.
 
* <Ctrl+F> - Swap currently selected object(s) [Very useful for taking a clean Vault and making it dirty by just swapping out all references to one type of object such as a Vault wall in a scene to another similar replacement].
 
* <Ctrl-F> (with Navmesh Active) - Checks local Navmesh for errors and allows for deletion or move to warning triangle.
 
* <Ctrl-D> - Duplicates object(s)
 
* <Z+RMB> and move- Rotates selected object on it's Z Axis.
 
* <X+RMB> and move - Rotates selected object on it's X Axis
 
* <RMB> & move - Rotates selected object on Y Axis
 
* <A> - Turn full lighting on and off.
 
* <Right-Click> (Navmesh on) - Drop Vertice
 
* A (Navmesh on and exactly *3* vertices selected) - Fill in a Navmesh triangle.
 
  
=====Havoc Engine=====
+
====TIP Multiple Greetings====
To use the Havoc engine (on by default in the FO3 GECK) to realistically drop items and reveal the contents of certain vanilla interiors you need to do the following:
+
: Thanks to '''madmongo''' of the Nexus "Fallout New Vegas Mod Talk" forum for the basis of the following:
* Open the 'GECKCustom' ini file (usually in My Documents/My Games/Fallout NV)
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
* Find:
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
:* bUseMultibounds=1 and change the 1 to 0.
+
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When deciding what to say, your NPC will go down the list of greetings until it finds the first greeting for which all of the greeting's conditions are true.  If your only condition is that the character ID matches your NPC, then as soon as it hits the ''first'' greeting with that condition on the list, your NPC will always say that line and not any others.
  
[Note that havoc dropped items will hover slightly above the surface they are intended to drop on. For detail objects I recommend using the F-key drop function. However certain objects such as skeletons can only be dropped properly using havoc.]
+
There are different ways to make an NPC say different things. Many of the vanilla NPCs have the "say once" flag checked. They'll have a bunch of greetings, each with the say once flag, so the first time they'll say the first greeting, the second time they'll say the second, etc. Eventually they run out of greetings and they will then default to a greeting that doesn't have the say once flag set.
  
=====Walkthrough=====
+
There is also a flag for them to say a particular line once per day.
Using this info it is relatively quick and painless to create vast rooms.
 
Here's an example of an office block:
 
* Choose entrance location, manually place block at 0 on all axis.
 
* Decide on approximate size of location and how you intend for it to play out.
 
* Find a wall and corner object (or anything else 'room' based that will be used at least once).
 
* Drop them into appropriate positions (place at 0 height manually and use the auto-align features to rotate and slot them into place.
 
* Use Ctrl-D to duplicate any objects needed more than once such as standard room walls and drag them into place.
 
* Use Ctrl-F to select specific wall clusters and replace them with similar objects (e.g OffRmWall01 to OffRmWall02/03) which will vary up the appearance.
 
* Drop in essential clutter objects such as desks, terminals etc... and use the previous functions to duplicate and replace with similar objects. Use G and F to reposition vertically. [Duplicating clusters of stuff can vastly speed up creation.]
 
* Add detail clutter and loot then enemies.
 
* Leave FX until navmesh is complete.
 
* Clutter from the bottom upwards. Navmesh from the top down.
 
: Clutter from the lowest floor (including basements) and then add later floors so you can see into the room effectively from all angles whilst adding clutter. Resist the urge to navmesh at this stage until the building is complete. This is because dropping a vertice (or green square used to link navmesh triangles) on top of existing navmesh on a lower level is tricky. It requires you to drop it on the floor from an angle where lower levels of navmesh are not in the way/directly underneath.
 
  
* Add FX after navmeshing. Navmesh Vertices get stuck on FX and even spamming the F key repeatedly will not get them to the floor sometimes.
+
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.
  
=====How I Started=====
+
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.
I did not read any tutorials to get started modding (though once I got to dialogue and quest creation aspects those became very necessary).
 
  
For level design I began by duplicating rarely visited areas from the vanilla game (back then FO3). I then re-cluttered them myself. I pretty much learned the hard way though. Had I known of the existence of many of the above tips/keys/info I would have got a lot more done a lot faster but that's another story.
+
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.
  
Basically I took what was there already, searched for the object in the GECK and just looked at all the similar objects. Sometimes just trying stuff out but mostly going in knowing what I wanted and if need be finding the blocks I needed to 'bodge' it together.
+
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.
  
If I wanted a certain object I thought where I had seen it before and sought it out in it's vanilla location, checked out the name, found it in the list then dropped one into my location (though standard keyboard copy/paste commands work fine, just make sure you have the render window selected before attempting to copy).
+
Be creative and have fun.
  
=====Copied vs New=====
+
See also TIPs [[#TIP_Random_NPC_Comments|Random NPC Comments]], [[#TIP_Say_Once_use|Say Once use]], and [[#TIP_Standard_Dialog|Standard Dialog]].
Eventually I found that copying vanilla areas was more trouble than it was worth. Most are at unpredictable heights and horizontal positions and a few are even at random angles which makes adding new room blocks onto them very difficult without creating gaps.
+
</div>
  
Eventually it becomes easier to create a new room and just copy a load of clutter from a few vanilla areas in bulk and redistribute them rather than the other way around.
+
<span id="Tip-NoDriver"></span>
  
=====Bodging gaps=====
+
==== TIP No sound driver available error message ====
I like to use certain kits together such as Hotel, Office, Utility, Cave and Vault, sometimes just in one interior (the Dead Money AWOP has lots of these locations). However they are not always designed to fit together leaving gaps often along ceiling joins. Look out for simple blocky objects which can be used to fill gaps such as:
+
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
* Free Columns (e.g NVGSRmFreCol) [Eseentaly wall-join features]
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
* Wood blocks (e.g CampLog01-04)
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
* Concrete (e.g PowerStationBlock01)
+
background-color:#333333;padding:3px;
* Rubble (e.g OffRubblePile01/IndRubblePileSmall)
+
word-wrap: break-word;      /* Internet Explorer 5.5+ */
* Door Frames (e.g OffDoorFrameSmOnly)
+
">So, you keep getting an error message saying "Error: No sound driver available for use" every time you open the dialogue window. What gives and how do you make it go away?
  
=====Cave Gaps=====
+
It's not necessarily an audio driver problem. It doesn't matter where your '''GECK''' is installed.
Cave sets are not like other square room sets. They require much more attention as to which block can go where. They are not symmetrical and floor and ceiling joins in particular will be off unless you put the right blocks next to each other at the correct angle.
 
Here's how I do it:
 
* Place initial block at 0 and make sure it is also not at an angle.
 
* Do NOT rotate any blocks (apart from Hallway pieces and corner blocks which are more flexible).
 
* Each cave piece is numbered 1-4. These represent North, South East and West and are consistent throughout.
 
* Drop one in. If you drop a number 2 wall in and need it facing the other way swap it out for a number 4 rather than rotating it 180 degrees. Should be simple from there on out. This way you avoid the gaps.
 
  
=====Cave Navmesh=====
+
The form in the '''GECK''' where you edit dialog is also where you record audio for that dialog. If you do not have a microphone or some sort of ''line input'' connected to your computer, the '''GECK''' can't find anything to record audio from and gives you that error.
Quick tip for navmeshing caves is to aim for the rocks when dropping vertices. This stops the majority of it going under ground from several vertices being dropped lower than the average ground height.
 
  
=====Interior Size or Object Count=====
+
Plug in a microphone and the error will go away. Depending upon your version of '''Windows''', something other than a microphone (such as headphones) plugged into the line input will also make the error go away.
Making a location too big and adding too many objects will severely impact on performance. I have found the total object count (from a cigarette to a train cart) should not exceed 1500 or thereabouts (though I have many interiors that push this limit, in some cases maybe a bit too far).
 
  
To create a very big location is still do-able. For example the main sections of the Collapsed Underpass from AWOP are structurally built from about 40 very large blocks doubled in size though the rooms are probably big enough to contain every Vault in the vanilla game. This cuts down on object count and performance does not take a hit.
+
Some audio drivers will have a ''virtual audio source'' of some sort that will be enough for the '''GECK''' to think that it has something to record from. If nothing else, many audio drivers used to have a loopback so that they could record whatever was going out through the speakers. (Microsoft and the audio driver manufacturers have moved away from this since some folks were using it to illegally record the audio off of '''YouTube''' videos and the like.)
  
Which objects/FX/NPCs etc are more likely to trigger a performance hit I have yet to figure out.
+
Look under the '''Windows''' "Control Panel | System | Sound | Input | Device Properties".  There should be a drop-down box in the "Device Properties" window that lets you enable various devices (e.g. "Stereo Mix (Realtek Audio)") that (regardless of whether they actually function or not) will be sufficient to get rid of the error message in '''GECK'''.
  
=====Adding NPCs=====
+
If you have something configured or plugged into one of your sound card's inputs and you still have the error, then you have an audio driver problem.
I try and limit NPCs of a certain type to about 20 in any given location with no more than 30 overall. Adding more than this caused many problems when FNV was initially released though I believe the patches have resolved most problems I experienced. Even so having too many NPCs seems to be bad for performance, especially if using vanilla spawns likely to be effected by mods such as IWS or VVV.
+
</div>
  
Also when building an interior try and think how the enemies will react to your entrance. If the enemies are spread out inside a building not far apart with someone near the entrance then they are all likely to spot the player upon entry and mob them even from the back of the building.
+
<span id="Tip-OCE"></span>
  
There are several ways around this such as adding Guard packages to the NPCs or clustering them in certain spots.
+
====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:
 +
<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+ */
 +
">'''Obsidian''' wrote the '''Conversation Editor''' (OCE) to help them do dialogue in this game in a way that was workable for so many branching paths and such.  It comes with the "New Vegas G.E.C.K." and can be accessed by clicking the last button on the right on the top toolbar, which looks like the symbol for a "right-justified" paragraph.  Its interface looks very similar to the ''Dialogue Tree'' in the '''Quest''' window that most people seem to use even in this game. (I suspect because of all the Fallout 3 tutorials, and that OCE wasn't available in Fallout 3).  Some of its advantages are:
 +
* loading things much faster,
 +
* never crashing (at least for me after weeks of editing hundreds of lines),
 +
* not having that Windows 10 bug unless you open certain other things in the G.E.C.K.,
 +
* being able to save your mod with it open,
 +
* inheriting the speaking NPC (and optionally other conditions if you tell it to, I think) so that you needn't enter it for every single line,
 +
* being able to edit conversations in a more visually comprehensible way (as a tree, with entries you can modify in the same window),
 +
* making new dialogue by simply adding a child to the last thing you wrote and typing it into the same window as the rest of the conversation,
 +
* being able to copy topics and then paste them as links or simply pasting the topic as a new topic with the same text and conditions,
 +
* and having access to every feature of the Fallout 3 method (well, theoretically; I'm still not sure about recording).</div>
  
Personally for tight environments such as hotels and offices with numerous NPCs I like to block off several pathways to slow them down. I also try and create gaps within the ranks to allow for breathing space for stealthier players to advance further.
+
<span id="TIP-RandomNPCcomments"></span>
 +
====Tip Random NPC Comments====
 +
: Thanks to '''Mktavish''' 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+ */
 +
">Drop in Xmarkers at the locations where you want to provide specific comments, and give them a unique Ref-ID.  Then put in a condition of:
 +
"Subject: GetDistance to that XmarkerRef < 10000" (as an abstract, pseudo example) on each of the Info/response entries, in addition to a "GetIsID" condition.
 +
If the 150 char limit isn't enough then add another 150 char block in the Response field.
 +
On the Topic text (at the top) say something like: "Do you have any info on this place?".  Flag it as a top level dialogue; then the priority will determine where it shows in the list of options after their "Greeting".
 +
If you're not within the maximum distance to any marker then that option shouldn't show up as a dialogue option for the player.
 +
</div>
  
Think about how far in you want the NPC to get before they are attacked. I usually allow at least one empty room or corridor on entry so the player can take stock of their surroundings and if sneaky enough get inside undetected. Vanilla often does this too but not always.
+
: '''Budong''' added the following alternative method:
 +
<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+ */
 +
">NPC is running this script, which basically waits and does nothing until a random amount of time has passed and then forces the NPC to say something to the Player.
  
[This does not matter so much with most Creatures who cannot open doors such as Geckos, Mole Rats & Mantises].
+
<pre>
 +
float m_banterTimer
 +
float m_banterThreshold
  
=====Object Spacing=====
+
BEGIN GameMode
Try and leave a gap the size of a small door frame (approx 4 office/factory floor tiles if I remember correct) wherever you want NPCs or creatures to walk (or wherever you intend to Navmesh). You can get away with less in some circumstances (small bridges with no walls either side) but trying to limit that space with clutter or walls will cause problems for 'wide' creatures such as Deathclaws, Super Mutants and Mantises.
+
  if m_banterTimer < m_banterThreshold
 +
    set m_banterTimer to m_banterTimer + GetSecondsPassed
 +
  else
 +
    set m_banterTimer to 0
 +
    set m_banterThreshold to GetRandomPercent*4
 +
    SayTo player LocationBanter;
 +
  endif ; banterTimer
 +
END</pre>
  
=====Fast Navmesh=====
+
Then put all the NPC's banter dialog into the topic called LocationBanter.  The '''location-specific responses''' all have a condition using the '''GetInCell''' function to tie them to specific places and are at the top of the topic's stack so they evaluate first but only trigger when the Player is at a specific location; they're also flagged with "once per day" so you don't get spammed by them. The bonus to this method is that you can have '''generic non-location-specific''' dialog at the BOTTOM of the topic's stack, so if the Player is NOT at a landmark, the NPC still makes amusing observations every now and again. (Plus you are not forced into dropping new objects in cells all over the game; it's just the script and the dialog. Nice and tidy, easy to manage.)
Get used to holding down Ctrl and A when dropping vertices. Every third vertice dropped without releasing control will automatically create a navmesh triange. After this you can just drop a single vertice and the last two highlighted vertices will automatically create a new triangle. Sounds complicated but in practice is very simple. This works better outdoors or navmeshing large areas as for cluttered rooms still require a degree of attention as to which vertice goes where which will eventually cause problems using this approach.
+
</div>
  
To navmesh clustered environments such as rubble-strewn offices I used to drop a vertice at every corner and then link up all the triangles after. Now I use a combo of this and the holding Ctrl approach which tends to get the job done very fast.
+
<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].
  
Check out some vanilla navmesh too. It's not that detailed and does not venture into every nook and cranny. Take into account that even melee opponents have a wide radius of attack so you don't need to go right up to every wall. Also if you try and navmesh too small a gap then NPCs will just ignore it as being inaccessible.
+
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?
  
To copy an interior and it's Navmesh, it is easiest just to duplicate it in the Cell Window. This will copy the navmesh and keep everything in place.
+
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.
  
Copying the bulk of an interior from one Cell to another I can't think of a way to take the navmesh with it. There may be one but I don't know it.
+
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>
  
With a little practice Navmesh becomes a very easy mindless repetitive task (caves and very uneven landscapes being the exception). Don't be worried about starting again for the most part. Offices and similar can be done in a few minutes. A bit dull but OK if you have some music on or something.
+
<span id="Tip-SayOnce"></span>
  
=====Fast travel to specific Object or NPC in Render Window=====
+
==== TIP '''Say Once''' use ====
Right click on object in the Object Window & select 'Use info'.
+
: Thanks to '''Mktavish''' 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+ */
 +
">The "Say Once" flag is set per "response", not per "Topic".  So basically you take the Topic, and add as many responses to it as you want.  Flag them "top level", and set "priority" for what order each response will be presented in.  You can even set conditions that might change when they are used, such as (for example) a "quest stage" or "gateway variable".  Once they have been spoken, the responses you flag as "Say Once" will no longer be considered in the priority list thereafter.
  
This will list each appearance of said object. Then just double click on each in turn to be taken to it's exact location in the Render Window. This works well for books & guns (but not tin cans or anything too common).
+
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>
  
=====Interior Light and Fog settings=====
+
<span id="Tip-SayToPlayer"></span>
In the interior locations there is an edit window which can be accessed from the Cell View window by right clicking. Im not sure about exterior locations (never edited lighting for them) but with any luck it's similar.
+
==== 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>
  
There's 3 color boxes in the lighting window. Make sure to uncheck any ticked boxes relating to predefined lighting settings else changing them will not save properly. One of the two on the left is ambient lighting, I'm not sure what the other one is so I generally make them very similar. The one on the right is Fog.
+
<span id="Tip-DialogTabs"></span>
  
There are 4 boxes at the end for entering numerical values for the fog (from memory).
+
====TIP Standard Dialog====
* For Close - the point at which the fog starts forming around the player (128 is about right for dark areas, 512 is enough for a well lit and spacious office).
+
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
Fog Far - The distance at which the fog theoretically becomes a solid wall (anything below 1000 is very close, 2000 is about right for a medium lit tight location but in order to see for long distances a very high value needs to be set (around 4000-6000). To compensate for this in big dark areas it is best just to set the colors to very dark tones but keep these values high so light spots in the distance are still visible.
+
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
* Fog Density - Just a multiplier for the amount of fog. 1 is standard.
+
background-color:#333333;padding:3px;
* Fog Clipping - The cut-off point beyond which nothing is visible but the color of the fog (or maybe that unknown block on the left). This should always be a higher value than the "Fog Far" setting to prevent a sudden impenetrable wall of fog cutting through objects at a certain distance (which can look very bad through scopes and such).
+
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">NOTE: Dialog ''quests'' must be checkboxed to "start enabled". If the ''quest'' isn't "active" the ''topics'' will not be available.
  
For reference purposes the height of a standard Office Block unit is 288, a utility hall is 256 and an epic cave is 512.
+
Certain bits of dialog are standard, but have to be added from the correct tab in the '''Quest Stages'''.
 +
See the following references:
 +
* [http://geckwiki.com/index.php/Quest_and_Dialogue_Tutorial Quest and Dialogue Tutorial], in particular the "Dialogue Topics" section.
 +
* [http://www.youtube.com/watch?v=mm_fF4VHhw4&feature=related Crow`s Tutorial on Dialogue] Video.
 +
* [http://www.youtube.com/watch?v=NvQCChzifyQ Qenosa's Tutorial on Dialogue and NPC creation] Video.
 +
* [http://geckwiki.com/index.php/Creating_a_new_vendor Creating a new vendor] tutorial on creating dialog for a NPC's interaction with the player.
 +
* [http://geckwiki.com/index.php/StartConversation StartConversation] command forces a conversation between two NPCs, starting with a specified topic.
 +
* [http://geckwiki.com/index.php?title=How_to_script_conversation_between_two_or_more_NPCs How to script conversation between two or more NPCs] tutorial.
 +
* [http://geckwiki.com/index.php/Category:Dialogue GECK Category: Dialogue] This page has a number of important points to bear in mind, such as flags and:
 +
:* '''Prompt:''' This text will be displayed in place of the topic text. If left blank (as is default), the topic text will be used.
 +
:* '''Result Script (Begin):''' This script runs when the Info is played, at the moment the actor starts saying his line.
 +
:* '''Result Script (End):''' This script runs at the moment the actor finishes speaking.
  
=====Locating Objects=====
+
The following is intended to help clarify the above GECKWiki pages:
Once you get used to building interiors the bulk of the