Jump to content

So SkyUI MCM has a 128 mods registration limit...


Barzing

Recommended Posts

Posted

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.

 

Posted

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".

Posted

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.

Posted

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

 

Posted

 

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   :D 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

Posted

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
Posted

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.

Posted

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. 

Posted

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.

  • 2 months later...
  • 2 weeks later...
Posted

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

  • 1 month later...
Posted

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.

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...