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

From Nexus Mods Wiki
Jump to: navigation, search
(Custom NPCs: update)
(How to do something: Add 'How to change Game Settings aka GMSTs')
 
(29 intermediate revisions by the same user not shown)
Line 85: Line 85:
 
* [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 263: Line 264:
  
 
"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 572: Line 575:
  
 
(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-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 1,039: Line 1,048:
 
=== 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,673: Line 1,682:
  
 
<span id="Tip-NPCMovement"></span>
 
<span id="Tip-NPCMovement"></span>
====TIP Making NPCs move ''aka '''AI Packages'''''====
+
====TIP Making NPCs move aka AI Packages====
 
: Thanks to '''madmongo''', '''EPDGaffney''', and '''FiftyTifty''' of the Nexus FalloutNV 'New Vegas GECK and Modders' and '''kingbeast88''' of the 'New Vegas Mod Troubleshooting' sub-forums for the following basic summary of how to get NPCs to move:
 
: Thanks to '''madmongo''', '''EPDGaffney''', 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:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 1,743: Line 1,752:
 
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}})
 
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}})
  
<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>
+
<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>
  
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''.
+
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''.  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'''.
  
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.
+
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.
  
 
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).
 
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).
  
'''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.
+
''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.
  
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.
+
You'll also want to avoid locking/unlocking doors in ''packages'', as this is completely broken and unreliable in '''New Vegas'''.
 +
 
 +
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.
  
 
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).
 
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).
Line 1,759: Line 1,770:
 
If your NPCs take off for parts unknown when following a package, make sure you have a "North Marker" placed in the cell.
 
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.
+
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.]]
 
See also [[#TIP-AIPackages|TIP: Using AI Packages.]]
 
</div>
 
</div>
Line 1,876: Line 1,887:
 
* If the AI Package has a "schedule" or timing (''start time'' and ''duration'') to it's events, make sure that schedule does not overlap or conflict with any other package assigned to the NPC.  A scheduling conflict will prevent either package from running.
 
* If the AI Package has a "schedule" or timing (''start time'' and ''duration'') to it's events, make sure that schedule does not overlap or conflict with any other package assigned to the NPC.  A scheduling conflict will prevent either package from running.
  
 +
* Be aware that for Actors with the "No Low Level Processing (LLP)" flag set: The Actor does not update its AI unless the player is in the same cell as it.
 +
<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+ */
 +
">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:
 +
 +
* Persistent in an interior: All functions should always work reliably.
 +
* 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).
 +
* 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.
 +
 +
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.
 +
 +
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.
 +
 +
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.
 +
 +
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.
 +
</div>
 
See also [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 
See also [[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 
</div>
 
</div>
Line 1,940: Line 1,970:
  
 
See also [[#Tip-DialogTabs | TIP: Standard Dialog.]]
 
See also [[#Tip-DialogTabs | TIP: Standard Dialog.]]
 +
</div>
 +
 +
<span id="Tip-BatchLips"></span>
 +
==== TIP Batch Lip file generation ====
 +
: 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:
 +
 +
[[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.
 +
 +
:: <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>
 
<span id="Tip-Translators"></span>
 +
 
====TIP Conversation or Quest system====
 
====TIP Conversation or Quest system====
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
 
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
Line 1,952: Line 2,006:
  
 
What this means for FNV is that some dialog is spread out through a lot of different quests. If you want to edit '''Doc Mitchell''''s dialog during your initial character creation, for example, that's in the various ''VCGxx'' quests (''VCG01'', ''VCG02'', etc). His healing options are in ''VDoctors'', the same quest as for all of the other wasteland doctors. If you right click on '''Doc Mitchell''''s ID in the GECK and select "Use Info", you'll get a list of topics where his ID is used.
 
What this means for FNV is that some dialog is spread out through a lot of different quests. If you want to edit '''Doc Mitchell''''s dialog during your initial character creation, for example, that's in the various ''VCGxx'' quests (''VCG01'', ''VCG02'', etc). His healing options are in ''VDoctors'', the same quest as for all of the other wasteland doctors. If you right click on '''Doc Mitchell''''s ID in the GECK and select "Use Info", you'll get a list of topics where his ID is used.
 +
 +
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>
  
 
<span id="TIP-CuttingLipFiles"></span>
 
<span id="TIP-CuttingLipFiles"></span>
 +
 
====Tip Cutting Lip files to match dialog====
 
====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:
 
:  Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 2,541: Line 2,598:
  
 
==== ESM and ESP Files ====
 
==== ESM and ESP Files ====
'''Master''' Files (those with a ".ESM" extension - e.g. '''Fallout3.esm''') and '''Plugin''' files ("TES files" or "mods" for short - files with a ".ESP" - e.g., '''Fallout3mod.esp''') are the core data files of Bethesda games.  A master file acts as a database of all of the data for the world, including object data, dialogue, gameplay settings, object placements, AI settings, landscape, script commands, cells, etc. The '''GECK''' is the tool we use to view and edit master files and plugins for the "Fallout 3" and "Fallout: New Vegas" series.
+
'''Master''' Files (those with a ".ESM" extension - e.g. '''Fallout3.esm''') and '''Plugin''' files ("TES files" or "mods" for short - files with a ".ESP" - e.g., '''Fallout3mod.esp''') are the core data files of Bethesda games.  A master file acts as a database of all of the data for the world, including object data, dialogue, game settings, object placements, AI settings, landscape, script commands, cells, etc. The '''GECK''' is the primary tool we use to create, view, and edit master files and plugins for the "Fallout 3" and "Fallout: New Vegas" series.
  
 
(However, not all game data files are '''Master''' and '''Plugin''' files. Textures, meshes, sounds, videos, etc. are all part of the full game. More about these files elsewhere.)
 
(However, not all game data files are '''Master''' and '''Plugin''' files. Textures, meshes, sounds, videos, etc. are all part of the full game. More about these files elsewhere.)
  
'''Master''' files and '''Plugins''' are largely identical in format, but have some important distinctions in practice. The main practical difference is that '''GECK''' will not (natively) create '''Master''' files. Nor will it allow '''Plugin''' files to modify other '''Plugin''' files.  (The '''Extender''' and '''PowerUp''' addons overcome this limitation.)  See the [http://geckwiki.com/index.php/Category:Data_Files GECK: Data Files] entry for more.
+
'''Master''' files and '''Plugins''' are largely identical in format, but have some important distinctions in practice. The main practical difference is that '''GECK''' will not (natively) create '''Master''' files. Nor will it allow '''Plugin''' files to modify other '''Plugin''' files.  (The '''Extender''' and '''PowerUp''' addons overcome this limitation.) However, be aware that when you change an ESP to an ESM, you can only do this properly in '''xEdit/FNVEdit''' so that the '''ONAM''' record is generated; otherwise overrides to cells will not work.  Additionally references by packages to ''markers'' and other scripted objects need to be '''''persistent''''' or they will not work in an ESM. See the [http://geckwiki.com/index.php/Category:Data_Files GECK: Data Files] entry for more.
  
It is possible for more than one '''Plugin''' file to ''depend'' upon the same '''Master''' file.  They don't even have to be by the same author.  Such '''Plugins''' are called ''dependencies''.  '''xEdit''' (aka '''FNVEdit''') is the primary tool used to identify such "master/dependent" relationships.  (See the wiki article [[Missing_Masters|Missing Masters]].)
+
It sometimes helps to think of using ".ESM" files to ''add new things'', and ".ESP" files to ''change existing things or modify existing areas''.  Depending on how you create your "ESM", it might not modify existing things in-game. In other words, if there is an existing navmesh, an "ESP" will overwrite that navmesh, but an "ESM" might not. Similarly, if your "ESM" deletes an object (like a rock) it might work as an "ESP" but the rock might still be there as an "ESM".
 +
 
 +
It is possible for more than one '''Plugin''' file to ''depend'' upon the same '''Master''' file.  They don't even have to be by the same author.  Such '''Plugins''' are called ''dependencies''.  '''xEdit''' (aka '''FNVEdit''') is the primary tool used to identify such "master/dependent" relationships.  (See the wiki article [[Missing_Masters|Missing Masters]].) It can also be used to edit the values of specific records, and to create "compatibility" and "merge" patch files.  (See the wiki [[Merged_Plugin_Guidelines_for_Personal_Use|Merged Plugin Guidelines for Personal Use]] article.)
 +
 
 +
If you have a problem with navmeshes after converting an ESP to an ESM, the problem likely is the original navmesh was deleted and your edit needs to be changed to an ''override'' (using '''xEdit/FNVEdit'''), then '''refinalized''' in '''GECK'''.  A navmesh in the ESP will also eventually stop working. It is a known bug in the '''Gamebryo Engine''' and was not fixed until later in '''Skyrim''''s life ('''Creator Engine''').
  
 
<span id="Tip-ESMOnly"></span>
 
<span id="Tip-ESMOnly"></span>
Line 2,609: Line 2,670:
 
* [[Gimp_create_old_weathered_posters_and_other_images|Gimp: create old weathered posters and other images]] Wiki.
 
* [[Gimp_create_old_weathered_posters_and_other_images|Gimp: create old weathered posters and other images]] Wiki.
 
==== How to ''do something'' ====
 
==== How to ''do something'' ====
 +
 +
<span id="Tip-GMSTs"></span>
 +
===== How to change '''Game Settings''' aka '''GMSTs''' =====
 +
: Thanks to '''punchbattle''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<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+ */
 +
