Skip to content

Vanilla Settings

DeisDev edited this page Nov 9, 2026 · 1 revision

Vanilla Settings

A mod can show a menu inside the game's own Settings:

  • on the GAMEPLAY, DISPLAY or AUDIO page, after the vanilla settings,
  • or as a new category after AUDIO.

Build an items menu as usual, then add it. Its items work like anywhere else: saved values, onChange, SetItemValue and so on.

MenuHelper_SettingsDesc settings{ sizeof(settings) };
settings.menus = MENUHELPER_MENU_ALL;
settings.page = MENUHELPER_SETTINGS_DISPLAY;
settings.menu = menu;
api->AddToSettings(&settings);

settings.page = MENUHELPER_SETTINGS_CATEGORY;
settings.label = "MY MOD";
api->AddToSettings(&settings);

JSON:

"settings": [
    { "page": "display", "menu": "settings" },
    { "page": "category", "label": "MY MOD", "menu": "settings" }
]

Papyrus (pause menu only): MenuHelper.AddToSettings(menu, 2) for DISPLAY, MenuHelper.AddToSettings(menu, -1, "MY MOD") for a category.

Rules

  • Items go at the end of the page, in the order menus were added. Add a header item to label them.
  • The menu's onOpen and onClose run when the page opens and closes.
  • Vanilla DEFAULTS on the page also resets the menu's items, then calls onReset.
  • Controls (key mapping) cannot be changed.
  • RemoveFromSettings takes the menu out again. DestroyMenu does too.

Clone this wiki locally