[WIPz] RaceMenu

Post » Fri Nov 02, 2012 1:02 am

So I've been keeping this mod relatively under the radar, only those who frequently visit my Extended Slider Colors mod on the Nexus and the SKSE/SkyUI crew know about this menu overhaul. I figured I'd expose it to get some feedback and also post a screenshot.

http://i.imgur.com/m4cOV.jpg

I'l just list a few things about what it can do while utilizing very current SKSE functions:
-Categorizes all the vanilla options to the SkyUI look
-Search filter by name (Same as SkyUI)
-Color ANY tint, including hair with an AARRGGBB value
-Loads/Saves settings when re-opening the menu
-Light On/Off (Spawns a white light directly infront of your character)
-Zoom distances adjusted to be closer to the face when In and slightly further when out (Adjusting this via controls is far more work than its worth, this was a simple INI modification)
-Adjust player height (Scale)
-Basic plugin interface
-Controller support (Using one in the screenshot)
-Works with any race, including custom races
-Doesn't modify any vanilla assets (Unlike my Extended Slider Colors mod)

Some future plans that already have SKSE functions implemented but not yet used:
-Multi-warpaint support
-Warpaint texture hotswapping
-Load/Save settings to clipboard (Clipboard is more appropriate than writing files, the functions are already there but not bound to keys)
-Display skill bonuses
-Display racial spells

See spoiler for plugin interface information:
Spoiler
Currently it is only used to add a new slider; in this case the "Height" slider. It basically sends an event that indicates when Sliders are loaded and this is also where you can call a RaceMenu API function.
To register for the event you'd do something like this:
RegisterForModEvent("RSM_LoadSliders", "OnLoadSliders")
To catch the event you'd have something like this:
Event OnLoadSliders(string eventName, string strArg, float numArg, Form formArg)AddSlider("$Height", CATEGORY_BODY, "ChangeHeight", 0.25, 1.50, 0.01, _playerActorBase.GetHeight())EndEvent
AddSlider is a function specific to the RaceMenu script.
Function AddSlider(string name, int section, string callback, float min, float max, float interval, float position)
This function will insert a new custom slider into the menu where you can register for the slider event like so:
RegisterForModEvent("RSM_SliderChange", "OnSliderChange")
And catch the event you'd do soemthing like this:
Event OnSliderChange(string eventName, string strArg, float numArg, Form formArg)If strArg == "ChangeHeight"_height = numArg_playerActorBase.SetHeight(numArg)_playerActor.QueueNiNodeUpdate()EndifEndEvent
The slider event will be caught every time you move the slider, the sample is used to invoke an SKSE function that sets the players Height. The height option will be a permanent addition to this menu which currently ranges from about 0.25 to 1.5, which are rather SMALL/LARGE scales. These properties unfortunately do not normally save with your players ActorBase so they are saved and loaded automatically by the mod at appropriate times (You are unlikely to notice the transition).

This UI overhaul would not be possible without the SkyUI team as I used some of their classes (I also had a little help here and there). Would also have nowhere near the features without SKSE; as at least 90% of the new stuff requires functions that would otherwise not exist.
User avatar
yessenia hermosillo
 
Posts: 3545
Joined: Sat Aug 18, 2007 1:31 pm

Return to V - Skyrim