">As one might expect, the game has many variables it uses in various functions and algorithms.  Where are these and how can you change them?  They can be altered using either [http://www.nexusmods.com/newvegas/mods/34703/? xEdit/FNVEdit] (freeware) to edit '''GMST''' records or the '''GECK''' to change "Game Settings".
 +
 +
Example: Change "decapitation rates".
 +
Making your own mod file:
 +
# Open the '''GECK''', then go to the upper left menu and click "File | Data..."
 +
# A list of ".ESM" files should pop up. Check the box next to '''FalloutNV.esm''' and uncheck any other box that might be checked.  (If this is an annoying problem with the DLCS, please see [[#Issue_-_GECK_does_not_automatically_select_FalloutNV_or_some_DLC_ESM_file|Issue - GECK does not automatically select FalloutNV or some DLC ESM file]].)
 +
# Highlight FalloutNV.esm, then click "Set as Active File", and press OK
 +
# Once it's done loading up, you should be ready to start editing!
 +
[But first: change the filename to "make it your own".]
 +
 +
Editing '''Game Settings''' in the '''GECK''':
 +
# Click "Gameplay | Settings...".
 +
# A window should pop up with a long list of game variables. You can type things into the '''Filter''' field to see specific variables.
 +
 +
These are the ones you're looking for in this example:
 +
* '''iCombatDismemberPartChance'''
 +
* '''iMessCrippledLimbExplodeBonus'''
 +
* '''iMessIntactLimbDismemberChance'''
 +
