Jump to content
  • Announcements

    • AndalayBay

      Orphan Attachments   07/31/2018

      I have been doing some housekeeping lately and I've noticed that I had a lot of orphaned attachments. Attachments get orphaned when the PM or post is deleted without removing the attachment first. Deleting a PM or post does not delete the attachment and the file or image remain on the server. I'd like to ask all members to go through their attachments and delete any attachments you don't need anymore or those that have been orphaned. Where can I get a list of my attachments? Click on your display name in the upper right corner of the forums and pick "My Attachments" from the drop-down list. How can I tell an attachment is orphaned? If the PM has been deleted, you'll see a message like this in your attachment list: Unfortunately there is no message if the post has been deleted, so please check your old posts. We do purge old birthday threads every once in a while. Also some hosted projects have been shut down, so you may have orphaned attachments on one of those locations. Thanks!

Search the Community

Showing results for tags 'Construction Set Extender'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • News, Rules & Feedback
    • The Central Plexus
    • Games
    • Assimilation and Processing
    • Augmentation and Assembly
    • Discussion
  • Observatory Lounge
    • Fan Fiction and Other Tales of Insanity
    • The Inn
    • Nexus of Illusions
    • Revelations and Creations
  • Skyrim Projects
    • Various Works in Progress
    • The Brotherhood of Old
  • Oblivion Projects
    • Various Works in Progress
    • The Black Marshes
    • The Collective
    • The Dark Brotherhood Chronicles
    • Elsweyr Pellitine
    • FOMO (For Overly Modded Oblivions)
    • FOMO - Craftybits
    • FOMO High Rock - A Land of Upstart Nobles and Noble Upstarts
    • The Imperial Shipyards
    • PRISM of Hammerfell
    • Valenwood Islands
  • Morrowind Projects
    • Various Works in Progress
    • The Symphony
    • Unofficial Morrowind Patch

Categories

  • Projects
    • BOSS Development
    • FOMO - Craftybits
    • TES3Gecko
  • TES III: Morrowind
    • Audio - Music and SoundFX
    • Cities, Towns & Villages
    • Clothing, Weapons, and Armor
    • Companions and Followers
    • Cosmetic
    • Dungeons & Houses
    • Environmental and Landscaping
    • Gameplay Changes
    • Items & Resources
    • Miscellaneous
    • Overhauls and New Lands
    • Patches & Fixes
    • Quests
  • TES IV: Oblivion
    • Audio - Music and SoundFX
    • Cities, Towns, Villages & Inns
    • Clothing, Weapons, and Armor
    • Companions and Followers
    • Cosmetic
    • Dungeons & Houses
    • Environmental and Landscaping
    • Gameplay Changes
    • Items & Resources
    • Miscellaneous
    • Overhauls and New Lands
    • Patches & Fixes
    • Quests
  • TES V: Skyrim
    • Audio - Music and SoundFX
    • Cities, Towns & Villages
    • Clothing, Weapons, and Armor
    • Companions and Followers
    • Cosmetic
    • Dungeons & Houses
    • Environmental and Landscaping
    • Gameplay Changes
    • Items & Resources
    • Miscellaneous
    • Overhauls and New Lands
    • Patches & Fixes
    • Quests
  • Total War Games
    • Mods
    • Tools
  • Other Games
  • Miscellaneous

Calendars

  • Community Calendar

