Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

alexsylex

Uploaded by

alexsylex

Virus scan

Safe to use

About this mod

This SKSE plugin aims to put an end to incompatibilities between UI mods with an easy-to-use framework, allowing customization per UI element.

Requirements
Permissions and credits
Changelogs
Donations

Infinity UI is a framework that allows to add or replace individual elements in any UI menu, be those menus vanilla or added by mods.

The widget manager feature of SkyUI allowed to add widgets only in the HUD and no replacement, but for certain cases, that functionality needed to be extended.

To keep compatibility, UI modders have needed to create other menus and put them on top, adding extra logic to workaround the fact that the elements added do not belong to the target menus. Infinity UI aims to solve this in a user-friendly way, by loading SWF files from a preset folder to the in-game menus. Simlpe as that.

All of this also means that it becomes possible to re-skin individual elements of the UI without touching the rest. Combining alternatives that match a theme and with good taste, a UI can look amazing and unique.

Compass Navigation Overhaul makes use of this framework to extend the compass functionality with quality-of-life features seen in games such as God of War, Assassin's Creed, Horizon, etc. It also displays a quest list in the HUD when you focus a quest marker in the compass. If you want an in-game example of what this framework enables to do, go check it now!

If you read up to this point, you may be interested on giving it a try in your modlist.  So... back to Skyrim again?


Check the list in the Dependencies dropdown at the top of the page. Not complying to those will almost surely result in CTD.


Use a mod manager of your choice and install it as any other mod. For manual installation, copy the contents of the .RAR file into the Data folder under your Skyrim installation path.


This mod is compatible with any mod created, as of today.


Install this plugin. Follow the instructions provided by the UI-mod authors in their pages.


Create a folder named "InfinityUI" in "Data/Interface". This will be the starting path to search any menu modification.

Inside this folder, create a folder with the name of the menu that you want to mod.

Replicate the path to the element of the UI that you wanted to add/replace by nesting folders inside the menu folder. You can check the path to each nested UI element in the FLA/AS files of the SkyrimUI SDK repo, from the mod sources if the author provided them, or you can decompile the SWF yourself with a tool like JPEXS Free Flash Decompiler.

Use Adobe Flash CS6 to build the SWF file that will be the patch. Copy the SWF file to the folder that replicates the name of the parent where you want to nest it.

If the file name matches the one of an existing child in the menu, instead of creating a new one, the existing one will be replaced. For example, to replace the compass in the HUD menu, first we need to know the path that we need to create. Opening the hudmenu.fla from the SkyrimUI SDK repo we can get it:




The compass element is named Compass, so we name the SWF file "Compass.swf". 
The path is HUDMovieBaseInstance CompassShoutMeterHolderCompass, so the resulting folder-file structure is the following:


*Note: Logically, when replacing, any MovieClip reference to the old UI element has to be reassigned to the new element, because the old one does not exist then. Check the ActionScript code of the menu to see where the MovieClip that is the target UI element or its children are referenced.

When you have the SWF files in their corresponding paths, the modded UI elements can be managed as if they were vanilla: using the papyrus UI script, or C++ Scaleform for an SKSE plugin.

In the Files section you can find the API for this framework. This API will send events for the different loading stages for the menu and the patches, so that you can take actions in between of each stage (reposition elements, assign values, etc.)

For the moment, the API is for C++ only. In future updates I will add more functionalities, such as inspecting members of UI elements from your code.




These people are awesome and very talented, so go check their job, download it, and don't forget to endorse :)
Also, all the patrons that made it possible, with special mention to:


You guys are the best!


Source code: https://github.com/alexsylex/InfinityUI