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

From Nexus Mods Wiki
Jump to: navigation, search
(Tutorials: update)
(References: update)
Line 1,120: Line 1,120:
 
* [[#Tip-GeckMultiBounds | Tip to fix invisible things in interior cells]]
 
* [[#Tip-GeckMultiBounds | Tip to fix invisible things in interior cells]]
 
* [[#Tip-GeckViewENB | Tip to View ENB in GECK]]
 
* [[#Tip-GeckViewENB | Tip to View ENB in GECK]]
 +
 +
=== Refs: Bethsoft Basic Tutorials ===
 +
* [http://geck.technodeep.net/index.php?search=tutorial&title=Special%3ASearch&go=Go Bethsoft Basic GECK Tutorials]
 +
* [http://en.uesp.net/w/index.php?title=Special%3ASearch&search=tutorials&button= Basic Oblivion & Skyrim Tutorials]
  
 
=== Refs: Animation ===
 
=== Refs: Animation ===

Revision as of 12:12, 18 June 2017

Contents

Overview

The thread Getting started creating mods using GECK feedback in the "New Vegas GECK and Modders" forum is for posting suggestions, questions, and corrections.

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.

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.

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.

Tools and Programs

  • Garden of Eden Construction Kit (GECK) (freeware.) The official "game editor" for Fallout 3 and New Vegas. NOTE that when loading files, the plugin you designate with the "Start as Active" button becomes the one that gets edited and saved when you exit the editor.
  • GECK 1.4 Powerup Mod. Comes in a "standalone" version for the "vanilla" GECK functions, and one for GECK with NVSE functions. It fixes and improves some issues while providing the missing messages when the GECK compiler finds an error or warning, and lets you save a script without compiling it. Considered "essential" by experienced mod creators.
  • 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 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 site.
  • Category:Tools on Nexus Mods wiki has articles on various aspects of the primary tools you will be using. Check it out as well.
  • 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, the NIF scripts, and the "Noob to Pro" PDF tutorial. Check out the "Optional" files section for some additional functionality.
  • 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.
  • Maya (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.) Animation, modeling, simulation, and rendering software by AutoDesk.
  • 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 a fully compatible version of this tool is already included in the Blender v2.49b package linked here.)
  • Paint.NET (freeware.) Image and photo 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+.
  • GIMP: GNU Image Manipulation Program (freeware.) A cross-platform image editor available for GNU/Linux, OS X, Windows and more operating systems. Provides extensibility 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.
  • CIPSCIS Script Validator (freeware.) Allows you to quickly indent your script while simultaneously checking it for several errors, many of which are not picked up by the GECK's compiler. It works with Skyrim, Fallout 3, and Fallout New Vegas. Includes it's own tutorials.
  • FNVEdit (freeware.) a generic tool called 'xEdit' which is renamed for working with specific games.

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 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 Tools and Programs. 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 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.

GECK and the 'Active File'

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

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

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

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

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

  • TIP: This brings up a major point: save early and often. Where "often" is defined as after every change you make; and then make a copy of your ESP every few days or so, just in case. Configure "compatibility mode" for "Vista SP2". This seems to reduce how often it crashes. Still the GECK seems to crash if you breathe heavily on it. It really sucks to open your plugin one day and find an entire town you spent a month on, gone: not a brick left and no aliens with probes in sight.

Once you have a file saved, if you want to edit that file later, you just select the files you want to load and make that your "active file" and start the GECK. When you save, all changes will go into the "active file" that you selected.

Let's say you want to add resources from another master file to your plugin, like say, from Honest Hearts. If you are creating a new file, you'd check Fallout.ESM and HonestHearts.ESM, but you wouldn't select any active file. Later, when you save, you will be prompted for a new plugin filename that will become your new active file.

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

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

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

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

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

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

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

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

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

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

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

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

But not everything within the "object tree" can then be put into the "Render window" and become a Ref-ID. Hence the difference between Base, Ref & Form ID: a Ref-ID always has a Base-ID, and conversely a Base-ID means it can create "references" that rely on it. "Message" objects are something outside of that relationship. A "message" is its own kind of object; like a "sort of" note, with it's own Form-ID. The command "ShowMessage" needs a Form-id to point to. You can't just use the message text directly as a parameter. There are 2 kinds of messages though. Read up on Message in the GECK wiki.

"Load order of modules (ESMs and ESPs) will affect the ID number of modules. The first two digits of a ID number [i.e. "Form-ID"] corresponds to its load order (in hexadecimal, like the rest of the number). One must use a utility like FO3Edit [or FNVEdit, aka xEdit] to ascertain the load order of a module. [The Fallout ESM file's] ID number is 00, as it will always be the very first module to load. The ID number series in the FF (decimal equivalent: 255) range is reserved by the game engine for objects created and saved in the gamesave file (such as PlaceAtMe'd objects, projectiles, dropped inventory, or list-spawned actors).

"According to the layout of this system, the maximum number of additional modules that can be loaded by the game is 254 (256 load order ranges, - 1 for the Savegame FF range, - 1 for the always-mandatory Fallout3.esm/FalloutNV.esm)." - Form-ID on The Vault wiki

Global ref variables 'Player' and 'PlayerREF'

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

Custom items

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

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

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

This copy from one ESP to another will end up including "master files" from the original ESP in your new plugin, so if you don't want them, just delete them from the GECK data screen when you select your plugin. If you accidentally left something in your plugin from one of those masters in your copied cell, deleting the master will screw up your plugin, so don't do this until you have a saved copy and then clean up the "master files" list early.

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

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

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

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

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

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

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

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

Custom Creatures

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

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

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

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

Remember: in the GECK, save early and often.

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

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

Spawning modded items

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

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

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

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

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

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

Worldspaces

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Buggy buggy buggy. That's the GECK.

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

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

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

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

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

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

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

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

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

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

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

Copying interior/exterior cells between plugins

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

  • The Trick is to make your new ESP first, only dependent on the main master file. Save and close it.
Best way to make a new ESP file is to drop something in the "Render" window, then save and name the file. So loading a cell first is needed. Suggest "Wasteland cell / Good Springs" if you don't have any in particular in mind. You can of course delete that cell later from your ESP if it's not needed for your purposes.
  • Then open your preferred tool adding the other files from which you want to use assets, (with your new .ESP as the "active file" in GECK).

At the moment we don't know of any way to duplicate exterior world spaces in GECK. You can copy cell records between plugins in FNVEdit.

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

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

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

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

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

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

Additional Material

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

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

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

NAM files

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

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

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

3D Model and Texture resources

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

GeckCustom.INI

  • TIP: 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.

  • TIP: Try changing the following in the "GeckCustom.ini" file

[Audio]
bEnableAudio=0

from "1" to "0". That will disable the editor interface to hear sounds, but a re-edit back to "1" will restore it when you need it. While not completely eliminating all frustrations, it seems to increase the amount of trouble-free edits between CTDs to multiple hours at a time.

  • TIP: In order to load multiple master (i.e. ESM) files into GECK at once, you need to edit the "GeckCustom.ini" file to add:

bAllowMultipleMasterLoads=1

  • TIP: to enable more than one copy of the GECK (or both the FO3 and FNV versions) to be open at one time, edit the "GeckCustom.ini" file to add:

bAllowMultipleEditors=1

  • TIP: You may find many things are invisible when viewing an interior cell in the New Vegas version of the GECK. Open the "GeckCustom.ini", find the line "bUseMultibounds=1", and change the value to "0".

  • TIP: To get GECK to work with ENBSeries loaded so you can see ENB's effects while in the editor as well, try the following.
In the "enblocal.ini" file located in the game root folder (i.e. <SteamInstallPath>\steamapps\common\Fallout New Vegas"), set:

[FIX]
FixGameBugs=true
FixTransparencyBugs=true
IgnoreGECK=false ;<- set "false" from "true"

And get ready for GECK to take >20 seconds to load on startup. But it'll look pretty.


Plugin File Header and Record information by game

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

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

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

Fallout Record Types

Sources:

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


Stealing, Ownership, and Factions

Stealing of "owned containers" and items, and trespassing (to include opening specific doors with "owners"), have negative effects on the Courier's reputation with the owning NPC and faction. All factions have attitudes towards other factions. These relationships can get complex, and changing them can have unforeseen consequences.

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

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

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

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

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

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

Various types of armor have faction associations. Wearing any faction armor will turn reputation with that faction to "Neutral". For example, if "Liked" by the NCR but wearing NCR "face wrap armor", that armor will return reputation with the NCR to "Neutral". It will go back to "Liked" once the armor is removed. Only certain types of armor function as "disguises" in this manner. Such "indirect" methods of changing faction reputation are preferred to directly altering it for the Courier. Creating a new faction and setting the relationships of that faction with other factions is similarly preferred.

Tutorials

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

Bethsoft Basic Tutorials

Animation

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

Armor & Clothes

Blender

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

Collision

Conversions

  • The Trick is to make an ESP first, only dependent on the main master file. Save and close it.
Best way to make a new ESP file is to drop something in the "Render" window, then save and name the file. So loading a cell first is needed. Suggest Wasteland cell / Good Springs. You can of course delete that cell later if it's not needed for your purposes.
  • Then open the GECK adding the other files from which you want to use assets, with your new .ESP as the "active file".

Creature Creation

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

Custom NPCs

  • Advanced Companion creation guide with Companion Wheel HTML.
  • GECK: Companion Tutorial playlist by cgy95 Video series.
  • GECK: Custom NPC and Dialog Video.
  • GECK: Creating an NPC Video.
  • Jokerine's Misc Resources Tutorials and Novac Bungalow: Quick 'n' Dirty Merchant PDF.
  • NCCS - NosCo Companion System Mod.
  • Rivens Tattoo Flash Sheets Resource. (Copy-and-paste tattoos.)
  • TIP: Companion Wheel. When you create your companion quest and dialog options, you must use the dialog options conversation topics that the companion command wheel is expecting; otherwise that corresponding function on the command wheel won't work.
  • TIP: Avoid CTD previewing NPCs. To avoid crashing the GECK when you desire to "preview" an NPC, try opening their face "advanced" tab first. Then go back to one of the other tabs to check the "Preview Full". And when editing, click "Ok" for closing the NPC window, and then save the file instead of switching to the other tabs. Don't leave "edits" hanging when switching among tabs.
  • TIP: Switching Custom Facial Features. When switching among custom features such as eyes or hair, switch to a "vanilla" feature first, and then switch to a new "custom" look. The GECK gets confused if you try to switch straight from one custom feature to another.
  • TIP: Trick with making NPCs. If you create the NPC in an ESP, you can run into the infamous "head/body mismatch" bug. There are some settings you can change that fix the bug on some computers, but if you want it to work on all systems, define the NPC in an ESM file.
  • See also sections Dialogue & Lip-synch and Scripting for related info.

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

  • TIP: Using AI Packages.
  • You can activate dialogue and travel packages by using the AddScriptPackage function, usually in a "dialogue result" or "base effect" script. This has the advantage that a package added in this fashion will take precedence over all other packages until it is done, and terminate as soon as it is able (check the Must Complete and/or Must Reach Location flags to prevent premature termination, but be sure you provide the means to determine it IS completed).
  • An actor can have only one script package active at a time. When calling the function twice on the same actor, the second package replaces the first one added. Unless the AddScriptPackage has some constraint on it (Must Complete and/or Must Reach Location), it will be removed the next time the actor reevaluates his package.
  • Actors evaluate their packages every 10 seconds. If no packages have true conditions then the actor will just stand there by default, unless they are in combat. So if you want a package to take effect right away, set the conditions for the package and call the EvaluatePackage (.EVP) function on the actor: ActorREF.evp.
  • Sometimes it can be difficult to get the AddScriptPackage to trigger, or you don't want it to take precedence over all other packages. The usual method to assign AI packages is to attach the package directly to the actor and give it conditions to trigger or disable activation. On the NPC/Creature object, the first package from the top of the list that has true conditions will be the one in effect when packages are evaluated.
  • Check that the order of your packages and their conditions do not prevent some from ever triggering. Treat each as if a part of a series of nested "IF ELSE" blocks. (IF < condition > is "true" then do "this package", ELSE do "that", where "that" can be another ("nested") "IF ELSE" block.) The last "ELSE" should trigger an "idle" or similar "default" package.
  • The RemoveScriptPackage function is only used for packages added by way of the AddScriptPackage function. Once you remove an added script, the actor will automatically re-evaluate and determine which package should take it's place.
  • AI Packages attached directly to the actor are activated or deactivated by setting the variables used in the conditional tests. If they are only in effect in very specific circumstances (such as being in a particular cell or location), then use another variable set in a quest script to determine if the circumstances exist to avoid making the full condition checks unnecessarily.

Dialogue & Lip-synch

  • TIP: Conversation/Quest system.

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

  • TIP: Standard Dialog.
  • Tip: Random NPC Comments.
  • TIP: How to generate .lip files.

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

  • Tip: Cutting Lip files to match dialog.

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

Havok Physics

Heightmaps

LOD Generation

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

Misc Topics

Music & Sounds

  • Place your sound file somewhere in "Data\Sounds\fx\<YourModFolder>".
If your sound file (WAV, MP3, OGG, etc.) is imported, be sure to strip out any "metadata" (cover art, album name, author, etc.) it may be encoded with as the game is not prepared to deal with it. There are a number of tools available on the web, including the Audacity (free) sound editor, which can covert other formats.
NOTE: The GECK seems to see/list all sound files as MP3, regardless of their actual extension (i.e. WAV or OGG). The extension does not seem to matter and the sound plays fine in game, but only WAV files play in the editor.
If you intend to "overwrite" a vanilla sound file, you must first extract the sound file from it's BSA file into it's intended folder. This is primarily to create the correct folder path.
  • Your sound MUST be a mono, 16-bit sample size, and 22, 32, or 44.1KHz sample rate WAV (adpcm) file, if you want to be able to click "play" and hear it in the editor. No other file type plays in the editor, even though many vanilla files are in other formats. Its a GECK thing.
  • MP3 files should be mono, 16-bit sample size, 44.1KHz sample rate, Bit Rate: constant, 64 kbps.
  • OGG Vorbis files should be mono, 44.1KHz, Bit rate: constant, 48kbps (128kbps for dialogue).
When in doubt about which "KHz sample rate" to use, be guided by what similar vanilla sound files in the same location are using.
  • Open GECK.
  • Look in the object window for "Audio", then click on "Sound".
The list here is not of actual sound files, but rather a list of GECK Form-IDs that point to the sound files.
Then you must create a sound object in the GECK. You can't directly link the audio portion of your weapon (etc.) directly to your sound file. Again, you MUST create a sound object first. And then link that object to your weapon in the "Art and Sound" tab. You must be able to hear your sound play as a GECK sound object BEFORE linking it to your weapon.
To create a new record from scratch:
  • Move to the right window, right click and select "New".
  • Click on "Add sound file".
  • Adjust "Attenuation distance".
Check stock vanilla sounds of the same type (i.e. a gunshot) for a good idea on how to set them.
  • Flag "Mute when submerged", then the "OK" button.
Check stock vanilla sounds for other flags and settings as well.
  • If your sound is a dialogue then flag "Dialogue sound".
OR, edit an existing sound record to create a new one:
  • Right-click and edit one of the existing sounds. Ideally find one of the same type as what you want (i.e, to make a new gunshot sound, use an existing gunshot sound).
  • Make your modifications to that sound, and point it towards your own added sound file.
  • Click "OK", and it will ask: "Create a new form?"; to which you say YES, then make note of the new Form-ID.
  • Now when you are in your "Art and Sound" tab (if its a weapon or something) just click on the sound buttons and find your new sound by the new Form-Id you noted.

TIP: Format to call a song.

  • To call a song in a radio station .mp3s NEED braces round the response name, and .wav files won't work with them. If you look at any of the vanilla radio stations in the GECK, they all use .mp3s, and the name of each entry is something like this:
  {Song 1 A Winter Romance}

Note that like vCountryRadioQuest, you should put two spaces before the first brace. (Not tested without.)

NifSkope

Scripting

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

There are 3 kinds of scripts:

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

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

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

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

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

  • TIP: Do not begin Editor-IDs with numbers.
  • The GECK confuses Editor-IDs, script names, and variable names that begin with numbers for Form-IDs. They are not the same and scripts will fail to compile with messages to the effect it can't find the (perfectly valid) command. Do use a consistent naming convention, such as beginning Editor-IDs and variables with the initials of the mod, so they are grouped together in the GECK's lists by type making it easier to locate them for editing later.
  • TIP: Dismembering a corpse.
Thanks to madmongo of the Nexus Fallout "New Vegas GECK and Modders" forum for the following.
  • TIP: Don't overlook EventHandlers.
  • TIP: Get Actor Health functions.
Bear the following in mind when attempting to determine the health of any actor:
  • [ActorRef].GetHealthPercentage is unreliable as it's determined from "base health" and sometimes returns values over 1.0 (100%).
  • [ActorRef].GetAV Health returns the current, modified health value.
  • [ActorRef].GetBaseAV Health returns the base value with no consideration for permanent (eg. Life Giver perk) or temporary effects (eg. Buffout).
  • [ActorRef].GetPermAV < StatName > returns include permanent effects (i.e. Perks like "Tag!", and from Skill Books), but no bonus from situational perks, equipped items, drugs, etc..
  • No function known at the moment can return the max value with temporary effects.
  • TIP: Passing a 'Note' to the player.
  • TIP: Pass a variable number into a script message.
  • Read the "Formatting messages" section in the GECK article on the ShowMessage function. For an integer: use "%.0f" or "%g". Include the formatting switch in the text in the message form, like this:
"The winning number was %g."
  • Then pass the script variable to the ShowMessage function along with the message, like this:
  • Here's an example with NVSE, which allows you to show messages without creating a new message form. NVSE also supports a number of extra switches that can't be used in ordinary message forms.
MessageBoxEx "The winning number was %g.", iWinningNumber

Weapons

Worldspace Creation

(Worldspace creation is basically the same between FO3 and FNV.)

Packaging Mods for Installation

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

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

Packages can be divided into two categories: "installer friendly" and "installer unfriendly":

  • A "friendly" structured package follows the directory structure used by the game: i.e. vanilla game sub-folders under "Data" such as "Meshes", "Textures", Menus", etc.. Such can be handled by any of the available managers.
  • An "unfriendly" structured package introduces layers of non-vanilla sub-folders: i.e. "<Mod Name>\Data\<Mod version folder>\Meshes", etc.. Such have to be manually restructured to remove the offending folders before they can be installed using a mod manager, and even if manually installed.

Obviously you want to create "installer friendly" structured packages to avoid having to deal with the problem of your users in getting your mod installed.

Simple structure

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

Complex structure

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

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

The next step

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

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

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

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

References

(Generally in order of appearance in the article.)

Refs: Tools and Programs

  • 3DS Max (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.)
  • Maya (1 month free trial, $185/month or $1470/year subscriptions, 3 yr student/educator license.)
  • NifSkope

Refs: Details

Refs: GECK and the Active File

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

Refs: Custom items

Refs: Worldspaces

Refs: Additional Material

Refs: 3D Model and Texture resources

Refs: GeckCustom.INI

Refs: Bethsoft Basic Tutorials

Refs: Animation

Refs: Armor & Clothes

Refs: Blender

Refs: Collision

Refs: Conversions

Refs: Creature Creation

Refs: Custom NPCs

Refs: Dialogue & Lip-synch

Refs: Havok Physics

Refs: Heightmaps

Refs: LOD Generation

Refs: Misc Topics

Refs: Music & Sounds

Refs: NifSkope

Refs: Scripting

Refs: Weapons

Refs: Worldspace Creation



Nexus wiki articles referred to by this article:

  • None that are not tutorials listed above.



Nexus wiki articles that refer to this article: