[Previous] [Main] [Next]

Added: New script function, GetActiveEspNames

Added: New script function LoadEarly
Added: A new option to never ever modify load order, even if scripts request it. (For anyone who uses bash exclusivly to manage load order)

Fixed: Issue with bsa creator when a bsa contains many files

Added: New C# script functions: 'CancelDataFileCopy' and 'CancelDataFolderCopy'
Fixed: BSA's registered via the RegisterBSA script function no longer get added before the redirection BSA.


Added: New C#, vb and python script function 'GenerateBSA' to pack data files into a BSA.
Added: New C# and vb script function 'SetNewLoadOrder' to set the load order of existing plugins.
Tweak: In C#, vb and python scripts, LoadAfter/LoadBefore can now be used on plugins created by CopyPlugin. (This was already possible in obmm scripts)


Added: GetPlugins/GetDataFiles/GetPluginsFolders/GetDataFolders can now be used from simulated scripts. (From niaht)
Added: C#, vb and python scripts can now access data files inside BSAs, instead of just the normal loose files.
Added: C#, vb and python scripts can now generate new data files mid script.
Added: New C#, vb and python script function 'GetOBSEPluginVersion' to check the version info of obse plugin dll's.
Fixed: Script functions to get the Oblivion or OBSE version weren't working from C# or vb scripts.
Fixed: Exceptions when using the simulate button in the script editor to simulate a script that displays dialog boxes or forms.
Fixed: A possible crash when checking the required data files of an esp which uses a mesh stored in a custom BSA.

Fixed: Activating an omod which tried to overwrite an esp which had been added to the data folder while obmm was running would cause the activation to fail.

Added: Script simulation (From Falados)
Added: C#, vb and python scripts get an IsSimulation and ReadExistingDataFile function
Tweak: C# and vb scripts can now use resources in the System.Xml namespace
Tweak: C#, vb and python scripts are now enabled by default
Fixed: PatchDataFile was broken when called from C#, vb or python scripts if the file to be patched already existed
Fixed: CopyDataFolder was broken when called from C#, vb or python scripts

Added: Python scripts now have some security
Added: New functions for C#, vb and python scripts (CreateCustomDialog, ReadDataFile)
Tweak: C# and vb scripts can now use resources in the System.Drawing and System.Windows.Forms namespaces
Fixed: Security exceptions when using c# or vb scripts
Fixed: null reference execption if a C# or vb script didn't contain a Script class. (It'll now give a useful error message explaining the problem)
Fixed: SetPluginXXX functions when called from C#, vb or python scripts were broken
Fixed: Install/DontInstall/CopyDataFolder functions were broken when called from C#, vb or python scripts

Added: On vista, obmm can now detect if file writes are being redirected to the virtual store, and will start up in limited user mode if they are
Added: On vista, if obmm is set to run as an administrator it will offer to move files out of the virtual store back to oblivion's directory
Tweak: Changed the behaviour of the SelectWithDescriptions dialog slightly
Fixed: More python stuff (From Falados)

Added: An option to export omod conversion data without unpacking the omod
Added: 5 new scripting functions for editing esp's
Fixed: Some python syntax highlighting. (From Falados)
Fixed: The DependsOnRegex and ConflictsWithRegex script functions were broken


Added: Support for using python, C# or vb scripts in the place of obmm's normal scripting language. (Thanks to Falados for the python code.)
Added: A few more keyboard shortcuts
Added: obmm scripts can be cancelled by hitting escape
Added: All options on the settings form now have tooltips
Tweak: Gaps in an omods version number now get treated as zero's, instead of causing the version number to reset back to 1. (i.e. '.1.0' becomes '0.1.0' instead of '1')
Tweak: When converting omods to archives, or extracting to folders, the 'do you want to create omod conversion data' prompt is now given before any files are unpacked.
Tweak: When converting an omod to a 7z archive, -mx7 compression is used instead of -mx9 if the compression boost option is not selected
Fixed: Several functions would crash obmm when used on an omod that had been activated using the 'acquisition activate' button
Fixed: When deleting active omods, two error prompts were displayed out of order, causing Weird Things to happen if you clicked yes to the first and no to the second

Added: ConflictsWithRegex and DependsOnRegex script functions.
Added: An option to disable conflict tracking on the settings page. (All inactive omods display green, but decreases startup time and speeds up omod activation.)
Tweak: Updated the script editor to use the latest version of sharpdevelop's text editor. (2.1 beta 1 -> 2.1 final)
Fixed: InputString script function was broken

Fixed: Crash bug if two omods tried to edit the same line of oblivion.ini
Fixed: If two omods edited the same line of oblivion.ini, obmm would still display 'line xxx has already been modified' warnings even after both omods were deactivated


Added: The nif viewer now respects a few extra NiXXXProperty nodes
Added: Any nif subsets which require alpha blending are now sorted before being rendered.
Fixed: Fixed some broken shaders in the nif viewer.
Fixed: A bug that could let multiple copies of obmm run at once.


