Barzing Posted December 30, 2016 Posted December 30, 2016 Ok, i just found that it has never been mentioned anywhere before, but MCM has a 128 Menu items limit. I noticed some menu was missing in MCM, so i i went in console and launched the command "setstage SKI_ConfigManagerInstance 1" and a message told me that 128 menus were loaded. But some menus where still missing. I added some more plugins with MCM Menus but even launching the console command to refresh MCM, it still blocked at 128. So, it seems i reached the hard cap on it. If anyone already succeded to override this limit, i would be interested to know it.
Guest Posted December 30, 2016 Posted December 30, 2016 No, the max number of options you can put in a single page is 128. There is no way to go beyond. If you really need more, then you need to split the page in multiple pages, and do what is called "pagination".
Barzing Posted December 30, 2016 Author Posted December 30, 2016 No, the max number of options you can put in a single page is 128. There is no way to go beyond. If you really need more, then you need to split the page in multiple pages, and do what is called "pagination". Thanks for your answer CPU. Is it a SKYUI option ? I understand how to pagine in a MCM Menu, but u can do that in first MCM page itself ? I assume it has to be done editing the swf file.
Guest Posted December 30, 2016 Posted December 30, 2016 Nope, all is done in Papyrus. Let's say you have an array of 300 strings you want to show. They will not fit in a single page. Put you can have a "page index" (a dropdown for example) where you can show (let's say) 100 items at time. Something like: Event onPageReset(string page) if page=="myPaginatedPage" myPaginatedPage() endIf endEvent int pageIndex=0 Function myPaginatedPage() AddmenuOptionST("pageIndexMN", "Page Index", pageIndexes[pageIndex]) int i = 100 * pageIndex while i < 100 * (pageIndex+1) AddTextOptionST("something", myStrings[i], "Nothing") i+=1 endWhile endFunction state pageIndexMN event balhblahbla... endState
Barzing Posted December 30, 2016 Author Posted December 30, 2016 Nope, all is done in Papyrus. Let's say you have an array of 300 strings you want to show. They will not fit in a single page. Put you can have a "page index" (a dropdown for example) where you can show (let's say) 100 items at time. Something like: Event onPageReset(string page) if page=="myPaginatedPage" myPaginatedPage() endIf endEvent int pageIndex=0 Function myPaginatedPage() AddmenuOptionST("pageIndexMN", "Page Index", pageIndexes[pageIndex]) int i = 100 * pageIndex while i < 100 * (pageIndex+1) AddTextOptionST("something", myStrings[i], "Nothing") i+=1 endWhile endFunction state pageIndexMN event balhblahbla... endState So you are suggesting me to modify the SKI_ConfigManager.psc ? ok why not ... i'm going to check that then. It looks something can be done in function RegisterMod : int function RegisterMod(SKI_ConfigBase a_menu, string a_modName) GotoState("BUSY") ;Log("Registering config menu: " + a_menu + "(" + a_modName + ")") if (_configCount >= 128) GotoState("") return -1 endIf AS you can see, there is already a check on the 128 limit
Barzing Posted December 30, 2016 Author Posted December 30, 2016 I think we can play on these functions unlocking the 128 limit, it's just a question of pagination as you mentioned : event OnModSelect(string a_eventName, string a_strArg, float a_numArg, Form a_sender) int configIndex = a_numArg as int if (configIndex > -1) ; We can clean the buffers of the previous menu now if (_activeConfig) _activeConfig.CloseConfig() endIf _activeConfig = _modConfigs[configIndex] _activeConfig.OpenConfig() endIf UI.InvokeBool(JOURNAL_MENU, MENU_ROOT + ".unlock", true) endEvent event OnPageSelect(string a_eventName, string a_strArg, float a_numArg, Form a_sender) string page = a_strArg int index = a_numArg as int _activeConfig.SetPage(page, index) UI.InvokeBool(JOURNAL_MENU, MENU_ROOT + ".unlock", true) endEvent
Guest Posted December 30, 2016 Posted December 30, 2016 No, I am NOT advising you to change SkyUI. It will be just a bad choice. I am telling you to write your own MCM using pagination.
Barzing Posted December 30, 2016 Author Posted December 30, 2016 I understood what u meant , but the limit i talk about is on the root menu of MCM, you are limited to 128 mods registeration. That is what i'm trying to override.
Barzing Posted January 6, 2017 Author Posted January 6, 2017 I've done a patch for SkyUI, i'm waiting for a aknowledegment from schlangster before posting anything. I expanded SkyUI to support 254 mods, adding a second page in the MCM menu.
Barzing Posted March 30, 2017 Author Posted March 30, 2017 Hi, Here is the patch for 254 mods. Mods are not ordered in alphabetical order between the 1st and 2nd page, so if u don't find your mods in the first 128 mods, find it on the 2nd page. skyUI 254menus.rar
Barzing Posted May 12, 2017 Author Posted May 12, 2017 what version of skyui does this patch require? I only tested it w/ skyUI 5.1 I'll appreciate report on other versions. But keep in mind i made it for the legacy version of Skyrim.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.