Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features without permission from or credit to me
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission or crediting me
Asset use permission in mods/files that are being soldYou are allowed to use the assets in this file in mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are allowed 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
DaemonPrime for creating the IWant Widgets which is such simple and powerful mod with infinite potential powerof3 for creating CommonLibSSE and CharmedBaryon for creating CommonLibSSE NG, for making as easy as it can be to create SKSE plugins Skyrim Scripting for creating youtube tutorial about creating SKSE plugins, which were used for setting up environment and learning the basics
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 1.2.8
Fixed value validation causing CTD
Reworked it to by default wait untill widget is loaded (so infinitely). Can be still edited in ini file
Version 1.2.7
Added Load function return value validation. This should fix issue where some mods try to load widgets too soon after game reload, when UI is not loaded. Because of that, all Load methods fail. With this update, the return value will be checked, and if ID is invalid, the Load method will be invoked again after certain delay (see ini file). Note that this feature is not fully tested yet. If you dont want the validation to be applied, change in ini file the value of InvalidValueTries to 0
Fixed doTransitionByTime not working correctly with meterpercent
Added PDB file
Removed setting UseUITask from ini file, as this setting will be from now on always ON
Version 1.2.6
Reworked function SetSize, SetPos and SetZoom to use new native functions for respective dimensions (X/Y)
Added output stack whiích is used for getting output values from Get/Load methods
Combination of these 2 should hopefully solve most of the existing issues
Version 1.2.5
Fixed spinlock, which should fix issue with game freezing and random CTDs
Version 1.2.4
Hopefully fixed issue with random CTDs some users were experiencing
Added ini file which can be used to toggle some settings
Version 1.2.3
Reworked how reset work to make it more reliable and faster
Version 1.2.2
Fixed broken functions DrawShapeLine, DrawShapeCircle and DrawShapeOrbit
Added check that will prevent function calls if view is not reset yet
Removed logging to prevent performance impact
Version 1.2.1
Reimplemented Destroy function
Version 1.2
Fixed function DoTransitionByTime (this should fix issue with ORomance)
Added delay before the native function can be used. Reason is that SkyUi needs small time before it loads the widget. For that reason, after game reload there will be 1 sec delay.
Added logging to log fatal errors. Logs are located in location where all other skse logs are located
HUD menu is no longer checked on every call, but instead only on reload
Version 1.1.1
Fixed GetSizeX and GetSizeY. This was source of issue that was causing some mods to not work properly (Oblivionesque Locks for example)
Added id validation to prevent Ui call if passed id is not valid (<1)
Version 1.1
Unhooked native functions from fps, making them insanely faster. Kudos to Papyrus Tweaks NG creator Nightfallstorm, as I would not otherwise figure out how to do it. Papyrus Tweaks NG is not required for this to work, but having it will make it even faster as it increases cap for number of possible papyrus calls per second.
Added remaining functions. With this, most of the mod is covered. Only exception are the experimental functions and some simple functions
Version 1.0
Initial release
This mod is native rework of mod iWant Widgets by DaemonPrime. In comparison to original version, this modification makes use of native functions for handling flash object, to speed up all operations. This basically means that the mod will be much faster, as it can now directly read return value of invoke functions (which is not possible with UI.Invoke papyrus functions). Spinlocks are also no longer needed, meaning that the mod will be more stable and it will be less likely that the mod will break. As of version 1.1.1, function are not hooked to frame rate, making the calls to them much faster (this is same thing that Papyrus Tweaks NG does)
Original mod is still required, as this mod doesn't contains anything besides the native plugin, papyrus script for native hooking and edited original script from IWW!!
Requires:
IWant Widgets 3.31. IWant Widgets NG have to be installed after IWant Widgets, so it overwrites all files!
This mod will work for all SE version as long as you have correct address library version for your skyrim version. TLDR: Supports SE/AE/VR
Mod only doesn't convert following functions (version 1.31)
Skyrim functions
Future plans:
Native meter handling - User can register meter for update, which will make it to be updated on every frame. This will create much smoother transition. I have already implemented similar feature in different mod, so reimplementing it here should be not issue. After meter is registered, users can change speed at which will meter change (rate), and function (linear, exponential, possibly custom using some simple math expression store in string). User can then read the value directly from meter instead of calculating it in papyrus.