Skyrim Mod:SkyProc/ChangeLog

Mod / Skyrim: Skyrim Mod: SkyProc

Please do not change this unless you are a SkyProc dev.

X - Major Release

X.X - Minor Release

X.X.X - Bugfix

Change LogEdit

NOTE: Check the SkyProc downloads page for a listing of recent changes post 1.5.


  • Added a new starter project that conforms to SUM standards.
  • Reworked how condition records and embedded scripts were implemented. Thanks to Arkangel for hand-parsing the embedded scripts!
  • Patch now adds as masters any other mod that modified any record it contains. (symbolizing that those mods had a part in its patch)
  • Updated SUM and SUMGUI code, GUI, and protocols.
  • Now reads STRINGS files from BSAs (Dawnguard)
  • BSA parsing more robust; Handles bad file type flags.
  • Removed masks
  • Bug fixes and internal protocol adjustments


  • FormID standardization bugfix.


  • Added a new consistency system that keeps track of old EDID <-> FormID pairs. This makes it safe to erase generated .esp files without risking a ruined savegame.
  • Added SaveFile functionality
  • Added a new GUI setup called SUMGUI (featured in Automatic Variants). SkyProc coders can now easily set up their own GUI with their own custom settings. The GUI setup will automatically handle saving/loading settings.
  • Added the beginnings of a SUM (SkyProc Unified Manager) management interface/program. This will eventually serve as a coordination program between SkyProc patchers and streamline the patching process for end users who run multiple skyproc mods.
  • Added a Nifty class that offers lots of "nifty" functions that streamline common or tedious jobs for you (such attaching a script to a race as a racial spell).
  • Added a lot more functionality, support, and accessors for many record types. Check the Javadocs for detailed listing of functions offered now.
  • Added/Tweaked a lot of LevGUI classes


  • Added ProgressBar functionality, which comes embedded in the Default GUI, but can also be used for custom GUIs as well.
  • Decoded and added accessors for MGEF, INGR, ALCH.
  • Added NiftyFunc class as a place to find common useful functions.
  • Added genScriptAttachingSpel function to NiftyFunc class, which creates the MGEF and SPEL records necessary to create a spel that will attach the desired script to the actor. This is usually used by adding the spell as a racial ability to an NPC's race.
  • Added genSafeScriptAttachingRace function which does a similar function as above, but instead returns a duplicate race with the script attachment racial spell. Replacing an NPCs race with a duplicate will prevent the script from being attached to all OTHER NPCs that share the original race.
  • Added/adjusted accessors for SPEL, RACE, KYWD, and WEAP.
  • SPDefaultGUI now has a replaceHeader() function that allows you to replace the text header with an image you supply.
  • Reworked script public API to be more streamlined. A new ScriptRef object can be created representing a script with its properties that can be added/modified in a major record.
  • Bugfixes and tweaks.


  • Added BSA and NIF support (limited)
  • Added consistency system that will match records to their old FormIDs based on matching EDIDs. Because of this, having unique EDIDs is very important.
  • Changed to the new Skyrim load order protocol
  • Added a lot of accessing functions
  • Bugfixes

1.1 -

  • Added WEAP group with lots of accessing functions
  • Added SPGlobal.setGlobalPatch() that you can set to your output patch as, to prevent it from being imported using importActiveMods or importAllMods(). Make sure to do this before you import.
  • Made SPDatabase a singleton global database. You no longer need to create a SPDatabase object. In addition, Mods will automatically add themselves to the database on import and/or creation, and sort themselves by load order. Custom created mods will add themselves so that the latest user-created mod is last on the load order.
  • Modified SkyProc's DefaultGUI's add() function to allow users to add their own custom components to the default GUI.
  • Exposed the VMAD script packages of supported GRUPs. It is called the ScriptPackage Object in SkyProc.

  • Made patches output STRINGS files by default, rather than embedding by default.
  • Fixed some GRUP concurrency modification pitfalls. You should now be able to iterate over a GRUP and add records to it without issue.
  • Fixed Mod's makeCopy function to add proper masters to the target plugin
  • Made all plugins always sort their master lists by load order (for complex addAsOverride() calls)
  • Fixed ScriptPackage to properly standardize indices

1.0.3 -

  • Keywords are now properly standardized to the correct modindex.
  • All STRINGS files are now always exported if the patch's strings flag is on, rather than just exporting used STRINGS files.
  • STRINGS files now output starting at index 1, so as to avoid exporting as 0 (NULL).
  • Made PERK grup importing a bit smarter to handle odd records. (from pre-CK)
  • Changed the default path to Data/ in the starter program. The starter program now comes with the new default folder structure setup. "Data/SkyProc Patchers/*** Your custom folder ***/*** Your custom patcher.jar ***. You must make sure to either change this default path, or abide by the folder structure, so your patcher can properly locate the Data/ folder.
  • A serialized-based generic copy function has been created to make duplicates of records. This must be called from a patch, so that the duplicates properly originate from a mod.
  • SPImporter is now non-static. You must make an SPImporter object to call any of its importing functions.
  • SPImporter now supports masks, which limit what is imported from a specific GRUP to speed up importing.
  • SubFormRecord has been renamed to SubForm for easier use.
  • SkyProc can now support RACE/ARMO/ARMA importing. However, most of the related get/set functions have not been written, those to come.

1.0.2 -

  • Fixed FormID constructor: FormID(String id, ModListing master). This constructor was reversing the ID one too many times.
  • Fixed IMGS's TNAM package ordering. Alpha was at the end instead of beginning.
  • Added lines in the starter project. Made the database the defined global database, and merged the imported data into the patch for the user.
  • New, easier to use, FormID and ModListing constructors. Most notibly: FormID(String ID, String master)
  • SPDatabase's queryMajor related functions made static with optional parameter to specify the database to query. If left blank it simply queries the defined global database.

1.0.1 -

  • Adjusted internal code to deal with mods that have odd suffixes on their master list ("Skyrim.ESM")

1.0 -

  • Initial Beta release.