An NVSE-powered plugin that is designed to manage and maintain all UI/HUD extensions added to the game by various mods. Once installed, UIO will ensure UI extensions are always properly installed and, when necessary, properly removed; it will automatically detect, resolve and prevent UI-related issues, and will help keep the game's UI intact.
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou must get permission to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
This mod is opted-in to receive Donation Points
Changelogs
Version 2.30
Fixed incorrect handling of spaces when used as delimiters in condition lines of inject scripts (this is only known to have affected The HUD Editor).
When injecting into prefabs files, it is now possible to omit and not explicitly specify a target component in the file, in which case the data will be appended at the end of the file.
Version 2.25
Fixed a bug that was causing broken scroll bars in Book Menu Restored.
Fixed a minor memory leak.
New XML operator type: <rand>
Version 2.20
IMPORTANT: As of this update, the German language, NoGore game version is no longer supported!
Refactored and optimized several hotspots in the game's UI code. This should significantly decrease menu loading times.
Implemented new XML operator types (https://geckwiki.com/index.php?title=UIO_Extra_XML_Operators).
Incorporated UI font scaling (https://geckwiki.com/index.php?title=UI_Font_Scaling) from JIP LN and fixed text wrapping issues.
Version 2.09
Fixed erroneous handling, on initialization of XML files, of strings containing non-ASCII characters.
Version 2.08
Integrated the debug mode into the main release version. This mode can be enabled/disabled from Data\uio\settings.ini
Improved handling of XML syntax errors.
Version 2.07
Fixed all the errors in version 2.05. This was found to have been caused by unexpected syntax errors (space(s) following a '/' character) in the oHUD-modified "hudtemplates.xml" file.
Version 2.05
Optimized the UI pipeline to further improve menu loading times, as well as significantly reduce UI-related memory heap fragmentation, which should improve overall performance.
Fixed an issue that was introduced in version 2.03 and broke the JIP LN function 'InjectUIComponent'.
Version 2.03
Slightly improved menu loading times.
Version 2.02
Fixed handling of duplicate entries added by remnants of old installers.
Version 2.01
* Addressed a possible file-access permissions error.
* Fixed support for the German language NoGore version.
* Improved error logging.
Version 2.00
* Completely new, more robust implementation.
* User-created files can now be injected into ANY XML file, not restriction to menu files.
* Fallout.ini will no longer be automatically modified to use Darnified UI fonts.
Version 1.31
Fixed an issue with Mod Organizer, creating a data-race and resulting with files not being modified properly and sometimes deleted.
Version 1.30
I am no longer working on this mod, and am therefore uploading this update, which is the latest, and probably final build of UIO. There are no major changes in functionality, though there are improvements in overall reliability and in process logging (to help with debugging, when necessary).
Version 1.25
Improved detection of orphaned/duplicate references.
Fixed an issue when using a slash instead of a backslash in file paths.
Non-default DarnUI fonts in Fallout.ini are now accepted and will not be overwritten (unless the files are missing).
Version 1.21
Fixed an issue where the pip-boy inventory menu was partially broken with The Weapon Mod Menu installed.
Version 1.20
UIO now checks Fallout.ini and verifies the right fonts are used (DarnUI/vanilla). There's no need to manually edit this file when installing/removing DarnUI.
Menu/element names are no longer case-sensitive.
Expanded the list of supported menu/HUD files to include every single menu in the game.
Several code improvements.
Version 1.10
The plugin no longer checks if the mod file (ESP/ESM), supposedly using the UI extension, actually exists. This turned up to be redundant, naive, and a recipe for problems.
Extensions can now be injected into specific elements in menu files.
Method of adding support for new mods was changed (and somewhat simplified). Se the relevant section for the new instructions.
NMM should no longer screw up the installation of this mod.
Added support for The Weapon Mod Menu. oHUD is also now supported.
User Interface Organizer, or UIO, is an NVSE-powered plugin that is designed to manage and maintain all UI/HUD extensions added to the game by various mods. Once installed, UIO will ensure UI extensions are always properly installed and, when necessary, properly removed; it will automatically detect, resolve and prevent UI-related issues, and will help keep the game's UI intact. You will be able to safely install/remove UI mods, at any time, without having to worry about it breaking other UI mods, or worse - the game.
Additionally, UIO refactors and optimizes several hotspots in the game's UI code and greatly increases menu loading speeds.
UIO currently supports all UI mods that are known to me and require support (a full list can be found below). Adding support for unlisted/future mods is very simple, can be done by anyone, and does not require updating UIO, or involving me in any way. For instructions see below.
UIO also makes it possible to install any supported UI mod manually (i.e. by a simple files-to-folders extraction), without running any scripted installer (most UI mods use scripted installers in order to modify one or more of the game's UI files. These installers are known to fail on some machines, and may break other mods when uninstalled).
How does UIO work? UIO operates at game launch, before any UI files are loaded in memory. It detects installed UI mods, makes sure every valid UI extension is properly registered, removes references to missing files and duplicate entries. All this is done without modifying any game files.
How do I use UIO? Simply download and install it using NMM/FOMM, or manually extract (use 7-Zip) the 7z archive into the game's 'Data' folder. Please note that this is an NVSE plugin, not a standard mod - it doesn't include an ESP/ESM file and will therefore not show in your load-order.
UIO and Mod Organizer (MO) Due to the way MO works, installing/removing/getting UI mods to work together in harmony, can be very tricky. This is no longer an issue when using UIO alongside MO - UI mods can be treated and handled exactly the same way as any "standard" mods.
In order to make UIO recognize and support your mod, you need to create a text file containing your mod's details and place it in the appropriate folder:
1. Open the folder ..\data\uio\public\.
2. Create a plain text file (use your mod's name as the file name) and open it.
3. The file's structure should be as follows:
Line #1: Should be composed of the following parts, in successive order and with no spaces: 1. The path to your XML file, relative to ..\Data\Menus\Prefabs\ 2. :: (double colon) 3. The target XML, which can be denoted in one of two ways: a) A name of a valid game menu (ex: HUDMainMenu, ContainerMenu, etc.), or b) A path to an XML file, prefixed by @ (ex: @globals.xml, @prefabs\text_box.xml, etc.). 4. :: (double colon) 5. The name of the UI component in the XML, to which your file should be injected.
Line #2: This line is used for conditions - when to/when not to install the extension. Complex conditions can be used, but will not be covered here (PM if you need to use conditions). In most cases, just leave it true.