Found 2 results

  1. Introduction Coda is the scripting language for the Construction Set Extender (CSE). It is not Legacy, or the scripting language used for Oblivion. It is a scripting language that you can use to automate a variety of tasks in the editor, such as renaming objects, moving objects or batch editing object attributes. In this guide, or tutorial, I will show you how you can use Coda to accomplish a variety of tasks. Documentation The Coda Manual is distributed with the Construction Set Extender. You will find it in Data\Docs\Construction Set Extender. The manual explains the general syntax of Coda scripts and how to execute them. It also describes the general language structure, including a description of variables and data types, operators and flow control. In addition to the manual, there is the Coda Command document, which is an HTML file listing all the functions and commands. Since the command set is still being developed, the command document is not included in the distribution. Instead you can generate the most recent version by typing DumpCodaDocs from the console command prompt (see below). Creating and Running Scripts The structure of Coda scripts is described in the manual, so I won't repeat it here. I will be listing several examples that you can use to get started. You create your scripts using a text editor. If you use an editor like TextPad or NotePad++, you can use an Oblivion script syntax highlighter. Coda shares its basic syntax with Legacy. Save your scripts with .coda for the extension. Scripts must be in Data\BGSEE\Coda to be accessed and executed from the command line. Once you've created a script, you run it from the command line in the CSE console window. Here's an example: Coda scripts are invoked with the RunCodaScript command. The command takes two parameters: the script name minus the extension and a boolean integer indicating whether it's a background script or not. You would use 0 for a regular script and 1 for a background script. Most scripts would be run as a foreground process. I will provide one example of a script that must be run as a background process. Sample Scripts Here are some sample scripts. They are all real scripts, so you can adapt them to your purposes. Strip off Leading Digits from Editor IDs This script will strip off the leading digits from editor IDs, which are known to cause problems with Oblivion scripts. It processes all AI packages. You can change the batch of editor IDs by changing the form type ID parameter for the GetDataHandlerFormList function. GetDataHandlerFormList can accept hexadecimal or decimal values. In this example we are using the hexidecimal value for AI packages. The decimal equivalent is 61. The full list of form type IDs is in the Coda Command Documentation or the OBSE documentation. CODA(ChangeEditorID) var Buffer var EditorID var firstChar begin ; retrieve AI package forms forEach Buffer <- GetDataHandlerFormList(0x3D) EditorID = GetEditorID(Buffer) firstChar = StringSubStr(EditorID, 0, 1) ; we only want to change the editor IDs that start with a number if StringIsNumber(firstChar) printC("editorID (old) ="//$EditorID) ; skip the first character. If there is more than one digit, ; change the starting position so that it skips all the digits. EditorID = StringSubStr(EditorID, 1, StringLength(EditorID)) printC("editorID (new) ="//$EditorID) setEditorID(Buffer, $EditorID) endif loop ; It's pretty quick, but nice to know exactly when it's done. printc("All done.") end Save this script as ChangeEditorID.coda and execute it by typing RunCodaScript ChangeEditorID 0at the command prompt. Note that the command and parameters are not case sensitive. Add Mod Prefix to Editor IDs for Cells This script will add the specified mod prefix to the cell editor IDs. This is handy if you would like to have a naming convention for the objects in your mod and some team members neglected to prefix their editor IDs accordingly. This example renames the editor IDs for cells, but once again, you can change the scope by changing the form type ID. This time we're using the decimal value for cell, which is 48. Semi-colons ( are used for comments in Coda, just as they are in Oblivion script. The printC commands have been commented out in this sample. CODA(AddBMStartCell) var Buffer var EditorID var firstChars var length var formIDString var formStart begin forEach Buffer <- GetDataHandlerFormList(48) EditorID = GetEditorID(Buffer) formIDString = FormatNumber("%08X", (int)Buffer, 1) ;printc("form string = "//formIDString) formstart = StringSubStr(formIDString, 0, 2) if StringCompare(formStart, "01", 0) == 0 firstChars = StringSubStr(EditorID, 0, 2) length = StringLength(EditorID) if length == 0 continue() endif if (StringCompare(firstChars, "BM", 0) != 0) ;printC("editorID (old) ="//EditorID) EditorID = "BM" // EditorID ;printC("editorID (new) ="//EditorID) setEditorID(Buffer, EditorID) endif endif loop printc("All done.") end Print Random Numbers Here's a little test script to show how the random number function works. I use this function later. In this case, I'm generating random numbers between 0 and 359, which correspond to angles. The generated numbers are floats with six decimal places. CODA(Random) var randomNum var i begin while i < 10 randomNum = RandomNumber(0, 359) printC("Random number: "//$randomNum) i += 1 loop end Change Imperials and Nords to Orcs and Dark Elves Here's a script that shows an example of the Base Form Component (BFC) functions. It switches the race of all male Imperial and Nord NPCs to Orcs and Dark Elves. CODA(SwapRace) var npc var race begin forEach npc <- getDataHandlerFormList(35) race = getBFCRace(npc) if (race && (race == getFormByEditorID("Imperial") || race == getFormByEditorID("Nord")) && getBFCActorBaseDataSex(npc) == 0) printC("NPC "//getEditorID(npc)//" switched to new race!") if (race == getFormByEditorID("Imperial")) setBFCRace(npc, getFormByEditorID("Orc")) else ; nord setBFCRace(npc, getFormByEditorID("DarkElf")) endif markAsModified(npc, 1) endif loop printC("All done!") end All the scripts so far are executed as regular foreground scripts. Before I detail the monster background script, I'll direct you to the Disable Trees example on the CS Wiki. Disable Trees demonstrates how to scan exterior cells for specific objects and disable them. It also mentions a key CSE function: you can get a list of all cell form IDs by using the Export tool from the main menu. File -> Export -> Interior and Exterior Cell Data
  2. Introduction shadeMe has created an OBSE plugin that greatly enhances the Construction Set, called the Construction Set Extender (CSE). The CSE not only fixes a ton of bugs in the Construction Set, it also adds a ton of enhancements. You can use the CSE to create your mod even if you don't plan on using the OBSE for your mod - it does NOT make your mod dependent on OBSE. In this guide, I will explain how to create patches with the CSE. One of the features of the CSE is that it will automatically flip the master flag on a plugin so that any plugin can be used as a master file. This makes the process of creating patches much easier. There is no need to use other tools to flip the master flag or fussing with mod de-isolation techniques. Installing the CSE If you aren't using OBSE already, you will need to download and install that first. Details on the most recent version of OBSE and download links can be found in the discussion thread on the Bethesda official forums. You can download the current release of the CSE from here. Once you've downloaded the package, unzip the archive to the Oblivion game directory. The newer versions of the CSE have a batch file for starting it called Launch CSE.bat. I suggest creating a shortcut to that batch file and putting it on your desktop or taskbar. Creating a Patch Creating a patch on a regular plugin with the CSE is exactly the same as creating a patch on a master with the CS. Open the CSE. Double-click on the plugin that you are patching. Do NOT click on the Select as Active File button. Click Ok. Click Yes when prompted to continue without selecting an active file. Make your desired changes. When you save your file, a new plugin will be created. To continue working on your patch, just double-click it from the Data dialogue and click on Set As Active File, then click Ok. The CSE will automatically load all required plugins. Brief Overview of the CSE First, when you open the CS with OBSE after installing the CSE, your CS should look something like this: You may not see the Console Window as it might be hidden behind the other windows. Try pulling the Object Window aside - the Console Window often winds up under the Object window. I recommend you keep the Console Window open while you are working, even if you need to make it tiny. Errors and messages don't pop up any more with the CSE - they are displayed in the Console Window instead. Here's a close-up of the Console Window: You can right-click on the Console Window to display the context menu. If you select Open Log, you will open a text file with all output written to the Console window. The Console Window will only display the last batch of messages, so you may need to open the log from time-to-time to see all the messages. The Change Log shows you everything you have modified in your current session - whether you intended those changes or not... The CSE helps reduce unintentional edits by offering a Cancel button on many of the dialogue boxes. If you are just looking something up, get in the habit of clicking Cancel to ensure you don't inadvertently modify a record. Unfortunately there is no Cancel button on the Quest window, so save your plugin before opening the Quest window. If the plugin shows an unintended change, close down the CS, telling it that you don't want to save your changes. Or clean your plugin with TES4Edit before submitting it for merging or releasing it to the community.
×