* '''iMessIntactLimbExplodeBonus'''
 +
* '''iMessTargetedLimbExplodeBonus'''
 +
* '''iMessTorsoExplodeChance'''
 +
 +
It is believed that '''iCombatDismemberPartChance''' is the base chance a limb will ''dismember'', and the '''iMess...''' values kick in if you have the ''Bloody Mess'' perk. Just put in whatever values you think feel right, and see how things go. It may take a couple of tweaks before you get it exactly where you want it to be.
 +
</div>
  
 
===== How to create a challenge =====
 
===== How to create a challenge =====
Line 2,617: Line 2,710:
  
 
===== How to create a perk =====
 
===== How to create a perk =====
* [[How_to_create_a_perk|How to create a perk]] Wiki.
+
* [http://youtu.be/BLRFMVQkpFQ GECK Tutorial - Perk (Ability)] Video by '''Seddon4494'''.
 +
* [http://youtu.be/62bHp1_PIdk GECK Tutorial - Perk (Entry Point)] Video by '''Seddon4494'''.
 +
* [[How_to_create_a_perk|How to create a perk]] Wiki article.
  
 
===== How to create a Primative ''activators'' ''trigger volumes'' ''multibounds and occlusion planes'' =====
 
===== How to create a Primative ''activators'' ''trigger volumes'' ''multibounds and occlusion planes'' =====
Line 2,756: Line 2,851:
 
:::* '''tenpenny'''
 
:::* '''tenpenny'''
 
::* '''npc''' (by type of actor): ''WAV'' '''mono''' files.
 
::* '''npc''' (by type of actor): ''WAV'' '''mono''' files.
::* '''voc''' (sound effect "voices"): ''WAV'' '''mono''' files.
+
::* '''voc''' (sound effect "voices"): ''WAV'' '''mono''' files.  These can be "broadcast" from radios or speakers with the ''playsound'' function in the ''menumode for terminals''.  The sound file length controls the timing.
:* '''voices''' (Data\Sound\voice): dialog.  ''OGG'' and ''LIP'' '''mono''' files.
+
:* '''voices''' (Data\Sound\voice): dialog.  ''OGG'' and ''LIP'' '''mono''' files.  These are "spoken" by Actors as "talking head" dialog.  The '''LIP''' file controls the timing.
  
 
<span id="TIP-AddingASound"></span>
 
<span id="TIP-AddingASound"></span>
Line 3,021: Line 3,116:
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: NifSkope Texture Paths by Jokerine] Mod PDF.
 
* [http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: NifSkope Texture Paths by Jokerine] Mod PDF.
 
* [http://www.nexusmods.com/newvegas/mods/64746 NIF tangents and binormals updater] Command line tool to batch update tangents/binormals.
 
* [http://www.nexusmods.com/newvegas/mods/64746 NIF tangents and binormals updater] Command line tool to batch update tangents/binormals.
 +
* [http://www.nexusmods.com/newvegas/mods/56203/? Material and Texture Animations in NifSkope - Tutorial] PDF/DOC download.
 
* [http://niftools.sourceforge.net/wiki/NifSkope NifSkope Wiki] Wiki.
 
* [http://niftools.sourceforge.net/wiki/NifSkope NifSkope Wiki] Wiki.
 
* [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/45444/? Tutorials on Screenshots, NifSkope, Outfit creation and Posing by jonas opines] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/45444/? Tutorials on Screenshots, NifSkope, Outfit creation and Posing by jonas opines] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/63770/? Nifskope Testing Skeleton] by clanky4. Mod for testing animations in NifSkope only.
 
* [http://www.nexusmods.com/newvegas/mods/63770/? Nifskope Testing Skeleton] by clanky4. Mod for testing animations in NifSkope only.
 +
 +
<span id="Tip-ConvertNIFHeader"></span>
 +
==== TIP Convert NIF header ====
 +
: Thanks to '''pixelhate''' of the Nexus Fallout "New Vegas Mod Troubleshooting" forum for the basis of the following:
 +
<div name="Note Box" class="boilerplate metadata" id="Notice Box"
 +
style="margin:0px 10px 10px 10px;border:1px dashed #DAA520;color: lightgray;
 +
background-color:#333333;padding:3px;
 +
word-wrap: break-word;      /* Internet Explorer 5.5+ */
 +
">When you want to change the header of your custom mesh from "NiNode" to "BSFadenode" (because it prevents your object from moving, etc.) or vice versa:
 +
Select the '''NiNode''', <Right Click>, select "Block | Convert", and choose your node type.
 +
</div>
  
 
<span id="Tip-ModelMashups"></span>
 
<span id="Tip-ModelMashups"></span>
Line 3,152: Line 3,259:
  
 
[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://geck.foesmm.org/index.php/Category:Conditions GECK Category: Conditions] Wiki.
+
* [http://geckwiki.com/index.php/Category:Conditions GECK Category: Conditions] Wiki.
* [http://geck.technodeep.net/index.php/Category:Tutorials GECK Category: Tutorials page] Wiki.
+
* [http://geckwiki.com/index.php/Category:Tutorials GECK Category: Tutorials page] Wiki.
* [http://geck.foesmm.org/index.php/Adding_an_Options_Menu GECK: Adding an Options Menu Tutorial]
+
* [http://geckwiki.com/index.php/Adding_an_Options_Menu GECK: Adding an Options Menu Tutorial]
* [http://geck.technodeep.net/index.php/Bethsoft_Tutorial_Basic_Quest GECK: Bethsoft Tutorial Basic Quest]
+
* [http://geckwiki.com/index.php?title=Bethsoft_Tutorial_Basic_Quest GECK: Bethsoft Tutorial Basic Quest]
 
* [http://www.nexusmods.com/newvegas/mods/45278/? GECK: Companion by Caprius] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/45278/? GECK: Companion by Caprius] Mod.
* [http://geck.foesmm.org/index.php/List_of_Global_Variables GECK: Global Variable]
+
* [http://geckwiki.com/index.php/List_of_Global_Variables GECK: Global Variable]
 
* [http://youtu.be/3Bauvvmo31g GECK: Making a Counter by Seddon4494] (for tracking scripts.) Video.
 
* [http://youtu.be/3Bauvvmo31g GECK: Making a Counter by Seddon4494] (for tracking scripts.) Video.
* [http://geck.technodeep.net/index.php/Notes GECK: Notes]
+
* [http://geckwiki.com/index.php/Notes GECK: Notes]
 
* [http://www.youtube.com/watch?v=zDE4yHOz0cQ GECK: Script to Spawn/Enable NPCs at a Certain Time] Video.
 
* [http://www.youtube.com/watch?v=zDE4yHOz0cQ GECK: Script to Spawn/Enable NPCs at a Certain Time] Video.
* [http://geck.technodeep.net/index.php/Scripting_for_Beginners GECK: Scripting for Beginners] Wiki.
+
* [http://geckwiki.com/index.php/Scripting_for_Beginners GECK: Scripting for Beginners] Wiki.
 
* [http://www.youtube.com/watch?v=APnz-qdQxfQ Tutorial - Scripting Notes] Video by '''Seddon4494'''.
 
* [http://www.youtube.com/watch?v=APnz-qdQxfQ Tutorial - Scripting Notes] Video by '''Seddon4494'''.
 
* [http://www.youtube.com/watch?v=RLrV-R_0hnY Making something happen every day] Video by '''Seddon4494'''.
 
* [http://www.youtube.com/watch?v=RLrV-R_0hnY Making something happen every day] Video by '''Seddon4494'''.
Line 3,168: Line 3,275:
 
:* [http://www.gribbleshnibit.com/projects/NVSEDocs/# NVSE Documentation] by gribbleshnibit.
 
:* [http://www.gribbleshnibit.com/projects/NVSEDocs/# NVSE Documentation] by gribbleshnibit.
 
:* [http://geck.bethsoft.com/index.php?title=MessageBoxEx NVSE MessageBoxEx function] Wiki.
 
:* [http://geck.bethsoft.com/index.php?title=MessageBoxEx NVSE MessageBoxEx function] Wiki.
:* [http://geck.foesmm.org/index.php/Con_SCOF NVSE: Con_SCOF]
+
:* [http://geckwiki.com/index.php/Con_SCOF NVSE: Con_SCOF]
:* [http://geck.foesmm.org/index.php/Debug_Dumps NVSE: Debug Dumps]
+
:* [http://geckwiki.com/index.php/Debug_Dumps NVSE: Debug Dumps]
 
:* [http://www.cipscis.com/fallout/tutorials/detecting_keypresses.aspx NVSE: Detecting Keypresses] Wiki.
 
:* [http://www.cipscis.com/fallout/tutorials/detecting_keypresses.aspx NVSE: Detecting Keypresses] Wiki.
:* [http://geck.foesmm.org/index.php/SetDebugMode NVSE: SetDebugMode]
+
:* [http://geckwiki.com/index.php/SetDebugMode NVSE: SetDebugMode]
 
* [http://fallout.gamepedia.com/Pip-Boy_3000 Pipboy Tabs]
 
* [http://fallout.gamepedia.com/Pip-Boy_3000 Pipboy Tabs]
 
* [http://cs.elderscrolls.com/index.php?title=Performance_Problems TES: Script Performance Problems] TES Construction Set Wiki.  Some things on this site are obsolete information as regards the GECK.
 
* [http://cs.elderscrolls.com/index.php?title=Performance_Problems TES: Script Performance Problems] TES Construction Set Wiki.  Some things on this site are obsolete information as regards the GECK.
Line 3,232: Line 3,339:
  
 
: Example:
 
: Example:
<pre>
+
<div name="Simulated code box" class="boilerplate metadata" id="Warning Notice"
short bFoundJohn
+
style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;"
int bFoundJohn
+
/* Remove the next four 'white-space' lines to restore default white-space processing. */
</pre>
+
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+ */
 +
">
 +
short bFoundJohn
 +
int bFoundJohn
 +
</div>
 
* f - a ''float'' is a variable that can store numbers that are in between integers.  Essentially, numbers that can have decimal values (e.g. "1.001").  Some functions will return a number that is in between two integers, and if you want to store that value as a variable for use in your script, it generally must be declared as a ''float'' variable.  A popular one is '''GetSecondsPassed''' for example.
 
* f - a ''float'' is a variable that can store numbers that are in between integers.  Essentially, numbers that can have decimal values (e.g. "1.001").  Some functions will return a number that is in between two integers, and if you want to store that value as a variable for use in your script, it generally must be declared as a ''float'' variable.  A popular one is '''GetSecondsPassed''' for example.
  
 
: Example:
 
: Example:
<pre>
+
<div name="Simulated code box" class="boilerplate metadata" id="Warning Notice"
float fTimer
+
style="margin:0px 10px 10px 30px; border:1px dashed #DAA520; color: lightgray; background-color:#424242; padding:3px;"
</pre>
+
/* 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+ */
 +
">
 +
float fTimer
 +
</div>
 
* i - an ''int'' variable is the same as a ''short'' variable, but we only use the 'i' prefix so that we can use the 's' prefix to denote a ''string'' variable, which we'll talk about in a minute.  ''Int/short'' variables can only be integers, or whole numbers.  If you try to use one to store a value that should be a ''float'', it may round down (truncate) to the nearest whole number or it may just not work.  These are the most common variables for our use.
 
* i - an ''int'' variable is the same as a ''short'' variable, but we only use the 'i' prefix so that we can use the 's' prefix to denote a ''string'' variable, which we'll talk about in a minute.  ''Int/short'' variables can only be integers, or whole numbers.  If you try to use one to store a value that should be a ''float'', it may round down (truncate) to the nearest whole number or it may just not work.  These are the most common variables for our use.
  
Line 3,294: Line 3,417:
 
: <span style="color: red; background-color:#fff5f5;">WARNING: Mixing up ''references'' and ''base objects'', especially when assigning them to arrays, is one of the most common and lethal mistakes in '''Gamebryo''' scripting.  Always double check what the '''''type''''' of value any function you are using to assign them to an array is returning.  Unfortunate results can become baked into save game files, causing bloat.  The only remedy in such cases seems to be deletion of the ".nvse" file for the "save game" when it occurs, which will affect other mods which depend upon information saved in it with unpredictable results.</span>
 
: <span style="color: red; background-color:#fff5f5;">WARNING: Mixing up ''references'' and ''base objects'', especially when assigning them to arrays, is one of the most common and lethal mistakes in '''Gamebryo''' scripting.  Always double check what the '''''type''''' of value any function you are using to assign them to an array is returning.  Unfortunate results can become baked into save game files, causing bloat.  The only remedy in such cases seems to be deletion of the ".nvse" file for the "save game" when it occurs, which will affect other mods which depend upon information saved in it with unpredictable results.</span>
  
* r - ''reference'' variables store a reference to an instance of an object placed in the game world.  This is often an actor or a specific object that you'll need to refer to later in your script.
+
* r - ''reference'' variables can store either a ''reference form'' or a ''base form''.  ''Base forms'' are the original "template" form as it was created in '''GECK''', BEFORE placing it in the game world.  ''Reference forms'' are specific instances of a ''base form'' AFTER they have been placed in the game world.  (There can be many ''reference forms'' of the same ''base form''.)  Their relationship to ''reference variables'' is that of a specific actor or object that you'll need to refer to later in your script. (See the [[#GECK_Form-ID_Base-ID_Ref-ID_and_Editor-ID|GECK Form-ID Base-ID Ref-ID and Editor-ID]] section.)
  
 
: Example:
 
: Example:
Line 3,309: Line 3,432:
 
ref rTarget  ; often the choice for functions like '''GetOwnerLastTarget'''
 
ref rTarget  ; often the choice for functions like '''GetOwnerLastTarget'''
 
</div>
 
</div>
: Note you can use a different prefix with the same variable name (e.g. see the various "DoOnce" definitions under "i - integer"), and the '''GECK''' will treat them as distinct, separate entities. (But note "short DoOnce" and "int DoOnce" are not unique variable names.  They are defining the same variable name to the same type.)  However, that can get very confusing after awhile and is not recommended as a casual practice.  But it can have it's place.
+
Note you can use a different prefix with the same variable name (e.g. see the various "DoOnce" definitions under "i - integer"), and the '''GECK''' will treat them as distinct, separate entities. (But note "short DoOnce" and "int DoOnce" are not unique variable names.  They are defining the same variable name to the same type.)  However, that can get very confusing after awhile and is not recommended as a casual practice.  But it can have it's place.
 +
</div>
 +
 
 +
<span id="Tip-SaveBloat"></span>
 +
 
 +
==== Tip '''Best Practice''' Avoiding Save Game Bloat ====
 +
<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+ */
 +
">'''LuthienAnarion''' (of the '''JIP LN NVSE Plugin''') reports the game saves data about every reference in every cell you have ever visited.  Save files are supposed to get larger and larger as you explore more and more locations (called "bloat"), and their size is something the player should not normally concern themselves with.  (Save Files in the tens of MB are common.)  Bloat is less of a problem for '''FO3/FNV''' than it is for '''Skyrim''' because scripts are not included in the save game files.  However, script authors should still try to avoid adding to it wherever possible using the following '''best practices'''.
 +
 
 +
[http://geckwiki.com/index.php?title=Ar_Null Ar Null]: As of '''NVSE 4.6.2''', arrays defined in [http://geckwiki.com/index.php?title=User_Defined_Function UDF] scripts are cleaned up automatically, '''but those held in other scripts are not'''. Therefore it is essential to use ''Ar_Null'' to clear any local array variables when other scripts terminate to avoid save game bloat.
 +
 
 +
[http://geckwiki.com/index.php?title=Sv_Destruct Sv_Destruct] the local string variables or they can cause save game bloat.
 +
 
 +
[http://geckwiki.com/index.php?title=Disable Disable] does not remove references from the game, just stops them from rendering. Do not rely on ''Disable'' to prevent savegame bloat by removing references.
 +
 
 +
[http://geckwiki.com/index.php?title=MarkForDelete MarkForDelete] should be used to remove '''temporary references''' from the game.  '''GECK''' Editor placed objects cannot be deleted.
 +
 
 +
Excessive use of ''repeatable quest stages'' causes load time problems in some cases. The effect should be apparent after only a few hours of play. Low quest delays seem to affect it. '''Roy Batterian''' (of '''TTW''', '''4GB Patcher''', and 30+ mods) has never been able to determine the exact circumstances under which it occurs so he has just quit using them and uses functions instead.  ''Quest stages'' are "save baked", so perhaps this is behind it.
 +
 
 +
[http://geckwiki.com/index.php?title=PlaceAtMe PlaceAtMe] and [http://geckwiki.com/index.php?title=PlaceLeveledActorAtMe PlaceLeveledActorAtMe] should be used sparingly, as they do create '''temporary references''', so once the player leaves the loaded cell and they are unloaded they will still remain in the save file as scripts cannot run on them to delete or reference them.
 +
 
 +
Actors should be ''spawned'' with '''spawn markers'''; having them initially disabled and then enabled will cause them to spawn immediately. If you want to do "waves of enemies" you can disable the '''spawn marker''' again and run resurrect on it (provided the spawned actor is dead and the marker is persistent), and then re-enable it.
 +
 
 +
''PlaceAtMe'' can also cause various '''havok''' problems like invincible creatures that have '''effect shaders''' and other weirdness: the '''Reavers''' in the "presidential metro" of '''Fallout 3''' is a good example of this bug.  It can also cause crashing due to memory problems and other stuff.  (See any mods with waves of enemies created this way; e.g. '''Someguy2000''''s '''The Better Angels''' exhibits this issue).
 +
 
 +
Tons of lootable items also cause save bloat as the state of the items is "baked" when they are taken.
 +
 
 +
Dropped items get "save baked" too, so it's best to put them in a container.
 +
 
 +
There is also the '''GECKWiki''' article [http://geckwiki.com/index.php?title=Causes_of_CTDs Causes of CTDs] authors should be aware of as well.
 
</div>
 
</div>
  
Line 3,651: Line 3,806:
 
When you want to do something affecting multiple Actors, such as providing a particular dialog option or behavior, instead of editing their scripts directly consider using an '''NVSE''' [http://geck.technodeep.net/index.php/Event_Handling Event Handler] instead (functionality added by '''NVSE 4.6+''').
 
When you want to do something affecting multiple Actors, such as providing a particular dialog option or behavior, instead of editing their scripts directly consider using an '''NVSE''' [http://geck.technodeep.net/index.php/Event_Handling Event Handler] instead (functionality added by '''NVSE 4.6+''').
  
'''EventHandlers''' provide the very powerful ability to "trick" the game engine into supplementing or overriding the limitations of the standard GECK "On<Event>" functions such as "OnAdd", "OnActivate", or "OnEquip" into running a script to emulate something else in a "User Defined Function" (UDF).  A simple example of this is the "Note EventHandler" script and UDF in [[#Tip-Notes|TIP: Passing a 'Note' to the player]], which is using this technique to "trick" the engine into running a script as if the note had been triggered by an "OnEquip" or "OnActivate" function without ever using that command; in this example instance by a mouse click or key press in a menu.  See also [[#Tip-HotKeyEventHandler|Tip: EventHandler-HotKey]].
+
'''EventHandlers''' provide the very powerful ability to "trick" the game engine into supplementing or overriding the limitations of the standard GECK "On<Event>" functions such as "OnAdd", "OnActivate", or "OnEquip" into running a script to emulate something else in a "User Defined Function" (UDF).  A simple example of this is the "Note EventHandler" script and UDF in [[#Tip-Notes|TIP: Passing a 'Note' to the player]], which is using this technique to "trick" the engine into running a script as if the note had been triggered by an "OnEquip" or "OnActivate" function without ever using either command. In this example instance: by a mouse click or key press in a menu instead.  See also [[#Tip-HotKeyEventHandler|Tip: EventHandler-HotKey]].
  
Note that just using an '''EventHandler''' isn't sufficient.  The normal activation event will still need to occur. You have to disable interaction with the target Actor first if you want to prevent dialog, somehow.  With '''JIP LN NVSE''' you can use the "SetInteractionDisabled" function.
+
Note that just using an '''EventHandler''' isn't sufficient.  The normal activation Event will still need to occur, usually by way of the [http://geckwiki.com/index.php/Activate Activate] function in your UDF. You have to disable interaction with the target Actor first if you want to prevent dialog, somehow.  With '''JIP LN NVSE''' you can use the [http://geckwiki.com/index.php/SetInteractionDisabled SetInteractionDisabled] function.
  
'''EventHandlers''' on objects are invoked ''before'' the actual event happens; hence the different timing for them compared to script blocks like "OnEquip".
+
'''EventHandlers''' on objects are invoked ''BEFORE'' the actual Event happens; hence the different timing for them compared to normal script blocks like "OnEquip" or "OnAdd".  Pay particular attention to any "Notes" on the function description pages for those Events, such as "OnAdd" requiring ''"an item to remain in the new container for at least one frame after it is added in order for the block to trigger"''.  You may need to use the '''JIP LN NVSE''' function [http://geckwiki.com/index.php/SetGameMainLoopCallback SetGameMainLoopCallback] (aka ''Callback'') to delay the execution of the Event trigger block by the number of frames you specify. (From experience, you need at least 2 frames of delay between taking an item and running a script on that item.  You will need to use [http://geckwiki.com/index.php/Auxiliary_Variables Auxiliary Variables] (aka ''Aux Vars''), by way of [http://geckwiki.com/index.php/AuxVarSetRef AuxiliaryVariableSetRef] to pass the Reference to the ''Callback'' function.)
  
The mod creator should not be concerned about using "script extenders" and their plugins.  Other than providing notice to the downloader of their mod that such are required, there are no "downsides" to using them as far as the game engine is concerned; and they provide fixes to some deep level engine bugs that can only be provided by something working at that level (which mods can't).  Almost any load order with more than a dozen mods is likely to already require their use.  They are a mod creator asset, providing enhanced capabilities.  Utilize them.
+
The mod creator should not be concerned about using "script extenders" and their plugins.  Other than providing notice to the downloader of their mod that such plugins are required, there are no "downsides" to using them as far as the game engine is concerned; and they provide fixes to some deep level engine bugs as well as needed functionality that can only be provided by something working at that level (which mods can't).  Almost any load order with more than a dozen mods is likely to already require their use.  They are a mod creator asset, providing enhanced capabilities.  '''Utilize them.'''
  
Please see the article [http://www.loverslab.com/topic/39417-tutorial-nvse4-part-5-event-handlers-user-defined-events-udes/ NVSE4+: Event Handlers & User-Defined Events (UDEs) - Part 5] by DoctaSax for details.
+
Please see the article [http://www.loverslab.com/topic/39417-tutorial-nvse4-part-5-event-handlers-user-defined-events-udes/ NVSE4+: Event Handlers & User-Defined Events (UDEs) - Part 5] by '''DoctaSax''' for details.
 
</div>
 
</div>
  
 
<span id="Tip-HotKeyEventHandler"></span>
 
<span id="Tip-HotKeyEventHandler"></span>
 +
 
==== Tip EventHandler for HotKey ====
 
==== Tip EventHandler for HotKey ====
 
: Thanks to '''FiftyTifty''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
: Thanks to '''FiftyTifty''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
Line 4,393: Line 4,549:
 
* [http://www.nexusmods.com/newvegas/images/104855/?changePreference=3 Guide - Blender and NifSkope weapon] by '''SGTbayk47'''.
 
* [http://www.nexusmods.com/newvegas/images/104855/?changePreference=3 Guide - Blender and NifSkope weapon] by '''SGTbayk47'''.
 
* [[Simple_vanilla_ironsights|Simple vanilla ironsights]] Wiki.
 
* [[Simple_vanilla_ironsights|Simple vanilla ironsights]] Wiki.
 +
* [http://www.nexusmods.com/newvegas/mods/66532 Tammer's Guide to NIF-Bashing] PDF and images tutorial by '''mc_tammer '''.
 
* [[Texturing_weapons_-_video_tutorial|Texturing weapons - video tutorial]] Video link in the wiki article.
 
* [[Texturing_weapons_-_video_tutorial|Texturing weapons - video tutorial]] Video link in the wiki article.
  
Line 4,905: Line 5,062:
 
*[http://www.nexusmods.com/fallout3/mods/5506 CMF Companion Tutorial] RTF by '''Darkfirebird CMF'''.  
 
*[http://www.nexusmods.com/fallout3/mods/5506 CMF Companion Tutorial] RTF by '''Darkfirebird CMF'''.  
 
*[http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Forum Thread by '''trilioth'''.  
 
*[http://forums.nexusmods.com/index.php?/topic/900821-fnv-companion-tutorial/ FNV Companion Tutorial] Forum Thread by '''trilioth'''.  
 +
*[http://geckwiki.com/index.php/Adding_items_to_vendors GECK: Adding items to vendors] Wiki tutorial.
 
*[http://geck.technodeep.net/index.php/AI_Packages_Tab GECK: AI package]  
 
*[http://geck.technodeep.net/index.php/AI_Packages_Tab GECK: AI package]  
 
*[http://www.youtube.com/playlist?list=PLo2FGzSVbkcPedlm9zZ981YvUy7DoSQew GECK: Companion Tutorial playlist by cgy95] Video series.  
 
*[http://www.youtube.com/playlist?list=PLo2FGzSVbkcPedlm9zZ981YvUy7DoSQew GECK: Companion Tutorial playlist by cgy95] Video series.  
Line 4,936: Line 5,094:
 
*[[#Tip-FaceFeatures|TIP: Switching Custom Facial Features.]]  
 
*[[#Tip-FaceFeatures|TIP: Switching Custom Facial Features.]]  
 
*[[#Tip-MakingNPCs|TIP: Trick with making NPCs.]]  
 
*[[#Tip-MakingNPCs|TIP: Trick with making NPCs.]]  
*[[#TIP-AIPackages|TIP: Using AI Packages.]]  
+
*[[#TIP-AIPackages|TIP: Using AI Packages.]]
  
 
=== Refs [[#Dialogue_.26_Lip-synch|Dialogue & Lip-synch]] ===
 
=== Refs [[#Dialogue_.26_Lip-synch|Dialogue & Lip-synch]] ===

Latest revision as of 06:13, 19 April 2019


Contents

Overview

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

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

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

Programs and Tools

GECK Tools

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


Image Tools

  • Category:Tools on Nexus Mods wiki has articles on various aspects of the primary tools you will be using. Check it out as well.
  • 3DS Max (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.) Commercial product by AutoDesk but the version that works with Nif files isn't free. Versions after 2013 don't seem to work with at least Fallout 4 (according to this thread) using the included official NIF exporter, though there is an unofficial "Figment" exporter plugin fork on GitHub which does seem to work.
  • Blender v2.49b (freeware.) This download includes ALL related files and compatible versions. This is the "complete" package for creating meshes for Bethesda games; including:
Python 2.6.5
Blender NIF Scripts 2.5.5
NifSkope 1.0.22
PyFFI 1.1.5
"Noob to Pro" PDF tutorial.
Check out the "Optional" files section for some additional functionality. Recommended for FO3/FNV.
  • Blender v2.49b Portable by Room207 is also a "complete" package that is preferred by some for it's convenience. Includes:
Python 2.6.6
Pyffi 2.1.11
NIFscripts 2.5.9
True Normals by Anthony D'Agostino
Geom Plugin 0.5
Mesh Ascii Plugin
UDK Scripts
Blender Tools 1.01 by Kormgar
Blender TRI file scripts and Tutorial by Kapaer and Deedes
  • DXTBmp Texture Tool (freeware.) Images can be passed to any Paint program for editing in 24 bit and then re-imported and saved in any of the 16/24/32 bit formats. Transparency (Alpha) channel of textures can be viewed and edited separately from the main image.
  • GIMP: GNU Image Manipulation Program (freeware.) A cross-platform image (texture) editor available for GNU/Linux, OS X, Windows and more operating systems. Provides extensions through integration with many programming languages including Scheme, Python, Perl, and more. The result is a high level of customization as demonstrated by the large number of scripts and plug-ins created by the community.
  • Hairs - Eyes - Races Auto - Patcher (Mod.) Extracts all the hair / eyes / races records from every plugin loaded in your load order - then, it rewrites the list of eyes and hairs for every race found. So, if you untick / unflag a hair mod from your load order, these records won't be loaded by the game itself and consequently won't be found by this mod because they don't exist.
  • LOD/VWD Overview TESTG site wiki.
  • Maya (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.) Animation, modeling, simulation, and rendering software by AutoDesk.
  • MindTex2 ($20) by Frozen Flame. MindTex is a normal map generation utility for game developers and 3d professionals. Built to rival the competition in quality without the steep price, whether you want to generate a normal, height, specular, gloss, self-illumination, occlusion, or reflection map, you can easily do it in seconds flat from a single source texture with MindTex.
  • Mod Kit - Resource for Modders by pixelhate. Some nif & textures used as references in various Modding situations, including the "invisible activator".
  • NIF tangents and binormals updater (freeware) by zilav. A command line tool to batch update tangents/binormals in Oblivion, Fallout 3, New Vegas, Skyrim, Skyrim Special Edition and Fallout 4 format NIF meshes. The one in NifSkope doesn't handle degenerate normals, such as if your NIF has a lot of texture tiling. It also gives all around better results especially for people who use Blender and cannot reset the normals and smooth them because it lacks the features to do so.
  • NifSkope (freeware.) A graphical program that allows you to open NIF files, view their contents, edit them, and write them back out again. You can use it to quickly make changes to specific properties of a NIF file such as changing the texture, adding translucency, and more. A 3D view of the contents of the NIF file allows you to preview your changes instantly. You can even create texture templates, and import & export OBJ files. (Note: This link is the latest release and may not be the best choice for FO3/FNV. A fully compatible version of this tool (v1.0.22) is already included in the Blender v2.49b package linked here.)
  • NifSkope v1.3.3 (revision36efdd) (freeware.) A later version than that bundled in the Blender v2.49b package (with EXE and features referred to in many tutorials that are missing in even newer (v2.0+) releases, such as "import/export .OBJ files"). Fully compatible with that Blender package, and more "shader flags" are identified. While both versions of NifSkope can be installed, only one can be used at a time. Recommended for FO3 and FNV (along with the NifTools XML Format version 0.7.0.0, which has the essential "differentiated color for Collision"). Recommended for FO3/FNV.
  • NifTools Wiki (freeware.) 3D package plugins for 3ds Max, Blender, and Maya modelling tools. Note: this link will have the latest release versions. The versions bundled in the Blender v2.49b package are all mutually compatible.
  • The NifTools XML Format (documentation.) Used to extend NifSkope to open files from new games, or better understand files from games which it can already open. Version 0.7.0.0 recommended for FO3/FNV.
  • Paint.NET (freeware.) Image and photo (texture) editing software for Windows, originally based upon the Paint program included as part of Windows, but with many enhanced features such as "layers", special effects, and unlimited history ("undo"). Require Microsoft's .NET Framework 4.6+.

Packaging Tools

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

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

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

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

Scripting Tools

  • CIPSCIS Script Validator (freeware.) Allows you to quickly indent your script while simultaneously checking it for several basic errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas, but is not "script extender" aware. Includes it's own tutorials.
  • New Vegas Script Extender (NVSE) Site.

Sound and Voice Tools

Misc Other Tools

  • 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.
  • Gamesettings profiler Mod. Adds intuitive, app-like, modding tool for debugging, testing, profiling, and dumping\printing to file any numeric GMST (gamesettings) records.
  • Tree LOD billboard creator for xLODGen by zilav
  • xEdit/FNVEdit (freeware.) A generic tool called xEdit which is renamed for working with specific games. The latest "stable" release is on the Nexus, generally under the game name version or as "TES5Edit".

Details

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Common Problems with GECK

Issue - Where to obtain the GECK

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

Issue - GeckCustom INI file

The "GeckCustom.ini" may not get created in the "C:\Users\<YourAccountName>\Documents\My Games\FalloutNV" folder until you save your first modified file; not merely close GECK as some have reported. NOTE that as you have to run GECK as an "Administrator", the "C:\Users\..." folder with the INI file will be for the "Administrator" account. This can cause confusion as to where to look.

See also the wiki GECK: Tips and Tricks article.

TIP - GECKCustom INI may be missing

TIP - Disable Audio in GECK