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

From Nexus Mods Wiki
Jump to: navigation, search
m (TIP Assigning and Testing variables)
m (TIP Best Practice Type prefixes for Variables: formatting)
 
(49 intermediate revisions by the same user not shown)
Line 263: Line 263:
  
 
"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 574:
  
 
(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,047:
 
=== 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,460: Line 1,468:
 
* [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://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.
 
* [http://geck.technodeep.net/index.php/Creating_a_new_vendor GECK: Creating a new vendor] Wiki tutorial.
 
* [http://geck.technodeep.net/index.php/Creating_a_new_vendor GECK: Creating a new vendor] Wiki tutorial.
Line 1,672: Line 1,681:
  
 
<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,742: Line 1,751:
 
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,758: Line 1,769:
 
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,765: Line 1,776:
  
 
==== TIP Merchant Inventory ====
 
==== TIP Merchant Inventory ====
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" 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 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+ */
">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.
+
">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.
 +
 
 +
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 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.
  
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).
+
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).
  
 
The tested conditions determining what can be sold are:
 
The tested conditions determining what can be sold are:
 
# 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.
 
# 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.
 
# These items do not need to be in containers.
# Additionally, the merchant's own personal inventory is an "owned container", and anything reverse-pick-pocketted onto their person (or presumeably added via script, though this was not tested) becomes part of their barter menu.
+
# 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.)
 
# 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.
 
# 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.
Line 1,787: Line 1,806:
 
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.
 
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 (typically below "ground level").  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).
+
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.
 
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>
 +
 +
<span id="TIP-CompanionXP"></span>
 +
 +
==== 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"
 +
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+ */
 +
">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.
 
</div>
 
</div>
  
Line 1,856: Line 1,886:
 
* 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,885: Line 1,934:
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
[When linking to a Video, be sure to check the page sidebar for additional, related subject videos.]
 
* [http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Thread.
 
* [http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Thread.
* [http://www.youtube.com/watch?v=NWtIRBPVedw GECK: Tutorial - Dialog and Lip Synch] Video by Seddon4494.
+
* [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.
 +
* [http://addons.mozilla.org/en-US/firefox/addon/text-to-voice/ FireFox Text-to-Speech Addon] Firefox plugin w/downloadable audio.
 +
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. Alternative to either Skyrim or Oblivion Lip-sun generator for FNV.  NOTE: This must be installed under the "Data\Sound\voice\processing" folder.
 
* [http://www.youtube.com/watch?v=zK09aDY8FHY GECK: Advanced Dialogue: Topic with multiple sub-topics] Video by Seddon4494.
 
* [http://www.youtube.com/watch?v=zK09aDY8FHY GECK: Advanced Dialogue: Topic with multiple sub-topics] Video by Seddon4494.
* [http://www.youtube.com/watch?v=haHdenMkeOw GECK: Companion Idle Chatter] video.
+
* [http://www.youtube.com/watch?v=haHdenMkeOw GECK: Companion Idle Chatter] Video.
 
* [http://www.moddb.com/mods/explorer/tutorials/geck-custom-holotape-voice GECK: Custom Holotape + Voice] Wiki.
 
* [http://www.moddb.com/mods/explorer/tutorials/geck-custom-holotape-voice GECK: Custom Holotape + Voice] Wiki.
 +
* [http://youtu.be/NWtIRBPVedw GECK: Dialog and Lip Synch] Video.
 +
* [http://www.youtube.com/watch?v=NWtIRBPVedw GECK: Dialog and Lip Synch Tutorial] Video by Seddon4494.
 +
* [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.
 
* [http://geck.bethsoft.com/index.php?title=Quest_and_Dialogue_Tutorial GECK: Dialogue Tutorial] Wiki.
* [http://youtu.be/NWtIRBPVedw GECK: Dialogue and Lip Synch] Video.
 
* [http://www.youtube.com/watch?v=NvQCChzifyQ GECK: Dialogue with Lip Files] Video.
 
 
* [http://www.youtube.com/watch?v=BQdUQmIdvUc GECK: How to make an NPC with Basic Dialogue] Video.
 
* [http://www.youtube.com/watch?v=BQdUQmIdvUc GECK: How to make an NPC with Basic Dialogue] Video.
 
* [http://forums.nexusmods.com/index.php?/topic/826465-idle-animation-list/ GECK: Idle Animation List] Forum Thread.
 
* [http://forums.nexusmods.com/index.php?/topic/826465-idle-animation-list/ GECK: Idle Animation List] Forum Thread.
 
* [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video.
 
* [http://www.youtube.com/watch?v=rcqbF0zpxtQ GECK: NPCs talk to each other] Video.
* [http://www.nexusmods.com/newvegas/mods/61248/? FonixData.cdf ( Easier .Lip Files ) by DingraThePishvaz] Mod. Alternative to either Skyrim or Oblivion Lip-sun generator for FNV.  NOTE: This must be installed under the "Data\Sound\voice\processing" folder.
 
 
* [http://www.nexusmods.com/newvegas/mods/48239/? Guide to fix the lip sync function in the GECK by Capt Mitch] Text file, using Skyrim Lip-sync tool.  Oblivion Lip-sync tool will work as well, but is not as good as Skyrim's.
 
* [http://www.nexusmods.com/newvegas/mods/48239/? Guide to fix the lip sync function in the GECK by Capt Mitch] Text file, using Skyrim Lip-sync tool.  Oblivion Lip-sync tool will work as well, but is not as good as Skyrim's.
 
* [http://www.nexusmods.com/newvegas/mods/63317/? Lazy Voice Finder - FInd voice assets just you want] Mod.
 
* [http://www.nexusmods.com/newvegas/mods/63317/? Lazy Voice Finder - FInd voice assets just you want] Mod.
 
* [http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal Online Text to Speech Demo] Web site.
 
* [http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal Online Text to Speech Demo] Web site.
* [http://addons.mozilla.org/en-US/firefox/addon/text-to-voice/ FireFox Text-to-Speech Addon] Firefox plugin w/downloadable audio.
+
* [http://www.youtube.com/watch?v=NvQCChzifyQ Qenosa's Tutorial on Dialogue and NPC creation] Video.
* [http://www.nexusmods.com/newvegas/mods/63034/? FEEL - Facial Expression Editor (Limited - pfft...) by Fallout 2AM] in-game facial expression editor.
 
  
 
<span id="Tip-GenericDialog"></span>
 
<span id="Tip-GenericDialog"></span>
Line 1,920: Line 1,971:
 
</div>
 
</div>
  
<span id="Tip-Translators"></span>
+
<span id="Tip-BatchLips"></span>
====TIP Conversation or Quest system====
+
==== TIP Batch Lip file generation ====
: Thanks to '''madmongo''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the following:
+
: 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"  
 
<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'''.
+
">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.
  
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.
+
:: <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>
 +
 
 +
<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 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 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'''.
 +
 
 +
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.
 
</div>
 
</div>
  
Line 2,036: Line 2,111:
 
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".
 
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
 
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
 +
</div>
 +
 +
<span id="Tip-SayOnce"></span>
 +
==== TIP '''Say Once''' use ====
 +
: 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.
 +
 +
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>
 
</div>
  
Line 2,045: Line 2,132:
 
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'''.
 
">Certain bits of dialog are standard, but have to be added from the correct tab in the '''Quest Stages'''.
* ''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.  It does not appear again.  Do not confuse it with ''Hello'' which is all actors' way to start conversations.  See the Community GECK wiki topic [http://geck.technodeep.net/index.php/Quest_and_Dialogue_Tutorial Quest and Dialogue Tutorial].
+
See the following references:
* 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.  See the Community GECK wiki topic [http://geck.technodeep.net/index.php/How_to_script_conversation_between_two_or_more_NPCs How to script conversation between two or more NPCs].
+
* [http://geckwiki.com/index.php/Quest_and_Dialogue_Tutorial Quest and Dialogue Tutorial], in particular the "Dialogue Topics" section.
* You will need "sound" (and corresponding ".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.
+
* [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://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:
 +
:* '''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.
 +
 
 +
The following is intended to help clarify the above GECKWiki pages:
 +
* ''GREETING'' only shows up as an option in the ''topics tab'' of your Quest when you < right-click > on the '''Topics''' tab in the left-hand pane of the GECK "Object Window" under the "Actor Data/Quest" section; and then also select/highlight the ''info response'' field in the top right-hand pane: where it shows a piece of the text and conditions.  Then you go to that small "list box" on the right side labeled "Add Topic"  and < right-click > in there to select from the list of existing ''topics'', or select '''New''' to add a completely new one.  In case it isn't clear: this ''GREETING'' is the NPC's first response when the Player first initiates dialog.  If you enable (check) the "SayOnce" box, it does not appear again '''''for that Actor'''''.  It can appear for another Actor which meets any qualifying conditions.  Do not confuse it with ''Hello'' which is all actors' way to start conversations, but usually only between NPCs.
 +
* 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".
 
* 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" ''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".
+
* 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.
+
* "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.
 
* 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>
 +
 +
<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>
  
Line 2,480: Line 2,593:
 
[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.]
  
==== > 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.)
Line 2,487: Line 2,600:
 
'''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.)  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.)
  
 
<span id="Tip-ESMOnly"></span>
 
<span id="Tip-ESMOnly"></span>
Line 2,544: Line 2,659:
 
</div>
 
</div>
  
==== > Factions and Reputation ====
+
==== Factions and Reputation ====
 
* [http://www.youtube.com/watch?v=5f-x2ws6ySo GECK: Factions/Reputation] Video.
 
* [http://www.youtube.com/watch?v=5f-x2ws6ySo GECK: Factions/Reputation] Video.
==== > GIMP Posters and Images ====
+
==== GIMP Posters and Images ====
 
* [[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'' ====
  
===== > How to create a challenge =====
+
===== How to create a challenge =====
 
* [[How_to_create_a_challenge|How to create a challenge]] Wiki.
 
* [[How_to_create_a_challenge|How to create a challenge]] Wiki.
  
===== > How to create a message =====
+
===== How to create a message =====
 
* [[How_to_create_a_message|How to create a message]] Wiki.
 
* [[How_to_create_a_message|How to create a message]] Wiki.
  
===== > 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'' =====
 
* [http://geck.bethsoft.com/index.php?title=Creating_Primitives How to create a Primative (activators, trigger volumes, multibounds, and occlusion planes)] Wiki.
 
* [http://geck.bethsoft.com/index.php?title=Creating_Primitives How to create a Primative (activators, trigger volumes, multibounds, and occlusion planes)] Wiki.
  
 
<span id="Tip-TransparentActivators"></span>
 
<span id="Tip-TransparentActivators"></span>
===== > Tip Transparent Activators =====
+
====== Tip Transparent Activators ======
 
: Thanks to '''EPDGaffney''' and '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''EPDGaffney''' and '''pixelhate''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 2,580: Line 2,697:
 
</div>
 
</div>
  
===== > How to make a working pipboy icon =====
+
===== How to make a working pipboy icon =====
 
* [[How_to_make_a_working_pipboy_icon|How to make a working pipboy icon]] Wiki.
 
* [[How_to_make_a_working_pipboy_icon|How to make a working pipboy icon]] Wiki.
  
 
<span id="Tip-PipboyIcons"></span>
 
<span id="Tip-PipboyIcons"></span>
===== > Tip Pipboy Icons =====
+
=====Tip Pipboy Icons ======
 
: Thanks to '''Leakingroof''' of the Nexus Fallout3 forum for the wiki article, and '''scrivener07''' of the New Vegas Mod Talk forum for the basis of the following:
 
: Thanks to '''Leakingroof''' of the Nexus Fallout3 forum for the wiki article, and '''scrivener07''' of the New Vegas Mod Talk forum for the basis of the following:
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
 
<div name="Note Box" class="boilerplate metadata" id="Notice Box"  
Line 2,597: Line 2,714:
 
</div>
 
</div>
  
<span id="Tip-MoveQuestNPC"></span>
+
===== How to Move a Quest NPC =====
===== > Tip Moving a Quest NPC =====
 
 
: Thanks to '''madmongo''' and '''kingbeast88''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 
: Thanks to '''madmongo''' and '''kingbeast88''' 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"  
Line 2,609: Line 2,725:
 
</div>
 
</div>
  
==== > Import Custom Videos ====
+
==== Import Custom Videos ====
 
* [[Importing_custom_videos_into_FNV/F3/Skyrim/Oblivion|Importing custom videos into FNV/F3/Skyrim/Oblivion]] Wiki.
 
* [[Importing_custom_videos_into_FNV/F3/Skyrim/Oblivion|Importing custom videos into FNV/F3/Skyrim/Oblivion]] Wiki.
  
==== > Item Creation and placement ====
+
==== Item Creation and placement ====
 
* [[Item_creation_and_placement|Item creation and placement]] Wiki.
 
* [[Item_creation_and_placement|Item creation and placement]] Wiki.
  
==== > Make Readius Screenglares ====
+
==== Make Readius Screenglares ====
 
* [[Making_Pipboy_Readius_screenglares|Making Pipboy Readius screenglares]] Wiki.
 
* [[Making_Pipboy_Readius_screenglares|Making Pipboy Readius screenglares]] Wiki.
  
 
<span id="Tip-NewMarkers"></span>
 
<span id="Tip-NewMarkers"></span>
==== > Markers ====
+
==== Markers ====
 
* [http://geck.bethsoft.com/index.php?title=Markers GECK: Markers] Wiki.
 
* [http://geck.bethsoft.com/index.php?title=Markers GECK: Markers] Wiki.
 
* [http://fallout.wikia.com/wiki/Dummy_Cell_for_Scripted_XMarkers Dummy Cell for Scripted XMarkers] Wiki.
 
* [http://fallout.wikia.com/wiki/Dummy_Cell_for_Scripted_XMarkers Dummy Cell for Scripted XMarkers] Wiki.
Line 2,631: Line 2,747:
  
 
<span id="Tip-PortableMarkers"></span>
 
<span id="Tip-PortableMarkers"></span>
==== TIP Portable xMarkers ====
+
===== TIP Portable xMarkers =====
 
<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,638: Line 2,754:
 
">Suppose you want an NPC's "home" to be changeable to a new location.  You can either place different xMarkers at the potential sites, or use a "creature" that is initially "disabled" for your Marker.  Static objects like the default XMarker object cannot be moved, but a "persistent creature" set as a "quest object" can be moved and assigned as a "marker".  Then drop the "marker/creature" in the new "home" cell. "Creature" positions are always updated in the game, whereas static objects are not, so you don't need to use the "enable/disable" trick to update their location.  You then assign a "GoHome" travel AI Package to the marker as it's destination, and another "sandbox behavior" AI Package to let it wander the immediate area of the marker.  See the wiki article [http://geck.technodeep.net/index.php/Bethsoft_Tutorial_NPC_population GECK: Bethsoft Tutorial NPC population].</div>
 
">Suppose you want an NPC's "home" to be changeable to a new location.  You can either place different xMarkers at the potential sites, or use a "creature" that is initially "disabled" for your Marker.  Static objects like the default XMarker object cannot be moved, but a "persistent creature" set as a "quest object" can be moved and assigned as a "marker".  Then drop the "marker/creature" in the new "home" cell. "Creature" positions are always updated in the game, whereas static objects are not, so you don't need to use the "enable/disable" trick to update their location.  You then assign a "GoHome" travel AI Package to the marker as it's destination, and another "sandbox behavior" AI Package to let it wander the immediate area of the marker.  See the wiki article [http://geck.technodeep.net/index.php/Bethsoft_Tutorial_NPC_population GECK: Bethsoft Tutorial NPC population].</div>
  
==== > PAINTdotNET ''Normal Maps'' ====
+
==== PAINTdotNET ''Normal Maps'' ====
 
* [http://tesalliance.org/forums/index.php?/tutorials/article/119-graphic-artistry-normal-maps-in-paintnet/ Graphic Artistry: Normal Maps in Paint.Net] Tutorial.
 
* [http://tesalliance.org/forums/index.php?/tutorials/article/119-graphic-artistry-normal-maps-in-paintnet/ Graphic Artistry: Normal Maps in Paint.Net] Tutorial.
  
==== > Recipes ====
+
==== Recipes ====
 
* [http://youtu.be/-jDloCLWFYc GECK: Making a Recipe] Video.
 
* [http://youtu.be/-jDloCLWFYc GECK: Making a Recipe] Video.
  
==== > UV Mapping ====
+
==== UV Mapping ====
 
* [[UV_Mapping:_An_Explanation|UV Mapping: An Explanation]] Wiki.
 
* [[UV_Mapping:_An_Explanation|UV Mapping: An Explanation]] Wiki.
 
* [[Making_square_UV_maps_in_Blender|UV Mapping: Making square UV maps in Blender]] Wiki.
 
* [[Making_square_UV_maps_in_Blender|UV Mapping: Making square UV maps in Blender]] Wiki.
  
==== > XML ====
+
==== XML ====
 
XML is a "data definition" structure, based upon a "data schema" which was defined by Bethesda.  They didn't publish their "schema", but some things have been learned about it.  However, without a published scheme, you must either use only elements found in other XML files, or be willing to experiment.
 
XML is a "data definition" structure, based upon a "data schema" which was defined by Bethesda.  They didn't publish their "schema", but some things have been learned about it.  However, without a published scheme, you must either use only elements found in other XML files, or be willing to experiment.
 
* [http://www.w3schools.com/xml/ W3School's XML Tutorial] Wiki.  Covers various XML standards such as Ajax, DOM, XPath, XSLT, XQuery, DTD, Schema, and Services.
 
* [http://www.w3schools.com/xml/ W3School's XML Tutorial] Wiki.  Covers various XML standards such as Ajax, DOM, XPath, XSLT, XQuery, DTD, Schema, and Services.
Line 2,828: Line 2,944:
  
 
=== Navmeshing ===
 
=== Navmeshing ===
 +
(The process is essentially the same between the '''GECK''' and the '''Creation Kit'''.  See also the [[#Worldspace_Creation|Worldspace Creation]] section.)
 +
 
[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.creationkit.com/index.php?title=Bethesda_Tutorial_Navmesh Creation Kit Tutorial: Bethesda Navmesh Tutorial] Wiki.  Generally applies to GECK as well.
 +
* [http://www.youtube.com/watch?v=HSb7TY1ai2w Creation Kit Tutorial: Guide to Bethesda Creation Kit - Navmesh: pathing test and finalizing] Video by '''Hellcat5'''.
 
* [http://youtu.be/5JGpfOLiLic Creation Kit Tutorial: How to Navmesh] Video by '''Darkfox127'''. Specific to Skyrim but compatible essentials.
 
* [http://youtu.be/5JGpfOLiLic Creation Kit Tutorial: How to Navmesh] Video by '''Darkfox127'''. Specific to Skyrim but compatible essentials.
 
* [http://www.youtube.com/watch?v=qKbOLdzC6-k Creation Kit Tutorial: Linking Cells] Video by '''Darkfox127'''.
 
* [http://www.youtube.com/watch?v=qKbOLdzC6-k Creation Kit Tutorial: Linking Cells] Video by '''Darkfox127'''.
* [http://www.youtube.com/watch?v=Q-ZQtgveKaM Fixing Deleted Navmesh with TES5edit] by '''soupdragon'''.
+
* [http://geck.bethsoft.com/index.php?title=Bethsoft_Tutorial_Navmesh GECK: Bethsoft Navmesh Tutorial] Wiki.
* [http://geck.bethsoft.com/index.php?title=Bethsoft_Tutorial_Navmesh GECK: Navmesh Tutorial] Wiki.
+
* [http://www.youtube.com/watch?v=q2pZmWgJ0FE&feature=youtu.be GECK: How to edit pre-existing nav-meshs for an exterior worldspace GECK] Video by '''001cf73'''.
 
* [http://www.youtube.com/watch?v=2Vqjwa1fKI4 GECK: NavMesh Tutorial] Video by '''Illusive Man'''.
 
* [http://www.youtube.com/watch?v=2Vqjwa1fKI4 GECK: NavMesh Tutorial] Video by '''Illusive Man'''.
 
* [http://www.youtube.com/watch?v=8F1A-MPu3gY GECK: NavMesh Tutorial] Video by '''Staring@MyKeyboard'''.
 
* [http://www.youtube.com/watch?v=8F1A-MPu3gY GECK: NavMesh Tutorial] Video by '''Staring@MyKeyboard'''.
* [http://www.youtube.com/watch?v=HSb7TY1ai2w Guide to Bethesda Creation Kit - navmesh: pathing test and finalizing] Video by '''Hellcat5'''.
 
* [http://www.youtube.com/watch?v=q2pZmWgJ0FE&feature=youtu.be How to edit pre-existing nav-meshs for an exterior worldspace GECK] Video by '''001cf73'''.
 
 
* [http://www.nexusmods.com/newvegas/mods/62041/? Navmesh Fixes and Improvements] Mod by '''sandbox6'''.
 
* [http://www.nexusmods.com/newvegas/mods/62041/? Navmesh Fixes and Improvements] Mod by '''sandbox6'''.
 
* [http://www.youtube.com/watch?v=QApfS9NRYPY NavMesh Tutorial: Stairs] Video by '''Staring@MyKeyboard'''.
 
* [http://www.youtube.com/watch?v=QApfS9NRYPY NavMesh Tutorial: Stairs] Video by '''Staring@MyKeyboard'''.
* [http://www.creationkit.com/index.php?title=TES5Edit_Documentation TES5Edit Documentation]
+
* [http://www.creationkit.com/index.php?title=TES5Edit_Documentation TES5Edit: Documentation] Wiki.
 +
* [http://www.youtube.com/watch?v=Q-ZQtgveKaM TES5Edit: Fixing Deleted Navmesh with TES5edit] Video by '''soupdragon'''.
  
 
<span id="Tip-NavmeshBug"></span>
 
<span id="Tip-NavmeshBug"></span>
Line 2,959: Line 3,078:
 
* [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,090: Line 3,221:
  
 
[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,106: Line 3,237:
 
:* [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,170: Line 3,301:
  
 
: 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 */
* 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.
+
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.
  
 
: 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,232: Line 3,379:
 
: <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,247: Line 3,394:
 
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,426: Line 3,605:
 
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+ */
">WARNING: There is a ''compile all'' command in the GECK script editor, but it compiles ALL the scripts that are currently loaded into the GECK, regardless of their source plugin INTO YOUR PLUGIN, which will consequently override those scripts in any other plugin.  This is best avoided (as in "never used") unless you really understand all the ramifications.</span>
+
">WARNING: There is a ''compile all'' command in the GECK script editor, but it compiles ALL the scripts that are currently loaded into the GECK ('''including by default''' all, numbering in the thousands, from the vanilla ESMs), regardless of their source plugin INTO YOUR PLUGIN, which will consequently override those scripts in any other plugin.  This is best avoided (as in '''"never used"''') unless you really understand all the ramifications.</span>
 
</div>
 
</div>
  
 
<span id="Tip-CorpseOddness"></span>
 
<span id="Tip-CorpseOddness"></span>
 +
 
==== TIP ''Corpses'' are not Actors or Objects ====
 
==== TIP ''Corpses'' are not Actors or Objects ====
 
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
 
: Thanks to '''EPDGaffney''' of the Nexus Fallout "New Vegas GECK and Modders" forum for the basis of the following:
Line 3,588: Line 3,768:
 
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,069: Line 4,250:
  
 
Otherwise, if it doesn't really need to be a "non persistent" ref: name it, and use it's Ref-ID.
 
Otherwise, if it doesn't really need to be a "non persistent" ref: name it, and use it's Ref-ID.
 +
</div>
 +
 +
<span id="Tip-Relocating"></span>
 +
==== TIP Relocating objects to Player by script ====
 +
: Thanks to '''madmongo''' and '''Nexusmodsaccountno2''' of the Nexus Fallout "New Vegas Mod Talk" forum for the basis of the following:
 +
<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 dealing with the game "coordinate" system of X/Y/Z axes, it is important to consider if you desire to deal in "absolute" coordinates with respect to the worldspace, or "relative" coordinates with respect to the "calling reference" (e.g. "Player").
 +
 +
<blockquote>
 +
Exterior cells belong to a world space, and are part of that world space's landscape, which is basically a grid that extends infinitely in all directions. Each exterior cell is 4096 units by 4096 units or 192 feet by 192 feet or 58.5 meters by 58.5 meters. Each vertex in an exterior cell is 128 units apart - the same height roughly, as a human biped, or about 6 feet.
 +
 +
All exterior cells are automatically given a grid number that represents their X,Y coordinate starting from the center of the world space at coordinate 0,0. Cells to the right of 0,0 have a positive X coordinate. Cells above 0,0 have a positive Y coordinate. ...  [http://geckwiki.com/index.php/GetInGrid GetInGrid] is similar to [http://geckwiki.com/index.php/GetInSameCell GetInSameCell], but checks a grid of cells, making it useful for exteriors. Returns true (1) if the specified reference is within the grid of cells centered on the player, the size of which is specified by ''depth''. ''Depth'' defaults to 0, a value of -1 will use the ''uGrids to load'' setting. Added by NVSE 4.6.
 +
--GECKWiki
 +
</blockquote>
 +
 +
The coordinate system uses the "X-axis" to indicate "left-right of zero" and the "Y-axis" to indicate "front-behind of zero" on the same horizontal plane; while the "Z-axis" indicates "up-down/elevation" on the vertical plane relative to the center (0,0,0) grid or reference point.
 +
 +
You could use [http://geckwiki.com/index.php/GetAngle GetAngle Z] (which returns the heading angle of an object relative to the world) to get the angle of the player's rotation, which will be the direction the player is facing relative to the cell North orientation. OR use the [http://geckwiki.com/index.php/GetHeadingAngle GetHeadingAngle] which returns the angle between the calling reference and the specified object in a range from -180 to 180 degrees.  (The direction the calling reference is facing is considered 0 degrees.  Angles measured clockwise from 0 are positive, while angles measured counter-clockwise from 0 are negative.)  The choice depends upon whether you want an "absolute" or "relative" reference.
 +
 +
Then decide what distance you want to place the object (item or actor) from the Player.
 +
 +
To get the position '''''offset''''' based on angle and distance, use the following formulas:
 +
<pre>
 +
x = distance * sin (angle)
 +
y = distance * cos (angle)
 +
</pre>
 +
 +
You can either use those offsets in the "MoveTo" function, or add them to the Player's offsets and use [http://geckwiki.com/index.php/SetPos SetPos] (or JIP NVSE [http://geckwiki.com/index.php/SetPosEx SetPosEx]) instead.  Since you know the player's angle, adding 180 to that and using [http://geckwiki.com/index.php/SetAngle SetAngle Z] will rotate a relocated actor to face the opposite direction (i.e. directly facing the player).  <span style=color: green;background-color:#fff5f5;">Take heed of the "Notes" for this function.  This is a case of "the role of 'Z' axis varies by function", i.e. as "rotation" instead of "elevation".</span>
 +
 +
Example use in a script:
 +
<pre>
 +
Scriptname MoveInFrontOfPlayerScript
 +
 +
Begin onequip ;your choice
 +
 +
  int iDistance
 +
  float fOffsetX
 +
  float fOffsetY
 +
  float fPlayerFacingZ
 +
 +
  set iDistance to 70 ; or some desired <integer_value> in "game units"
 +
  set fPlayerFacingZ to PlayerRef.getangle z
 +
  set fOffsetX to iDistance * sin fPlayerFacingZ
 +
  set fOffsetY to iDistance * cos fPlayerFacingZ
 +
  SummonedRef.MoveTo PlayerRef fOffsetX fOffsetY
 +
End
 +
</pre>
 +
 +
Note that you could use "SummonedRef.MoveTo PlayerRef fOffsetX fOffsetY fPlayerFacingZ" if you want the "summoned" object to appear above or below in elevation at an angle to the Player.  However, "z" in the "MoveTo" commands refers to the vertical plane (i.e. "elevation") and not the "rotation angle" from the "GetAngle Z" command stored in "fPlayerFacingZ".  That variable will probably work as the value is not likely to offset the object too much, but the name chosen in this instance (while accurate) might lead to confusion in implementation.  A different variable (e.g. "fOffsetElevationZ" set to a specific value) might be better, depending upon circumstance.
 +
 +
Use with caution. There is nothing stopping those functions from placing the actor inside a tree or a rock or underneath the terrain if the terrain happens to rise suddenly, In an interior cell, the actor could be placed outside of all existing rooms, causing them to fall into the abyss (they'll usually end up somewhere on the map afterwards). Depending on what you are doing, you might be better off using a ''trigger'' and an ''Xmarker''.
 +
 +
"MoveTo" only works correctly if the "SummonedRef" object is in the same cell as the Player.  (See [http://geckwiki.com/index.php/GetInCell GetInSameCell].)  If not, you need to use '''Player.'''[http://geckwiki.com/index.php/GetParentCell GetParentCell] and [http://geckwiki.com/index.php/MoveToCell MoveToCell] functions instead, but in a similar manner.
 +
 +
Whether an [http://geckwiki.com/index.php/Interior_Cells Interior] or [http://geckwiki.com/index.php/Exterior_Cells Exterior] cell is the destination of the "MoveTo" function, the object has to be in the same cell as the calling Reference (e.g. Player), or the "MoveToCell" function has to be used.  "Borders/boundaries" are like exceedingly thin walls or "navmesh" lines: on one side or the other, but never straddling. 
 +
 +
<blockquote>
 +
When in an interior, the exterior world is no longer visible. Each interior cell is essentially its own universe.
 +
--GECKWiki
 +
</blockquote>
 +
There is no fixed size to interior cells, so it is more difficult to determine if a location is near a cell boundary.  A subsequent call to "GetInSameCell" to determine if the moved object was successfully re-located may be needed.
 +
 +
You may need to use "GetPos" for each axis to check for large values which are likely to indicate they are approaching a boundary.
 +
 +
A "relocation" of an object by "MoveTo" or "MoveToCell" can only be determined to succeed or fail while the script is running.  For this reason, the incorrect use of one or the other will not prevent the script from compiling/saving.  During execution (while running in the game) only that statement will fail, but subsequent statements may then fail as well as a result the statement in question failing to prove a valid (e.g. failing to set a variable or condition).  It could happen in the (probably rare) instance of being near a "cell boundary" when using "MoveTo".  If you add the "Cell" checks mentioned previously, it will probably be sufficient to prevent that.  You may want to split out the "Cell" checks into a "multiframe" block (see '[[#TIP_Block_Types_Multiple_vs_Single_Frame_processing|TIP Block Types Multiple vs Single Frame processing]]', and only call your "movement" script once you have identified the circumstances: one script for "MoveTo" and a separate one for "MoveToCell".
 +
 +
By default: the engine behavior where a script that has failed (due to any reason) at some point during execution will be effectively disabled by the game and will no longer be processed again until the game is restarted.  However, there is an INI configuration setting ("bNoFailedScriptLocks") for the "JIP LN NVSE Plugin" which allows such failing scripts to continue to run instead.  Where this is a possibility, requiring the use of "JIP LN NVSE" for your mod is not that big of a deal.  The "game fixes" provide by that Plugin are not available any other way, which is reason enough to make people use it.  And both NVSE and various plugins for it add functionality not available in the vanilla game, which make many mods possible.  Most mod users will already have one or both installed.  If they don't, it's their loss; not yours.
 
</div>
 
</div>
  
Line 4,260: Line 4,511:
 
* [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,330: Line 4,582:
  
 
=== Worldspace Creation ===
 
=== Worldspace Creation ===
(Worldspace creation is basically the same between FO3 and FNV.)
+
(Worldspace creation is basically the same between FO3 and FNV.  See also the [[#Navmeshing|Navmeshing]] section.)
  
 
[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.]
Line 4,451: Line 4,703:
 
(Generally in order of appearance in the article.)
 
(Generally in order of appearance in the article.)
  
=== Refs: [[#Programs_and_Tools|Programs and Tools]] ===
+
=== Refs [[#Programs_and_Tools|Programs and Tools]] ===
  
==== Refs: [[#GECK_Tools|GECK Tools]] ====
+
==== Refs [[#GECK_Tools|GECK Tools]] ====
  
 
*[http://geck.bethsoft.com/index.php?title=Main_Page Garden of Eden Construction Kit (GECK)] Tool.  
 
*[http://geck.bethsoft.com/index.php?title=Main_Page Garden of Eden Construction Kit (GECK)] Tool.  
Line 4,469: Line 4,721:
 
*[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.  
  
==== Refs: [[#Image_Tools|Image Tools]] ====
+
==== Refs [[#Image_Tools|Image Tools]] ====
  
 
*[http://wiki.nexusmods.com/index.php/Category:Tools Category:Tools on Nexus Mods wiki]  
 
*[http://wiki.nexusmods.com/index.php/Category:Tools Category:Tools on Nexus Mods wiki]  
Line 4,516: Line 4,768:
 
*[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'''.  
  
==== Refs: [[#Packaging_Tools|Packaging Tools]] ====
+
==== Refs [[#Packaging_Tools|Packaging Tools]] ====
  
 
*[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'''.  
Line 4,529: Line 4,781:
 
:*[http://www.nexusmods.com/skyrim/mods/75140/? FOMOD Validator] by Ganda.   
 
:*[http://www.nexusmods.com/skyrim/mods/75140/? FOMOD Validator] by Ganda.   
  
==== Refs: [[#Scripting_Tools|Scripting Tools]] ====
+
==== Refs [[#Scripting_Tools|Scripting Tools]] ====
  
 
*[http://www.cipscis.com/fallout/utilities/validator.aspx CIPSCIS Script Validator] (freeware.)  
 
*[http://www.cipscis.com/fallout/utilities/validator.aspx CIPSCIS Script Validator] (freeware.)  
Line 4,550: Line 4,802:
 
:*[http://www.nexusmods.com/newvegas/mods/62793/? Notepad++ GECK Syntax Highlighter] (Mod) by '''DoctaSax'''. "Language" Plugin for GECK editor syntax.   
 
:*[http://www.nexusmods.com/newvegas/mods/62793/? Notepad++ GECK Syntax Highlighter] (Mod) by '''DoctaSax'''. "Language" Plugin for GECK editor syntax.   
  
==== Refs: [[#Sound_and_Voice_Tools|Sound and Voice Tools]] ====
+
==== Refs [[#Sound_and_Voice_Tools|Sound and Voice Tools]] ====
  
 
*[http://www.audacityteam.org/ Audacity] (free.) Sound editor and audio format conversion.  
 
*[http://www.audacityteam.org/ Audacity] (free.) Sound editor and audio format conversion.  
Line 4,557: Line 4,809:
 
*[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).  
  
==== Refs: [[#Misc_Other_Tools|Misc Other Tools]] ====
+
==== Refs [[#Misc_Other_Tools|Misc Other Tools]] ====
  
 
*[http://darnified.net/forums/community/ DarNified Forum Community] site. Articles and questions primarily about Oblivion version of DarNUI but useful for anyone trying to understand User Interface and Menu XML files.  
 
*[http://darnified.net/forums/community/ DarNified Forum Community] site. Articles and questions primarily about Oblivion version of DarNUI but useful for anyone trying to understand User Interface and Menu XML files.  
Line 4,565: Line 4,817:
  
 
:
 
:
:*[http://www.nexusmods.com/newvegas/mods/38413/? FNVEdit Training Manual] (PDF.) Generally applies to all 'xEdit' versions for other games.  
+
:*[http://www.nexusmods.com/newvegas/mods/38413/? FNVEdit Training Manual] (PDF.) Generally applies to all 'xEdit' versions for other games.
  
=== Refs: [[#Details|Details]] ===
+
=== Refs [[#Details|Details]] ===
  
 
*[http://afkmods.iguanadons.net/index.php?/topic/4966-wrye-bash-all-games/&page=16 Wrye Bash - All Games] (Thread.)  
 
*[http://afkmods.iguanadons.net/index.php?/topic/4966-wrye-bash-all-games/&page=16 Wrye Bash - All Games] (Thread.)  
Line 4,591: Line 4,843:
 
*[http://forums.nexusmods.com/index.php?/forum/322-maya/ Software Programs - 3D Modelling - Maya forum] (Nexus Forum.)  
 
*[http://forums.nexusmods.com/index.php?/forum/322-maya/ Software Programs - 3D Modelling - Maya forum] (Nexus Forum.)  
 
*[http://forums.nexusmods.com/index.php?/forum/335-miscellaneous-other/ Software Programs - 3D Modelling - Miscellaneous / Other forum] (Nexus Forum.)  
 
*[http://forums.nexusmods.com/index.php?/forum/335-miscellaneous-other/ Software Programs - 3D Modelling - Miscellaneous / Other forum] (Nexus Forum.)  
*[http://forums.nexusmods.com/index.php?/topic/234818-blender-read-this-1st/ Blender - Read this first: started by LHammonds] (Nexus Forum Thread.)  
+
*[http://forums.nexusmods.com/index.php?/topic/234818-blender-read-this-1st/ Blender - Read this first: started by LHammonds] (Nexus Forum Thread.)
  
=== Refs: [[#Common_Problems_with_GECK|Common Problems with GECK]] ===
+
=== Refs [[#Common_Problems_with_GECK|Common Problems with GECK]] ===
 
*[[:Category:New_Vegas_Templates|New Vegas Templates]] (Hidden Category). This article section consists entirely of file "Template:GECK: Common Problems" content, which needs to be edited directly to update.
 
*[[:Category:New_Vegas_Templates|New Vegas Templates]] (Hidden Category). This article section consists entirely of file "Template:GECK: Common Problems" content, which needs to be edited directly to update.
  
=== Refs: [[#GECK_and_the_Active_File|GECK and the Active File]] ===
+
=== Refs [[#GECK_and_the_Active_File|GECK and the Active File]] ===
  
 
*[[#Tip-SaveOften|TIP: Save early and often. Make backups. Use "Vista SP2" compatibility mode.]].  
 
*[[#Tip-SaveOften|TIP: Save early and often. Make backups. Use "Vista SP2" compatibility mode.]].  
  
=== Refs: [[#GECK_Form-ID.2C_Base-ID.2C_Ref-ID.2C_and_Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] ===
+
=== Refs [[#GECK_Form-ID.2C_Base-ID.2C_Ref-ID.2C_and_Editor-ID|GECK Form-ID, Base-ID, Ref-ID, and Editor-ID]] ===
  
 
*[http://geck.bethsoft.com/index.php?title=Reference GECK Reference page] Wiki.  
 
*[http://geck.bethsoft.com/index.php?title=Reference GECK Reference page] Wiki.  
Line 4,608: Line 4,860:
 
*[[#Global_ref_variables_.27Player.27_and_.27PlayerREF.27|Global ref variables 'Player' and 'PlayerREF']]  
 
*[[#Global_ref_variables_.27Player.27_and_.27PlayerREF.27|Global ref variables 'Player' and 'PlayerREF']]  
  
=== Refs: [[#Custom_items|Custom items]] ===
+
=== Refs [[#Custom_items|Custom items]] ===
  
 
*[http://rd.nexusmods.com/newvegas/mods/64390 Different emission Vault Signs tutorial] by '''munnibha'''  
 
*[http://rd.nexusmods.com/newvegas/mods/64390 Different emission Vault Signs tutorial] by '''munnibha'''  
Line 4,621: Line 4,873:
 
*[[#Tip-Repairability|TIP: Repairability]]
 
*[[#Tip-Repairability|TIP: Repairability]]
  
=== Refs: [[#Custom_Creatures|Custom Creatures]] ===
+
=== Refs [[#Custom_Creatures|Custom Creatures]] ===
  
=== Refs: [[#Spawning_modded_items|Spawning modded items]] ===
+
=== Refs [[#Spawning_modded_items|Spawning modded items]] ===
  
 
*[[#Tip-PlantBug|TIP: Plant respawning bug fix.]]  
 
*[[#Tip-PlantBug|TIP: Plant respawning bug fix.]]  
  
=== Refs: [[#Worldspaces|Worldspaces]] ===
+
=== Refs [[#Worldspaces|Worldspaces]] ===
  
 
*[http://www.nexusmods.com/newvegas/mods/62703/? The Community Wasteland Project by Thumblesteen] Resource Mod.  
 
*[http://www.nexusmods.com/newvegas/mods/62703/? The Community Wasteland Project by Thumblesteen] Resource Mod.  
Line 4,635: Line 4,887:
 
*[[#Tip-StaticWater|TIP: Static Water goes into '''''Interior''''' cells only.]]  
 
*[[#Tip-StaticWater|TIP: Static Water goes into '''''Interior''''' cells only.]]  
  
=== Refs: [[#Additional_Material|Additional Material]] ===
+
=== Refs [[#Additional_Material|Additional Material]] ===
  
 
*[http://www.nexusmods.com/newvegas/mods/searchresults/?src_cat=104 Modders resources and tutorials] Nexus category.  
 
*[http://www.nexusmods.com/newvegas/mods/searchresults/?src_cat=104 Modders resources and tutorials] Nexus category.  
Line 4,646: Line 4,898:
 
*[[Video_capture_and_edit_tools|Video capture and edit tools]] Wiki.  
 
*[[Video_capture_and_edit_tools|Video capture and edit tools]] Wiki.  
  
=== Refs: [[#3D_Model_and_Texture_resources|3D Model and Texture resources]] ===
+
=== Refs [[#3D_Model_and_Texture_resources|3D Model and Texture resources]] ===
  
 
*[http://www.blendswap.com/ Blendswap Open Source 3D Models] Web site.  
 
*[http://www.blendswap.com/ Blendswap Open Source 3D Models] Web site.  
Line 4,657: Line 4,909:
 
*[http://www.nexusmods.com/newvegas/mods/searchresults/?src_cat=104 Modders resources and tutorials] Nexus category.  
 
*[http://www.nexusmods.com/newvegas/mods/searchresults/?src_cat=104 Modders resources and tutorials] Nexus category.  
  
=== Refs: [[#GeckCustom.INI|GeckCustom.INI]] ===
+
=== Refs [[#GeckCustom.INI|GeckCustom.INI]] ===
  
 
*[[#Tip-GeckCustomINIMissing|Tip on adding the GECKCustom.INI file]]  
 
*[[#Tip-GeckCustomINIMissing|Tip on adding the GECKCustom.INI file]]  
Line 4,665: Line 4,917:
 
*[[#Tip-GeckViewENB|Tip to View ENB in GECK]]  
 
*[[#Tip-GeckViewENB|Tip to View ENB in GECK]]  
  
=== Refs: [[#Factions.2C_Stealing_and_Ownership|Factions, Stealing and Ownership]] ===
+
=== Refs [[#Factions.2C_Stealing_and_Ownership|Factions, Stealing and Ownership]] ===
  
 
*[http://fallout.gamepedia.com/Fallout:_New_Vegas_factions Factions]  
 
*[http://fallout.gamepedia.com/Fallout:_New_Vegas_factions Factions]  
 
*[http://fallout.gamepedia.com/Fallout:_New_Vegas_reputations Reputation]  
 
*[http://fallout.gamepedia.com/Fallout:_New_Vegas_reputations Reputation]  
  
=== Refs: [[#Bethsoft_Basic_Tutorials|Bethsoft Basic Tutorials]] ===
+
=== Refs [[#Bethsoft_Basic_Tutorials|Bethsoft Basic Tutorials]] ===
  
 
*[http://geck.technodeep.net/index.php?search=tutorial&title=Special:Search&go=Go Bethsoft Basic GECK Tutorials]  
 
*[http://geck.technodeep.net/index.php?search=tutorial&title=Special:Search&go=Go Bethsoft Basic GECK Tutorials]  
 
*[http://en.uesp.net/w/index.php?title=Special:Search&search=tutorials&button= Basic Oblivion & Skyrim Tutorials]  
 
*[http://en.uesp.net/w/index.php?title=Special:Search&search=tutorials&button= Basic Oblivion & Skyrim Tutorials]  
  
=== Refs: [[#Animation|Animation]] ===
+
=== Refs [[#Animation|Animation]] ===
  
 
*[http://www.nexusmods.com/fallout3/mods/21983/? ACCESS: Animated Computers Consoles Electronics and Security Systems Resource by Pixelhate] Resource Mod.  
 
*[http://www.nexusmods.com/fallout3/mods/21983/? ACCESS: Animated Computers Consoles Electronics and Security Systems Resource by Pixelhate] Resource Mod.  
Line 4,700: Line 4,952:
 
*[[#Tip-PlayAnimation|TIP: Play an Animation.]]  
 
*[[#Tip-PlayAnimation|TIP: Play an Animation.]]  
  
=== Refs: [[#Armor_.26_Clothes|Armor & Clothes]] ===
+
=== Refs [[#Armor_.26_Clothes|Armor & Clothes]] ===
  
 
*[[3ds_Max_armor_to_Fallout_New_Vegas|3ds Max armor to Fallout New Vegas]] Wiki.  
 
*[[3ds_Max_armor_to_Fallout_New_Vegas|3ds Max armor to Fallout New Vegas]] Wiki.  
Line 4,722: Line 4,974:
 
*[[#Tip-ExportMesh|TIP: Exporting a mesh from Blender for import into GECK.]]  
 
*[[#Tip-ExportMesh|TIP: Exporting a mesh from Blender for import into GECK.]]  
  
=== Refs: [[#Blender_.28Mesh_Editor.29|Blender (Mesh Editor)]] ===
+
=== Refs [[#Blender_.28Mesh_Editor.29|Blender (Mesh Editor)]] ===
  
 
*[http://wiki.nexusmods.com/index.php/Installation_of_Blender Installation of Blender] Wiki article.  
 
*[http://wiki.nexusmods.com/index.php/Installation_of_Blender Installation of Blender] Wiki article.  
Line 4,732: Line 4,984:
 
*[[#Tip-BlenderImport|TIP: Blender Import other Model Formats.]]  
 
*[[#Tip-BlenderImport|TIP: Blender Import other Model Formats.]]  
  
=== Refs: [[#Collision|Collision]] ===
+
=== Refs [[#Collision|Collision]] ===
  
 
*[http://www.nexusmods.com/oblivion/mods/19739/? Blender Video Tutorial - Convex Collision by LHammonds] Video.  
 
*[http://www.nexusmods.com/oblivion/mods/19739/? Blender Video Tutorial - Convex Collision by LHammonds] Video.  
Line 4,740: Line 4,992:
 
*[[#Tip-CollisionSounds|TIP: Collision Impact Sounds.]]  
 
*[[#Tip-CollisionSounds|TIP: Collision Impact Sounds.]]  
  
=== Refs: [[#Conversions|Conversions]] ===
+
=== Refs [[#Conversions|Conversions]] ===
  
 
*[http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.  
 
*[http://forums.nexusmods.com/index.php?/topic/250761-converting-fo3-mod-for-fnv/ Converting FO3 Mod for FNV] Thread.  
Line 4,758: Line 5,010:
 
*[[#Tip-PluginCopy|TIP: Copying between plugins.]]  
 
*[[#Tip-PluginCopy|TIP: Copying between plugins.]]  
  
=== Refs: [[#Creature_Creation|Creature Creation]] ===
+
=== Refs [[#Creature_Creation|Creature Creation]] ===
  
 
*[http://www.nexusmods.com/fallout3/mods/6306/? Adding a custom creature to Fallout 3 Tutorial by Ominus] PDF. Very Basic.  
 
*[http://www.nexusmods.com/fallout3/mods/6306/? Adding a custom creature to Fallout 3 Tutorial by Ominus] PDF. Very Basic.  
Line 4,767: Line 5,019:
 
*[[#Tip-EmbeddedWeapon|TIP: Locate Embedded Creature Weapon]]  
 
*[[#Tip-EmbeddedWeapon|TIP: Locate Embedded Creature Weapon]]  
  
=== Refs: [[#Custom_NPCs|Custom NPCs]] ===
+
=== Refs [[#Custom_NPCs|Custom NPCs]] ===
  
 
*[http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel by Caprius] Mod HTML.  
 
*[http://www.nexusmods.com/newvegas/mods/45278/? Advanced Companion creation guide with Companion Wheel by Caprius] Mod HTML.  
 
*[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,798: Line 5,051:
 
*[[#Tip-Hostility|TIP: Hostility between NPCs.]]  
 
*[[#Tip-Hostility|TIP: Hostility between NPCs.]]  
 
*[[#Tip-InterruptCombat|TIP: Interrupt combat for dialog.]]  
 
*[[#Tip-InterruptCombat|TIP: Interrupt combat for dialog.]]  
*[[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]  
+
*[[#Tip-NPCMovement|TIP: Making NPCs move (aka "AI Packages").]]
 +
*[[#TIP-CompanionXP|TIP: Only Combat Teammates give XP to Player]]
 
*[[#Tip-CompanionPerks|TIP: Perks for Companions.]]  
 
*[[#Tip-CompanionPerks|TIP: Perks for Companions.]]  
 
*[[#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]] ===
  
 
*[http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Forum Thread.  
 
*[http://forums.nexusmods.com/index.php?/topic/449620-a-very-basic-dialogue-tutorial/ A very basic dialogue tutorial] Forum Thread.  
Line 4,833: Line 5,087:
 
*[[#Tip-DialogTabs|TIP: Standard Dialog.]]  
 
*[[#Tip-DialogTabs|TIP: Standard Dialog.]]  
  
=== Refs: [[#FaceGen:_Heads.2C_Faces.2C_Hairs.2C_and_Helmets|FaceGen: Heads, Faces, Hairs, and Helmets]] ===
+
=== Refs [[#FaceGen:_Heads.2C_Faces.2C_Hairs.2C_and_Helmets|FaceGen: Heads, Faces, Hairs, and Helmets]] ===
  
 
*[[Working_with_Skyrim_head_TRIs|Working with Skyrim head TRIs]] Wiki article.  
 
*[[Working_with_Skyrim_head_TRIs|Working with Skyrim head TRIs]] Wiki article.  
Line 4,846: Line 5,100:
 
*[http://forums.nexusmods.com/index.php?/topic/92378-what-is-egm-file/ What is EGM File] Forum thread  
 
*[http://forums.nexusmods.com/index.php?/topic/92378-what-is-egm-file/ What is EGM File] Forum thread  
  
=== Refs: [[#Havok_Physics|Havok Physics]] ===
+
=== Refs [[#Havok_Physics|Havok Physics]] ===
  
 
*[http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Havok Removal by Jokerine] Mod PDF.  
 
*[http://www.nexusmods.com/newvegas/mods/56009/? Jokerine's Misc Resources Tutorials and Novac Bungalow: Havok Removal by Jokerine] Mod PDF.  
Line 4,853: Line 5,107:
 
*[[#Tip-HavokDeadNPC|TIP: Havok a dead NPC.]]  
 
*[[#Tip-HavokDeadNPC|TIP: Havok a dead NPC.]]  
  
=== Refs: [[#Heightmaps|Heightmaps]] ===
+
=== Refs [[#Heightmaps|Heightmaps]] ===
  
 
*[http://www.truancyfactory.com/tutorials/fallout3/fallout_worldspace2.html Fallout3 Creating a Heightmap] HTML with images.  
 
*[http://www.truancyfactory.com/tutorials/fallout3/fallout_worldspace2.html Fallout3 Creating a Heightmap] HTML with images.  
Line 4,859: Line 5,113:
 
*[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] Forum Thread.  
 
*[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] Forum Thread.  
  
=== Refs: [[#LOD_Generation|LOD Generation]] ===
+
=== Refs [[#LOD_Generation|LOD Generation]] ===
  
 
*[http://www.darkcreations.org/testg/wiki/Category:VWD-OB TESTG: LOD/VWD Overview] Wiki.  
 
*[http://www.darkcreations.org/testg/wiki/Category:VWD-OB TESTG: LOD/VWD Overview] Wiki.  
Line 4,885: Line 5,139:
 
*[[#Tip-LODGen|TIP: LOD Generation.]]  
 
*[[#Tip-LODGen|TIP: LOD Generation.]]  
  
=== Refs: [[#Misc_Topics|Misc Topics]] ===
+
=== Refs [[#Misc_Topics|Misc Topics]] ===
  
==== Refs: [[#.3E_ESM_.26_ESP_Files|ESM & ESP Files]] ====
+
==== Refs [[#ESM and ESP Files|ESM & ESP Files]] ====
  
*[[#Tip-ESMOnly|TIP: When can you use an ESM only mod?]]  
+
*[[#Tip-ESMOnly|TIP: When can you use an ESM only mod?]]
  
==== Refs: [[#.3E_Factions_.26_Reputation|Factions & Reputation]] ====
+
==== Refs [[#Factions_and_Reputation|Factions & Reputation]] ====
  
 
*[http://www.youtube.com/watch?v=5f-x2ws6ySo GECK: Factions/Reputation by Seddon4494] Video.  
 
*[http://www.youtube.com/watch?v=5f-x2ws6ySo GECK: Factions/Reputation by Seddon4494] Video.  
  
==== Refs: [[#.3E_GIMP:_Posters_.26_Images|GIMP: Posters & Images]] ====
+
==== Refs [[#GIMP_Posters_and_Images|GIMP: Posters & Images]] ====
  
 
*[[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.  
  
==== Refs: [[#.3E_How_to_...|How to ...]] ====
+
==== Refs [[#How_to_...|How to ...]] ====
  
 
*[[How_to_create_a_challenge|How to create a challenge]] Wiki.  
 
*[[How_to_create_a_challenge|How to create a challenge]] Wiki.  
Line 4,914: Line 5,168:
 
:*[[#Tip-PipboyIcons|TIP: Pipboy Icons.]]   
 
:*[[#Tip-PipboyIcons|TIP: Pipboy Icons.]]   
  
*[[#Tip-MoveQuestNPC|TIP: Moving a Quest NPC.]]
+
==== Refs [[#Import_Custom_Videos|Import Custom Videos]] ====
 
 
==== Refs: [[#.3E_Import_Custom_Videos|Import Custom Videos]] ====
 
  
 
*[[Importing_custom_videos_into_FNV/F3/Skyrim/Oblivion|Importing custom videos into FNV/F3/Skyrim/Oblivion]] Wiki.  
 
*[[Importing_custom_videos_into_FNV/F3/Skyrim/Oblivion|Importing custom videos into FNV/F3/Skyrim/Oblivion]] Wiki.  
  
==== Refs: [[#.3E_Item_Creation_.26_placement|Item Creation & placement]] ====
+
==== Refs [[#Item_Creation_and_placement|Item Creation & placement]] ====
  
 
*[[Item_creation_and_placement|Item creation and placement]] Wiki.  
 
*[[Item_creation_and_placement|Item creation and placement]] Wiki.  
  
==== Refs: > [[#Make_Readius_Screenglares|Make Readius Screenglares]] ====
+
==== Refs [[#Make_Readius_Screenglares|Make Readius Screenglares]] ====
  
*[[Making_Pipboy_Readius_screenglares|Making Pipboy Readius screenglares]] Wiki.  
+
*[[Making_Pipboy_Readius_screenglares|Making Pipboy Readius screenglares]] Wiki.
  
==== Refs: [[#.3E_Markers|Markers]] ====
+
==== Refs [[#Markers|Markers]] ====
  
 
*[http://geck.bethsoft.com/index.php?title=Markers GECK: Markers] Wiki.  
 
*[http://geck.bethsoft.com/index.php?title=Markers GECK: Markers] Wiki.  
Line 4,937: Line 5,189:
 
:*[[#Tip-PortableMarkers|TIP: Portable xMarkers]].   
 
:*[[#Tip-PortableMarkers|TIP: Portable xMarkers]].   
  
==== Refs: [[#.3E_PAINT.NET:_Normal_Maps|PAINT.NET: Normal Maps]] ====
+
==== Refs [[#PAINT.NET_Normal_Maps|PAINT.NET: Normal Maps]] ====
  
 
*[http://tesalliance.org/forums/index.php?/tutorials/article/119-graphic-artistry-normal-maps-in-paintnet/ Graphic Artistry: Normal Maps in Paint.Net] Tutorial.  
 
*[http://tesalliance.org/forums/index.php?/tutorials/article/119-graphic-artistry-normal-maps-in-paintnet/ Graphic Artistry: Normal Maps in Paint.Net] Tutorial.  
  
==== Refs: [[#.3E_Recipes|Recipes]] ====
+
==== Refs [[#Recipes|Recipes]] ====
  
 
*[http://youtu.be/-jDloCLWFYc GECK: Making a Recipe by Seddon4494] Video.  
 
*[http://youtu.be/-jDloCLWFYc GECK: Making a Recipe by Seddon4494] Video.  
  
==== Refs: [[#.3E_UV_Mapping|UV Mapping]] ====
+
==== Refs [[#UV_Mapping|UV Mapping]] ====
  
 
*[[UV_Mapping:_An_Explanation|UV Mapping: An Explanation]] Wiki.  
 
*[[UV_Mapping:_An_Explanation|UV Mapping: An Explanation]] Wiki.  
 
*[[Making_square_UV_maps_in_Blender|UV Mapping: Making square UV maps in Blender]] Wiki.  
 
*[[Making_square_UV_maps_in_Blender|UV Mapping: Making square UV maps in Blender]] Wiki.  
  
==== Refs: [[#.3E_XML|XML]] ====
+
==== Refs [[#XML|XML]] ====
  
 
*[http://www.w3schools.com/xml/ W3School's XML Tutorial] Wiki.  
 
*[http://www.w3schools.com/xml/ W3School's XML Tutorial] Wiki.  
 
*[http://cs.elderscrolls.com/index.php?title=Category:Oblivion_XML Category:Oblivion XML] Wiki (Oblivion).  
 
*[http://cs.elderscrolls.com/index.php?title=Category:Oblivion_XML Category:Oblivion XML] Wiki (Oblivion).  
 
*[http://www.loverslab.com/topic/53411-reading-ui-hud-xml-files/ Reading UI & HUD XML files] by '''DoctaSax''' (Adults (18+)Only site).  
 
*[http://www.loverslab.com/topic/53411-reading-ui-hud-xml-files/ Reading UI & HUD XML files] by '''DoctaSax''' (Adults (18+)Only site).  
*[http://qxmledit.org/ QXmlEdit] (freeware) XML Editor.  
+
*[http://qxmledit.org/ QXmlEdit] (freeware) XML Editor.
  
=== Refs: [[#Music_.26_Sounds|Music & Sounds]] ===
+
=== Refs [[#Music_.26_Sounds|Music & Sounds]] ===
  
 
*[[Fallout_New_Vegas_Music|Fallout New Vegas Music]] Wiki.  
 
*[[Fallout_New_Vegas_Music|Fallout New Vegas Music]] Wiki.  
Line 4,970: Line 5,222:
 
*[[#Tip-BattleMusic|TIP: Replacing Battle Music.]]  
 
*[[#Tip-BattleMusic|TIP: Replacing Battle Music.]]  
  
=== Refs: [[#Navmeshing|Navmeshing]] ===
+
=== Refs [[#Navmeshing|Navmeshing]] ===
  
 
*[http://youtu.be/5JGpfOLiLic Creation Kit Tutorial: How to Navmesh] Video by '''Darkfox127'''. Specific to Skyrim but compatible essentials.  
 
*[http://youtu.be/5JGpfOLiLic Creation Kit Tutorial: How to Navmesh] Video by '''Darkfox127'''. Specific to Skyrim but compatible essentials.  
Line 4,989: Line 5,241:
 
*[[#Tip-NavmeshPortal|TIP: Navmesh marker for Portal relocates.]]  
 
*[[#Tip-NavmeshPortal|TIP: Navmesh marker for Portal relocates.]]  
  
=== Refs: [[#NifSkope_.28Mesh_Editor.29|NifSkope (Mesh Editor)]] ===
+
=== Refs [[#NifSkope_.28Mesh_Editor.29|NifSkope (Mesh Editor)]] ===
  
 
*[http://www.youtube.com/watch?v=BvitRKEa1X0 How To Rotate A Mesh In Nifskope] 2 minute video by Zylice Liddell.  
 
*[http://www.youtube.com/watch?v=BvitRKEa1X0 How To Rotate A Mesh In Nifskope] 2 minute video by Zylice Liddell.  
Line 5,001: Line 5,253:
 
*[[#Tip-ShinyLines|TIP: Shiny lines in exported NIF normal map.]]  
 
*[[#Tip-ShinyLines|TIP: Shiny lines in exported NIF normal map.]]  
  
=== Refs: [[#Scripting|Scripting]] ===
+
=== Refs [[#Scripting|Scripting]] ===
  
 
*[http://www.cipscis.com/fallout/tutorials/beginners.aspx CIPSCIS: Scripting for Beginners] HTML.  
 
*[http://www.cipscis.com/fallout/tutorials/beginners.aspx CIPSCIS: Scripting for Beginners] HTML.  
Line 5,093: Line 5,345:
 
*[[#Tip-QuestSelfStopping|TIP: Quest - Stopping within it's own script.]]  
 
*[[#Tip-QuestSelfStopping|TIP: Quest - Stopping within it's own script.]]  
 
*[[#Tip-References|TIP: Referencing Objects.]]
 
*[[#Tip-References|TIP: Referencing Objects.]]
 +
*[[#Tip-Relocating|TIP: Relocating objects to Player by script.]]
 
*[[#Tip-OnActivate|TIP: Restricting OnActivate blocks.]]  
 
*[[#Tip-OnActivate|TIP: Restricting OnActivate blocks.]]  
 
*[[#Tip-ScriptResult|TIP: Script Result vs Result Script.]]  
 
*[[#Tip-ScriptResult|TIP: Script Result vs Result Script.]]  
Line 5,100: Line 5,353:
 
*[[#Tip-Timers|TIP: Timers.]]
 
*[[#Tip-Timers|TIP: Timers.]]
  
=== Refs: [[#Texturing|Texturing]] ===
+
=== Refs [[#Texturing|Texturing]] ===
  
 
*[http://wiki.nexusmods.com/index.php/Category:Texturing Texturing Category on Nexus] Wiki. A large collection of articles on the subject.  
 
*[http://wiki.nexusmods.com/index.php/Category:Texturing Texturing Category on Nexus] Wiki. A large collection of articles on the subject.  
Line 5,115: Line 5,368:
 
*[[#Tip-NormalMaps|TIP: Improving Texture Normal Maps.]]  
 
*[[#Tip-NormalMaps|TIP: Improving Texture Normal Maps.]]  
  
=== Refs: [[#Weapons|Weapons]] ===
+
=== Refs [[#Weapons|Weapons]] ===
  
 
*[http://www.nexusmods.com/newvegas/mods/63109/? Complete custom gun modding guide by GaigeStorm] PDF.  
 
*[http://www.nexusmods.com/newvegas/mods/63109/? Complete custom gun modding guide by GaigeStorm] PDF.  
Line 5,126: Line 5,379:
 
*[[#Tip-WeaponAnimations|TIP: Weapon Effect Animations.]]  
 
*[[#Tip-WeaponAnimations|TIP: Weapon Effect Animations.]]  
  
=== Refs: [[#Worldspace_Creation|Worldspace Creation]] ===
+
=== Refs [[#Worldspace_Creation|Worldspace Creation]] ===
  
 
*[http://www.creationkit.com/index.php?title=Bethesda_Tutorial_Navmesh Bethesda Tutorial: Navmesh] Wiki.  
 
*[http://www.creationkit.com/index.php?title=Bethesda_Tutorial_Navmesh Bethesda Tutorial: Navmesh] Wiki.  
Line 5,140: Line 5,393:
 
*[[#Tip-WorldMap|TIP: Creating a new "world map".]]  
 
*[[#Tip-WorldMap|TIP: Creating a new "world map".]]  
  
=== Refs: [[#Packaging_Mods_for_Installation|Packaging Mods for Installation]] ===
+
=== Refs [[#Packaging_Mods_for_Installation|Packaging Mods for Installation]] ===
  
 
*[http://wiki.nexusmods.com/index.php/Category:Using_the_Nexus_sites Category: Using the Nexus sites] Wiki page has articles on:  
 
*[http://wiki.nexusmods.com/index.php/Category:Using_the_Nexus_sites Category: Using the Nexus sites] Wiki page has articles on:  

Latest revision as of 12:12, 23 March 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.
  • 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