Added: A new 'acquisition activate' option for omods. (See the readme for details of what it's supposed to do.)
Added: A 'view load order' button, which displays your load order in a human readable format ready for copy/pasting. (Too many people failing to grasp the concept of copy/pasting from plugins.txt)
Added: The nif viewer now has an option to toggle backface culling
Added: Loading and resaving a nif with the nif viewer will automatically fix any forward slashes in texture file names
Tweak: Updated unrar.dll to the latest version. (3.6 -> 3.7)
Tweak: Switched the default archiveinvalidation mode from BSA alteration to BSA redirection. (Only affects new users; updating users will just get a message advising them to switch.)
Tweak: obmm now displays a warning if you try to turn on 'autoupate on exit' while using bsa redirection.
Tweak: When editing shaders, obmm no longer changes the time stamps on any modified sdp's.
Tweak: When viewing a single subset in the nif viewer, it now displays the formats of the normal/glow maps if any are loaded.
Fixed: In some cases PatchPlugin could display an error saying that the plugin couldn't be patched even though it had already been patched succesfully.
Fixed: PatchPlugin was changing the timestamp of the patched file
Fixed: The nif viewer was reading the tangents/binormals incorrectly
Fixed: The non-parallaxed normal map shader had the y axis inverted.
Fixed: The nif viewer was trying to apply a specular map, even when none existed
Fixed: The apply mode combo box in the nif viewer wasn't being updated when the subset being viewed was changed.


Added: An option to allow the use of windows explorer style shift\control shortcuts on SelectMany menus.
Added: The script editor now remembers its previous size.
Added: The bsa browser now lets you preview textures as well as meshes.
Added: When viewing the data files used by an esp, texture files referenced by nifs which are packed into bsas are now picked up
Added: When viewing the data files used by an esp, obmm now tries to work out if _n and _g textures are actually used before listing them.
Added: The nif viewer can now open nifs which lack textures or UV coords.
Added: The nif viewer can now open nifs that use triangle lists intead of strips.
Added: The nif viewer now generates a log of which TriStrips failed to load. (Push 'L')
Added: The nif viewer now has some new shaders available that give colour representations of normal, tangent and binormal data
Added: Initial support in the nif viewer for some additional shaders added by obge.
Tweak: The EditXML... functions now work on other text files. (.ini, .txt, .bat)
Tweak: The various clean options will now always skip over files which are included in the base oblivion installation.
Tweak: The nif viewer now loads the bsa contents when needed instead of at startup.
Tweak: The nif viewer was updated to use the latest version of niflib (0.6.2 -> 0.7.2)
Tweak: If a nif contains a TriStrip that the nif viewer can't handle, only that subset will fail to render instead of the nif viewer failing to load the whole mesh.
Tweak: Saving a mesh with the nif viewer no longer automatically saves the colour map. (Saving the colour map is now a seperate option)
Tweak: Saving a mesh with the nif viewer now brings up a save file dialog instead of automatically trying to save over the old mesh
Tweak: Generating a heightmap for a nif no longer automatically sets the subset that the texture belongs to to use the parallax shader.
Fixed: Opening the script editer caused the saved position of the generic text editor to be lost.
Fixed: Holding down control to specify yes to all or no to all now works again
Fixed: The nif viewer couldn't load any nif's that were stored in the data directory instead of the BSAs
Fixed: Nif viewer crash if you clicked save without opening a nif first
Fixed: Nif viewer crash, due to trying to change the magnification filter when anisotropic filtering was enabled.
Fixed: Nif viewer crash if device was destroyed while a nif was loaded


Added: New script functions to support oblivion graphics extender ('If GraphicsExtenderPresent' and 'If GraphicsExtenderNewerThan')
Added: A context menu to script editor
Added: If the flow control checker finds multiple issues, up to 10 of them will now all be displayed instead of just the first one.
Added: Flow control checker now picks up some unreachable code and multiple sequential Default's.

1.0.1 (Beta)
Added: 'Continue' and 'Exit' script flow control statements.
Tweak: Rewritten flow control in scripts. (Should solve the problems caused by nesting many layers of flow control, but may break scripts that depend on the broken behaviour.)
Fixed: Error when trying to activate an omod which tries to modify a part of oblivion.ini which has already been modified by another omod
Fixed: The script flow control checker no longer displays incorrect results if your script contains unix style line ends
Fixed: The script flow control checker was displaying incorrect errors when Break statements were nested inside If or For statements

Added: A shortcut to the scripting help in the toolbar of the script editor
Added: Run-on lines in scripts. (Put 'AllowRunOnLines' on a line by itself, and then end a line with a '\')
Added: Added a button to remove an image from an omod in the omod creator.
Added: The 'do you want to overwrite ...' prompt when activating conflicting omods now tells you which omods the existing file is owned by.
Added: Readded the Goto and Label script functions. They now behave slightly differently, so see the scripting help for details
Added: Some additional If conditions. (Equal, GreaterThan, GreaterEqual, fGreaterThan, fGreaterEqual)
Added: A 'check flow control' button in the script editor. Scans for malformed lines and control structures.
Added: New command line option '-conflict-detector' to launch the conflict detector without loading the main parts of obmm. (The installer will create an appropriate shortcut if requested)
Tweak: Slightly better FormID formatting in the new conflict detector.
Fixed: The open readme link in the installer had gone missing at some point in the 0.9.x series.
Fixed: New conflict detector crash if no mods were active

Tweak: Slightly reduced memory requirement for using very high 7z compression when an omod contains both esps and data files.
Tweak: Tweaked layout of the new conflict detector, and removed the BETA tag.
Fixed: New conflict reporter crash when 'read EDIDs' was checked and an esp contained 0 length records.
Fixed: The new conflict reporter was displaying empty record groups when 'display non conflicting records' wasn't checked.

Added: 2 new script functions for editing XML files.
Tweak: When creating an omod, you can now remove files by using delete or backspace instead of having to use the context menus
Tweak: SelectManyWith... functions now show the preview/description of the most recently selected option. (Previously you had to deselect all options but the one you wanted to preview.)

Fixed: Crash if you checked 'pack face textures into redirection target BSA' but didn't actually have any face textures.

Added: A new archiveinvalidation method; BSA redirection (Thanks Quarn!)
Tweak: Renamed the archiveinvalidation options to match dev_akm's faq.
Fixed: When clicking 'create' on the omod creation form, the file list would flip between plugins and data files
Fixed: Extracting an omod to a folder now works when the folder you are extracting to is on a different drive to obmm's temp folder.

Added: Extra script functions to manipulate strings
Added: Extra script functions to perform basic maths
Fixed: ScriptExtenderNewerThan _still_ wasn't fixed.

Added: You can now just drag/drop individual files from the BSA browser into windows explorer instead of having to use the extract button and go through the file dialogs.
Fixed: When extracting an omod to a folder or converting it to a standard archive, esps in subfolders no longer go missing.

Added: Drag and drop support for modifing load order
Tweak: Trying to move an esp before an esm in the load order now displays an error message instead of failing silently.

Fixed: Load order problems introduced in 0.9.16

Fixed: obse functions still weren't completely fixed.
Fixed: esps with identicle timestamps weren't properly fixed either.

Added: A new option to ignore plugins with a timestamp in the future when inserting new esps into the load order
Tweak: bash's copy of the plugin load order now includes the timestamps.
Tweak: obse script functions now look for 'obse_loader.exe' instead of 'obse.dll'. (Thanks to Waruddar for pointing out that the dll name changed in version 0009c)
Fixed: Archive invalidation no longer crashes if bits of the [Archive] section are missing from oblivion.ini
Fixed: The load order now handles esms correctly. (Esms always load before esps, regardless of the last modified date)
Fixed: obmm should now handle multiple esps with identical timestamps correctly.

Added: A copy of plugins.txt will be copied to obmm's directory for wyre bash to use.
Added: obmm will now ensure that shader packages are not read only. (Fixes an issue with the 1.2 patch)
Tweak: Improved check for multiple running obmm copies
Fixed: The SetGlobal script function wasn't working on globals containing upper case characters
Fixed: Bug caused by manually removing active omods from obmm's mod directory. (Could cause startup crashes or other omods to deactivate themselves.)
Fixed: Several buglets with Default statements in scripts

Fixed: Possible crash when opening the Nif viewer
Fixed: Possible crash when trying to get a list of used textures for an esp.


Fixed: The nif viewer now renders vertex colour slightly more correctly.
Fixed: Default statements in selects now get fired correctly, (was broken in 0.9.11...)
Fixed: More nested Select screwiness
Removed: The 'check for updates' button. (Updates are too infrequent now to warrent it.)


Added: Certain yes/no dialog boxes now let you choose 'yes to all' or 'no to all' by holding control while clicking
Added: New utility - NIF viewer (requires Managed DirectX December 2005 update or newer)
Added: A preview button to the BSA browser. (Uses the nif viewer, obviously, so also needs MDX)
Tweak: omods are now allowed to overwrite each others ini and sdp edits (A similar warning will be given to when they try to overwrite esp's.)
Fixed: Many omod group bugs caused by the 'None' group getting lost when opening the settings menu.
Fixed: The warning given when trying to delete an active omod now has some resemblance to reality
Fixed: obmm would sometimes try to force deactive omods which had already been deleted, resulting in crashes on startup
Fixed: Unchecking the warn on script ini edit option didn't actually stop obmm from warning you about scripts editing oblivion.ini
Fixed: Force disable was only trying to disable omods which were already disabled
Fixed: syntax highlighting on some functions which take a variable as the first argument wasn't colouring the variable name

Added: A new function 'SelectString' which behaves in the same way as SelectVar but it does not require a variable as an argument
Tweak: Attempting to use the SelectVar function on a variable which doesn't exist will now display a warning
Fixed: Syntax highlighting on IfNot
Fixed: ExecLines now works correctly if it's used in the last line of a script
Fixed: Nested Select functions now work correctly
Fixed: The BSA creator was complaning about files being to big when they were about 50% of the size it could actually cope with
Fixed: The BSA creator could create corrupt BSA's if more than one file was included from a folder when a third file was included from a subfolder of that folder

Added: Syntax highlighting when editing scripts
Tweak: Unterminated variable names or variables overlapping strings in scripts will now display warnings
Fixed: Trying to use an animated image as a preview no longer causes Weird Things to happen. (animated images are not supported)
Fixed: Tooltip text on the save button in the text editor
Fixed: Another possible crash when running obmm directly after an oblivion reinstall.

0.9.9 (BETA)
Tweak: Added scroll bars to the descriptions shown when the SelectWithDescriptions command is used
Tweak: Mods are now allowed to overwrite existing esps. (Although very much under protest :p)
Fixed: Removed a +1 from the text editor which shouldn't have been there. (fixes the 'find next' button when the search term appears twice without any seperation)
Fixed: When a mod has a conflicting data file and you choose not to overwrite, obmm no longer fails to copy the next non conflicting file
Fixed: A couple of documentation errors

Fixed: Trying to display previews in a select function was broken in 0.9.7


Added: 4 new script functions to manipulate file paths. (Useful for modifing the output from the 'For Each ...' functions)
Added: An InputString function to read in player input
Added: A 'Return' function to exit from scripts early
Added: 4 new Select functions to allow the addition of text descriptions of the options
Added: PatchPlugin and PatchDataFile script functions for creating patch omods
Added: An 'Unlink' option to the esp context menu
Tweak: The 'very high' compression setting when using 7-zip no longer uses quite such a ridiculous dictionary size
Tweak: Added a check to the 'Copy...' script functions so that it displays an appropriate error if someone trys to copy a file over itself.
Tweak: Updated inno setup installer version to 5.1.8
Fixed: Missing line breaks in the info view if a shader performed multiple shader edits
Fixed: An empty string wasn't considered to be a safe path, meaning that the 'For Each ...' functions couldn't act on the root of the omod
Fixed: esps/esms no longer show up as data files in the data files view. (They belong in the esps view, after all...)
Fixed: Line numbers in script error messages were always one line out.
Fixed: Error messages given for the CopyPlugin script function would sometimes be mixed up with CopyDataFile errors.


Fixed: omod validation when creating the omod didn't work properly


Added: An option to extract omods to a folder. (As opposed to recompressing them to an archive)
Added: Instead of always removing the newer file, the validate omod option will now give you the choice of files to remove.
Tweak: Rewrote the validate omod option to be much faster when dealing with larger mods
Tweak: The omod creator now validates the omod immediately before creation
Fixed: Error when hiding an omod which contained a picture while that picture was being displayed in the preview box
Fixed: If you choose not to create the omod conversion data when converting an omod to a zip, any esp files weren't saved either


Fixed: The hidden omod switcher wasn't openening

Added: A 'reset' button on the options menu, for people with corrupt settings files.
Added: The ability to hide omods, which reduces the resources required by omods which are not going to be activated in the immediate future
Added: The omod info page now shows info about ini and shader edits that have been made by an omod
Tweak: Made the select form a tool window (no icon or control box. The control box was disabled, so it was confusing people leaving it there)
Tweak: The preview button on the select form is now hidden if there are no previews, and is enabled immediately if the script specifies default values
Fixed: Some file manipulation script functions had become case sensitive
Fixed: The crash on opening the omod creator that was reported by some people. (If this happens to you, read the warning carefully.)
Fixed: Trying to clear your omod groups when none exist no longer crashes obmm

Added: An 'unsafe' mode. In this mode obmm starts up much faster, but manually changing your data folder may cause weird errors
Added: A few command line arguments to launch obmm componants without having to wait for its normal GUI to load
Added: A rescan esp headers option under the batch actions menu. (For use in unsafe mode or if you have 'update unparented esp headers' disabled)
Tweak: A few tweaks to try and decrease startup time
Fixed: obmm would attempt to load settings files from newer obmm versions, resulting in permanent save file corruption.
Fixed: BSA creator error if you started to edit a path but then exited without making any changes
Fixed: The CopyPlugin, CopyDataFile and CopyDataFolder script commands now preserve case
Removed: The option to back up shader packages. Use omods combined with EditShader instead. (This method allows multiple mods to edit the same shader package)

Added: SelectVar script function
Added: ReadINI script function
Added: ReadRendererInfo script function
Added: InstallDataFolder script function
Added: EditShader script function
Added: Select/Case/EndSelect structures can now have a default case
Tweak: When scanning for required data files, _n and and _g textures are now automatically added for all base textures applied to nifs.
Tweak: Shader packages and the original movies are now protected files, and cannot be overwritten by omods. (Use the EditINI and EditShader script functions instead)
Fixed: When getting a texture list from a nif, obmm was adding two sets of 'textures\' to the begining of the path
Fixed: Rounding error in BSA hash Generator. (Only affected wav files)
Fixed: When creating BSAs, uncompressed files were being incorrectly marked as compressed
Fixed: Crash when trying to use the old conflict detector
Fixed: If you manually delete an active omod from your omod directory, any ini edits it had made are now correctly removed.
Fixed: If you used the background processes killer, oblivion would not start after it was finished

0.9.0 (BETA)

Added: Completed the BSA creator. It should now generate working BSAs
Added: A BSA uncorrupter utility, which checks that BSA hashes match up with the filenames, and fixes them if they don't
Added: String variables in scripts.
Added: Loop support in scripts.
Added: CopyDataFolder now optionally acts on subfolders too
Added: An ExecLines script function.
Added: The various Select functions now let you specify default selections by putting a '|' in front of the parameters.
Added: An option to back up the original shader packages, and restore them after using an omod which overwrites them
Added: A data file browser, to view the files in your data folder and BSAs, as well as the omods they're attached to.
Added: The built in updater can now update the readme as well as the main exe.
Added: A background process killer similar to MGE's. (No option to restart processes this time though.)
Added: The beginnings of a new conflict detector tool. (The old one is obviously still available for now, since the new one is barely functional)
Tweak: When converting an omod back to a zip/7-zip archive, you are now given an option to not create the omod conversion data folder
Tweak:Added a warning to the launch oblivion button to point out that it does not have to be used for obmm to work
Tweak: Added a progress dialog to the BSA patcher
Tweak: BSA patcher now checks the BSA flags for file types, speeding it up massively if you only want to edit textures
Tweak: Crash dumps no longer include the blurb at the start, and include a date/time stamp
Tweak: Inner exceptions and obmm's version number are now also included in crash dumps
Tweak: On the old conflict detector, all dialog overlaps now show up as minor conflicts.
Fixed: Passing False as the second parameter of DontInstallDataFolder caused it to fail
Fixed: Unterminated quotes in scripts are now picked up correctly. (Previously, the script interperator would complain about missing arguments.)
Fixed: Extracting files from BSAs now works again. (Broken some time in the late 0.8.x series)
Fixed: Irreversable BSA corruption if you use the BSA editor and then do some combination of oblivion reinstall/patch without reversing the edits.
Fixed: omod conversion data not always imported if the omod contained no data files.
Fixed: omod conversion data wasn't importing the third version number
Fixed: when importing omod conversion data where only the major version was set, the an invalid version number would be created
Fixed: It was possible to move obmm's temp folder to C:\, or some other important location, and hence cause a huge loss of data.
Fixed: When moving the temp folder, any files in the previous location weren't deleted correctly.
Fixed: 0 length or locked BSAs will no longer crash the BSA patcher
Fixed: Not all unhandled exceptions were getting caught by the error handler
Fixed: When using more than 32 omod groups, filters and font changes did not work correctly

Added: Options to import/export omod group info
Fixed: A crash if you started editing the relative path of a file during omod creation, but canceled without making any changes (broken in 0.8.14)

Fixed: A crash if a SelectWithPreview or SelectManyWithPreview function was used but one of the cases didn't have an image assigned.

Fixed: A crash complaining about the OblivionBSA class constructor failing if you run obmm without ever running oblivion first.

0.8.15 (BETA)
Added: The ability to directly open BSAs. The installer will also optionally associate obmm with .bsa files.
Added: A new parameter to DontInstallDataFolder which allows it to optionally act on sub folders

0.8.14 (BETA)
Tweak: Clearer error message if the use of CopyPlugin in a script results in a conflict that render the mod unactivatable
Tweak: The omod creator now allows esps in sub directories. (These esps will be invisable to most obmm functions. Use CopyPlugin to install them)
Fixed: Identical warning messages getting displayed multiple times when trying to convert some archives to omods

Tweak: Clearer error message for some zips which cannot automatically be converted to omods
Fixed: The font selector dialog choosing the incorrect default font when changing the font of a group which already had a font assigned
Fixed: Conflict detector null reference exception
Fixed: BSA patcher complaining that another process was holding the BSA's open

Added: An option to set an individual font and colour for each omod group.
Fixed: Crash if you tried using the BSA patcher after deactivating an omod which contained a patched BSA if you didn't remove the patches first.
Fixed: Conflict reporter crash if there was a corrupt plugin in your data directory
Fixed: SelectMany bugs when more than 2 items were selected at a time
Fixed: Commas were getting stripped from scripts even if contained inside quotes
Fixed: A mistake in the DependsOn documentation.

0.8.11 (BETA)
Added: An option to move obmm's temp folder around. (For best performance, it should be on the same drive as your oblivion install)
Added: A 'CopyDataFolder' script function.
Fixed: A script error if you tried to use CopyPlugin twice with the same destination path each time

Fixed: Images in the save manager. (Really, this time.)
Fixed: The changelog link on the update page

Added: An 'OblivionNewerThan' script function to check oblivions file version. (Can be used to check if the official patch is installed)
Added A 'DontInstallDataFolder' script function to make it easier to not install whole folders.
Added: An option to rescan the headers of unparented esps every startup.
Fixed: Images in the save manager had the blue and red channels flipped
Fixed: ScriptExtenderNewerThan script function running incorrectly if obse was not installed at all
Fixed: Script error if a quoted string ended with a double escape. (i.e. \\" )

Fixed: An active mod marked as dependent on another mod using DependsOn was not deactivated correctly if the mod it depended on was deactivated first

Fixed: InstallPlugin and DontInstallPlugin script functions

Added: If you have obse installed and click 'launch oblivion' without specifing a command line, obse_loader.exe will be launched instead of oblivion.exe
Tweak: The add extra files option on the conflict report now lets you select esm's
Fixed: The SelectWithPreview and SelectManyWithPreview script functions

Added: 2 new scripting functions to check the users currently installed version of obse
Added: A 'view data files used by this esp' option on the main page
Added: The scan for data files required by this esp option now picks up many more files than it did previously
Tweak: Some script functions which would fail silently if a file name was misspelt will now display warnings

Fixed: Crash on startup if you had no omods installed (broken in obmm 0.8.3)

Added: A new limited user mode. (Previously limited users shared the normal interface, and would experience crashes on exit or when using some functions)
Fixed: Correct warnings are now displayed when data files conflict (broken in 0.8.0)
Fixed: The CRCs of installed data files were not getting updated correctly when conflicting mods were activated (broken since 0.1, apparently)
Fixed: esps and data files losing capitalization when the DontInstallAny... script functions were used.
Fixed: Some issues with the omod list forgetting where it had been scrolled to.

Tweak: Improved the installer a bit. (Now flashes up the gpl and offers to display the readme, also creates a shortcut to the readme in the start menu)
Tweak: Fixed some spelling mistakes and made a few changes to the documentation

0.8.1 (BETA)
Added: An option to enable/disable automatic conflict updating when enabling/disabling omods.
Added: The omod creator now remembers your previous compression type and level settings
Added: When adding folders to omods, archiveinvalidation files are now filtered out
Tweak: CopyPlugin now fails if the CopyTo parameter is in a subdirectory of the data folder, or doesn't have a .esp or .esm extension
Tweak: CopyDataFile now fails if you try to give the file a .esp or .esm extension
Fixed: The icon on the create mod form somehow got lost in 0.8.0
Fixed: When converting an omod to a normal archive and back, the omod conversion data folder would end up included in the omod
Fixed: Problems when adding esps with an uppercase extension to an omod, and even more weirdness when trying to activate them
Fixed: File names losing capitalization when added to an omod
Fixed: CopyDataFile now lets you copy data files to folders which do not exist in the original omod again. (Broken in 0.8.0)
Fixed: When converting omods to zip/7z archives, the overwrite prompt is now displayed correctly even if you don't manually add the file extension
Fixed: Including a '.' in the filename when exporting your active mods or load order no longer prevents the correct file extension being added

0.8.0 (BETA) (Save files from 0.7.x or earlier cannot be imported into this version)
Added: New script function 'CopyPlugin' which performs an identical function to 'CopyDataFile' except that it works on plugins
Added: New script function 'SelectMany', which performs a similar function to Select but allows users to select multiple options
Added: New script functions 'SelectWithPreview' and 'SelectManyWithPreview', which allow you to attach preview images to options
Added: New script functions 'DisplayImage' and 'DisplayText' which display an image or text file respectively.
Added: A new line on the omod info page to give the file version of the omod
Tweak: Updated all 3rd party libraries to their latest versions
Tweak: Partially rewrote some stuff to hopefully make things a bit faster
Tweak: The 'show omod info before installing' option no longer needs to temporarily copy the omod to your omod dir to extract the omod info
Tweak: omods are now unpacked before any attached script is run, allowing the addition of some extra script functions
Tweak: Manually deleting an active omod from obmm's mod directory will now cause obmm to clean that mod the next time it is started up
Fixed: Editing the script or readme of an omod after the omod had been created would corrupt it. (Corrupted omods are still usable, but contain a bit of garbage)
Fixed: Insanly slow loading of text files
Fixed: Crash when trying to use an rtf file containing embedded images as a readme
Fixed: (Possibly) Corrupt or password protected rar file error when running on windows xp x64.
Removed: The EditXML script function, since it was completely and utterly useless. (Use wz_Builder instead.)
Removed: The Label and GoTo script functions, which are not useful now that better control structures have been added. (These were undocumented functions anyway)

Added: The ignore normal maps option is available again when in edit BSA mode. (Unlike 0.7.11, it now actually does something)
Added: A 'reset to defaults' button on the archiveinvalidation page.
Fixed: The ConflictsWith and DependsOn script functions were horribly broken.

Added: An option to reset the BSA timestamps (useful after installing the 1.1 patch)

Added: When adding archives or folders to omods, any stray thumbs.db and desktop.ini files will be ignored
Added: The esp tooltips now display the first byte of FormID's from that esp
Tweak: omod creator tweaks to speed up creation and activation of large omods
Tweak: The archiveinvalidation tool now defaults to edit bsa mode
Fixed: The archiveinvalidation tool's ignore normalmaps option is now correctly disabled when in edit BSA mode
Fixed: The update conflicts option now updates the visable omod list instead of just obmm's internal values
Fixed: Removed the empty lines from esp tooltips when the esp doesn't contain a description

Added: Update conflicts option under batch actions
Added: More control over obmm's behaviour when you set the archiveinvalidation to edit BSA mode
Fixed: Possible permenent BSA file corruption if another program (eg. the CS) had a BSA locked open when you exited obmm
Fixed: The CopyDataFile function was broken. (Again...)
Fixed: Archiveinvalidation bug which caused sounds not to get picked up (Again...)

Tweak: Instead of complaining about hash map collisions, obmm will add archiveinvalidation entries for the problem files
Tweak: The save manager now sorts in order of date saved by default
Fixed: hopefully fixed the gradual slowdown when creating multiple omods in quick succession

Tweak: Clicking 'update now' in the archiveinvalidation generator will display a messagebox when done
Fixed: Read only esps no longer cause crashes when you try to modify the load order
Fixed: The 'edit BSA's' feature of the archiveinvalidation generator now checks for hash map collisions

Fixed: BSA timestamps no longer get updated when obmm undoes changes made by setting the ai.txt generator to edit BSA mode
Fixed: switching the ai.txt generator to standard mode from edit BSA mode no longer results in obmm not undoing changes
Fixed: Many fixes to the BSA creator. It still does not generate working BSAs as the hashing algorithm is incorrect
Fixed: When adding individual files to a BSA, the dialog now sets the relative path correctly
Fixed: When creating a BSA based on the contents of an esp, the relative paths get set correctly

0.7.7 (BETA)
Added: A new archiveinvalidation option to edit BSAs to prevent oblivion finding the original files
Added: If the last folder you added to an omod is missing, the dialog will now default to the closest higher level directory
Fixed: Closing the BSA browser while an archive is open no longer results in the file remaining locked

Fixed: Archiveinvalidation bugs with sounds and distantlod entries not being picked up

Fixed: Archiveinvalidation generator was using '\' instead of '/', resulting in missing textures
Fixed: A corrupt esp in the data directory no longer results in a crash on startup

Added: obmm automatically removes empty data subdirectories on exit
Added: A new and much improved archiveinvalidation.txt generator
Added: An option to delete backed up and corrupt omods
Tweak: Many menu options are now greyed out in situations where they are be unusable.
Fixed: Some overzelous file path security checks
Fixed: Removed the random . from the end of the omod belongs to field

Added: A clean filtered option to clean only the currently displayed omods
Added: Import/Export active omod lists and plugin load order options
Added: A 'compression boost' option, which may give slightly better 7zip compression in exchange for slower compression rates
Added: The 'add folder' option on the omod creator remembers the last path you selected over restarts
Added: A BSA creator (incomplete - does not create working BSAs)
Tweak: When loading omods created with obmm 0.5 or less, the extra .0 is no longer appended to the end of the version number
Tweak: Some speed optimizations (probably wont make any noticable difference, but every little helps)
Tweak: Reordered the interface to group all the batch operations together and give activate its own button back

Fixed: Using CopyDataFile to move a file to a directory which doesn't exist in the original mod no longer causes errors
Fixed: omods which contain a zero length file right at the end of the data file list now activate correctly

0.7.1 (BETA)
Added: An option in the omod creator to view an esps required data files without adding them to the omod
Tweak: The esp and omod sort orders are now saved over restarts
Tweak: A couple of things to try and prevent ghost file links from occuring (changes may have broken other stuff)
Fixed: Possible crash when sorting by omod creation date. (Old omods may no longer be sorted correctly)
Fixed: Crash when trying to save the contents of the text editor to a locked file
Fixed: Crash when archives only contain a single folder (introduced in 0.7.0)

0.7.0 (BETA)
Added: omods can be sorted by group (omods can belong to multiple groups, so this may not work as expected)
Added: Importing data from an esp imports the mod name too if the current omod name hasn't already been changed
Added: The conflict detector remembers its settings
Added: The data file conflicts list tells you which omod owns each file
Added: The clean omod option scans for ghost data file links
Added: Rename group and clear groups options
Added: A select/case/break flow control structure to scripts
Added: An option to move a group to the end of the list
Tweak: Clean all will remove any ghost data file links
Tweak: Improved the way the omod creator detects readmes
Tweak: Trying to import the author/description from an esp which doesn't contain them displays a warning
Tweak: renamed the 'delete' menu item to 'remove from omod' on the omod creation form
Fixed: Adding a zip to an omod via the add archive button no longer causes an error if the zip contains a zero length file
Fixed: archives which are packed correctly but which only contain a single folder no longer get turned into corrupt omods
Fixed: A corrupt settings file no longer completely prevents obmm from starting up
Fixed: The DataFileExists script function has been fixed
Fixed: Editing an omod which contains a screenshot, canceling the edit then clicking the omod no longer results in a crash
Fixed: trying to load a read only omod no longer results in an error

Added: The automatic archiveinvalidation generator now lets you select the file types it will include in the file
Fixed: VersionLessThan and VersionGreaterThan script functions now work correctly
Fixed: Crash when editing and overwriting a mod containing a screenshot (introduced in 0.6.9, I think)
Fixed: ArchiveInvalidation generator will no longer generate empty files if you do not have any textures

Fixed: Crash on exit if autoupdate archiveinvalidation.txt was enabled but the archiveinvalidation.txt was read only
Fixed: Auto rename of new omods to avoid overwriting anything wasn't working correctly
Fixed: Empty readme's getting created if you left the editor in rtf mode and then deleted everything
Fixed: omod creation failer if you tried to import the author and description from an esp with no description
Fixed: Adding a screenshot to an omod no longer locks the file open even after the create omod form is closed
Fixed: screenshots with non 4:3 aspect resolutions no longer get stretched
Fixed: adding a single data file from outside the data directory now puts the filename into the relative path
Fixed: Using CopyDataFile to overwrite another file from the same omod did not work correctly

Fixed: Editing active omods no longer screws up obmm

Added: Colomn widths of the esp list get saved over restarts
Tweak: Now gives a more explicit error message if you enter invalid characters into the mod name
Tweak: The ignore inactive esps/omods options in the conflict detector are now seperate checkboxes
Tweak: obmm will now let you delete active omods
Fixed: Many cosmetic layout issues and tab order gunk
Fixed: The 'add extra files' option on the conflict detector now works correctly

Added: An option to disable the default 'esp belongs to omod' warnings when deactivating esps
Added: The ability to supply a custom command line for use when clicking on the 'launch oblivion' button
Added: 'scan esp for required data files' can now pick up models or icons from inside compressed records
Fixed: People using localized copies of oblivion should no longer find their oblivion.ini going all weird
Fixed: 'scan esp for required data files' no longer crashes if the esp contains uncompressed NPC, LAND or PGRD records

Added: Displays a warning if obmm thinks that a mod has been packed weirdly but cant do anything about it
Fixed: obmm no longer tries to open oblivion.ini for writing on exit even if it has nothing to write

Added: You can assign omods to groups on the omod creation page
Fixed: Manually deleting active omods should no longer completely screw up obmm
Fixed: Moving your omod directory no longer prevents you from creating new omods
Fixed: Write protecting oblivion.ini no longer results in a crash on exit if you enable the 'lock FOV at 75' option
Fixed: An omods groups are no longer lost if you edit it and resave with the same file name

Added: You can change load order by holding alt and pushing up or down instead of using the buttons or context menu
Tweak: You can now create omods with zero or one decimal point in their version number instead of obmm adding extra .0's
Fixed: show new omod info and lock fov settings on the options form weren't sticking

Fixed: Crash when editing or deleting omods which contained a screenshot

Added: 'Import mod details' option on create omod form to import an esps author and description
Tweak: Progress bars should now be on top of all other obmm forms
Fixed: Files wrongly being marked as belonging to an omod when blocking an omod from overwriting manually placed files
Fixed: A bug in the autoupdater


Added: You are now allowed an extra decimal point in an omod version number (i.e. 1.1.1 instead of 1.1)
Added: If you add a screenshot when creating an omod, hovering the mouse over the 'add screenshot' button will display it
Added: An option to not include the version number in the omod file name
Added: Major updates to the save game lister
Added: The conflict detector will indicate the most serious conflict level if you choose not to display individual conflicts
Added: A BSA browser
Added: An 'omod report' which will generate an excel importable tabel of your omods
Added: New script functions to modify gmsts and global variables in esps/esms
Added: Major updates to the 'check for updates' tool
Added: The ability to move your omod folder around
Added: Activate and deactivate all buttons for esps. (Wont deactivate base esms, such as oblivion.esm)
Added: Activate/deactive all in group options for omods
Tweak: Update archive invalidation is now off by default.
Tweak: All utilities (save manager, conflict detector etc.) are now in a seperate menu
Tweak: Brought back the 'tidy data folder' option
Tweak: Progress bars are no longer displayed always on top
Tweak: xml files for the EditXML script function get extracted from the misc BSA instead of obmm keeping its own copy.
Fixed: Canceling a conflict report now works correctly if you had already generated one previously
Fixed: omods containing images could sometimes get locked open
Fixed: Save manager reporting the wrong time for save dates
Fixed: The conflict detector didn't work if obmm was running as a 64 bit process

Added: An 'edit groups' option to the bottom of the group filter combo box
Added: When adding a folder or archive to an omod, any screenshot.jpg file will be used for the screenshot
Added: When converting omods to a zip file, omod specific stuff is saved in an 'omod conversion data' folder
Added: The omod creator can read this omod conversion data to exactly recreate the old omod
Added: Esps can now be sorted by creation date
Added: omods can be sorted by the date the omod was packed, and also by the date the omod was installed
Added: A new option on the settings form to display omod info before installing it
Added: You can now add new omods by double clicking them while an existing copy of obmm is open
Added: An option to lock the FOV in oblivion.ini file at 75 degrees
Tweak: The omod creator now picks up readmes with a .rtf extension as well as .txt
Fixed: Some screwiness with file extensions when converting an omod into a zip archive.
Fixed: Uncompressed pathgrid records no longer crash the conflict detector (the arithmatic overflow error)
Fixed: Using 'scan for data files' on an esp containing compressed land or pathgrid records no longer causes crashes.

Added: The text editor remembers its last position and window state
Added: The ability to filter omods that haven't been assigned to any group
Added: When converting an omod to a 7-zip or zip, the omod info gets saved in a text file called 'omod info.txt'
Added: Add archive will now work correctly on some badly packed archives
Added: A save file lister which will tell you which plugins a saved file is dependent on
Fixed: The info page now uses proper line ends, so if you save and reopen it in notepad it doesn't look messed up
Fixed: converting omods to zips now works correctly if the omod doesn't contain a screenshot
Removed: The tidy data folder button. (Clean all will perform the same task)

Added: Tooltips showing an esp's author and description
Added: The omod creator now lets you overwrite existing omods
Tweak: Tidied up the data files conflicts page
Tweak: When converting omods to archives, the screenshot gets saved too
Tweak: When editing an omod, it now overwrites the existing one by default instead of creating a new one
Fixed: Adding rar archives to omods now works correctly
Fixed: Adding meshes to the archive invalidation file could cause crashes, so now I don't

Added: A 'convert omod to zip/7zip' option
Added: View data file and script defined conflicts for individual omods
Added: A force disable option, to disable mods even if they have dependencies which cannot be disabled
Added: A 'save' option in the text editor. (Will save rtf or plain text files)
Added: The ability to search in the text editor
Added: esps and omods can now be sorted by filesize

Added: A much better conflict report tool, to compensate for reduced real time conflict tracking
Fixed: If you deleted a file from an omod and then used 'add folder' or 'add archive' the file would reappear
Removed: Realtime EDID tracking. It was buggy, and far too slow.

Fixed: Index out of range errors and incorrect esp names in conflict reports

Added: The 'add zip' button on the omod creator has been renamed 'add archive', and can now handle .rar and .7z files
Tweak: Added a warning when setting 7-zip compression to very high.

Added: A clean all button to clear out all data files and esps installed by obmm
Tweak: The installer links to the download page for .NET instead of directly downloading it
Tweak: The installer gives the option to continue with the installation even if .NET is not detected
Fixed: The installer now correctly links you to the x64 version of .NET if it detects you are running 64 bit windows
Fixed: The argument null exception on startup if any active esps were parented to omods
Fixed: Possible error from not being able to get a list of the bsa files
Fixed: obmm no longer crashes on exit if oblivion.ini is write protected
Fixed: Cleaning a mod no longer causes the conflict report to display conflicts with deleted plugins

0.5.0 (Save files from 0.4.x or earlier cannot be imported into this version)

Added: An edit button to edit existing omods
Added: Visit website and check for update options on the about page
Added: The ability to include a screenshot inside an omod, which gets displayed in a new preview window
Added: Hovering the mouse over an omod displays a tooltip containing the description
Added: A 'tidy data folder' option which clears out empty directories left behind by mods
Added: The data files form remembers its size across obmm restarts
Added: The omod list can be sorted by file name, author or conflict level
Added: You can now create groups, assign omods to them them and then filter the mod list by group
Added: A launch oblivion button on the data files form
Added: obmm will now automatically add entries to ArchiveInvalidation.txt. (Can be disabled in the options menu)
Added: obmm keeps track of the EDID's of all entries in plugins, and warns about conflicts (Can be disabled)
Added: The option to disable warning messages when deleting, cleaning or deactivating mods
Added: 'Scan for required data files' option for esps when creating omods
Added: Progress bars while obmm is activating omods and when it is updating conflicts
Added: New script functions for editing oblivion.ini and xml files
Added: Script functions for changing the default checked status of an esp, and disabling the uncheck warning
Added: A script function for renaming/copying data files
Added: Script functions for getting the current obmm version
Tweak: The esp list and omod list boundry is now resizable
Tweak: added a cut/copy/paste context menu in text editor, as an alternative to the keyboard shortcuts
Fixed: The RegisterBSA script function now works correctly
Fixed: (Hopefully) The occasional missing temp directory error
Fixed: The tab order on the data files selector and create omod form

Added: About box
Tweak: The installer no longer refuses to run on windows 98.
Fixed: Overlapping text when many omods were installed

Tweak: omod list is now resizable, and doesn't display the omod file extension after every file
Fixed: The check to prevent you from running multiple copies of obmm broke if obmm was left open for too long.

Fixed: Crash on startup if you ran obmm without either installing the construction set or viewing the launchers data files page
Fixed: The 'clean omod' feature now works correctly

Fixed: Crash on startup if your my documents folder wasn't where obmm expected it to be. (Credit goes to ASk for fixing this one)

0.4.0 (This is the first version which works with oblivion instead of morrowind)
Added: The CRC of an omod is displayed in the advanced info view
Added: When validating an omod on the omod creation form, you now have to option to cancel
Added: The esp list can now be sorted by load order, active, owner or alphabetically
Added: Limited user support
Tweak: Many, many tweaks to get it working with oblivion instead of morrowind
Tweak: Performance optimizations and cosmetic tweaks
Fixed: When adding individual data files the relative path would not get set correctly
Fixed: Possible issue with data files not getting installed correctly
Fixed: A few problems caused by running multiple copies of obmm simultaniously
Fixed: Bug caused by manually placing omods in the omod directory and then double clicking on them anyway
Fixed: Many more bugs
Removed: Scrapped the .NET 1.1 version (It was far too much work to maintain two versions)

0.3 (BETA)
Added: An installer which automatically registers file associations and checks .NET framework version
Added: A help button
Fixed: RegisterBSA wasn't doing anything unless another mod had previously installed the same file
Fixed: Missing icons in .NET v1.1 version
Fixed: Text editor crash when changing from RTF to plain text format.
Fixed: Icon transparancy in text editor
Fixed: Working directory issue when installing new omods
Fixed: A few more ickle things

0.2 (BETA)
Added: Viewing the advanced omod info now gives some file stats
Added: omod files now save their creation time
Added: A cancel button when creating omods
Added: A .NET v1.1 build
Tweak: The default settings in the create omod form should now always result in a sucessful omod creation.
Tweak: When creating an omod, files are no longer validated automatically. Right click on the list and click validate to perform a check manually.
Fixed: Manually deleting omod files from the mods directory no longer causes unhandled exceptions
Fixed: Trimming the first letter from filenames when converting a zip to an omod.
Fixed: The gui is no longer completely unresponsive when creating a 7-zip format omod. (Nothing I can do about standard zip.)
Fixed: If omod creation fails for some reason, you should no longer be left with a corrupt file in your mods directory
Fixed: A load order bug that caused esps to be inserted in the wrong place if they had no load order information but a plugin already installed did.
Fixed: Esp load order checks are no longer case sensitive
Fixed: More bug fixes and cleanup

0.1 (BETA)
Added: Documentation
Added: The ConflictsWith script function can now specify how bad the conflict is
Added: A progress bar is now displayed while an omod is being generated
Added: Corrupt omods get moved to the obmm\corrupt directory, so you dont get an error everytime you start up obmm
Added: A feature to automatically create omod files out of mods distributed in .zip format.
Added: You can now alter the readme and script of omods after they've been created.
Tweak: Changed the conflict information icons to something a little less stupid looking.
Tweak: Modified the source code to compile under .NET 1.1 as well as 2.0
Fixed: Way too many bugs to list.

0.0 (ALPHA)
First release, just to prove that obmm does, in fact, exist. A bit buggy though. Don't turn your back on it; it may eat your data files folder. :p