-
Notifications
You must be signed in to change notification settings - Fork 170
MCM FAQ
No. Using SkyUI will be optional, but if it's not present, there will be no Mod Configuration Menu, so your menu will simply do nothing.
No. You can just add the config menu to your main mod package.
The MCM has been designed to properly handle the following scenarios:
- Your mod and SkyUI are added at the same time.
- Your mod is installed first, SkyUI is added later, or the other way around.
- At some point, SkyUI is removed, and added again later.
- At some point, your mod is removed, and added again later.
- SKSE is added or removed at any time.
That being said, we still encourage you to test these cases for yourself. There might still be scenarios we have overlooked, and if so, we would appreciate it if you would report them.
No, you should not include any SKI_* scripts with your mod. Also remember this for SKI_PlayerLoadGameAlias.pex/psc, which the Creation Kit will automatically add when creating a mod archive (BSA). Remove them from the file list before proceeding.
Including SKI_* scripts might lead to conflicts with future MCM updates.
If you accidently added SKI_PlayerLoadGameAlias, it's not the end of the world though, as this script is very simple and unlikely to change (ever). Still, you should avoid packaging it in later versions.
No. Any updates will be backward compatible.
Exceptions are things added during alpha or beta versions, where we try out new features that might not always make it to the final release.
Consequently, whenever we release alpha or beta versions, you should not distribute mods depending features added in those, but rather wait for a stable version.
Somehow my menu becomes unresponsive and I have to close and open it again to fix that. What's going on?
One constraint when implementing events like OnOptionSelect
is that they have to return eventually. So if you, at any point, would add Utility.Wait(5)
, this would freeze the menu for 5 seconds.
Or would it? Actually, it would freeze the menu until you close it, because Wait
only advances while you're not in a menu! The correct function to use would be Utility.WaitMenuMode(5)
, if you ever wanted to do something like that.
Whenever using latent functions, make sure that they actually return and don't block the script execution indefinitely.