Skip to content

Menu theme

Xol's look for the game's menus: its own title screen, server list and pause menu, and Xol's style on the buttons, sliders, text fields and lists of the game's other screens, with fireflies or snow drifting behind them. Only the drawing changes: the buttons do what the game's do, and the server list, pinging and connecting stay the game's own code.

Identifier
menu-theme
Where
Under the gear of the Right Shift menu, in XOL SETTINGS
Default
On. It has no module switch; Themed menus is its switch.
HUD element
No
Sends anything
No

What changes

Screen What Xol does
Title screen Replaced by Xol's own layout when it opens: the Xol mark, then Singleplayer, Multiplayer, Xol settings and Mods, Options and Language, and Quit game. No panorama, no splash text and no Realms button. On 1.8.9 the signed-in account's face and name sit in the top right corner; clicking them tells you that accounts are switched in the launcher. The foot of the screen names the Xol version, the Minecraft version and, where there is room, Mojang's copyright line.
Server list (Multiplayer) Replaced when it opens. The same saved servers and LAN games, drawn as cards: icon, name, the server's description, signal bars, and the player count or the version that does not match.
Pause menu Replaced when it opens. The game's and Forge's own buttons on a panel over the dimmed world, with your account in the top right corner on 1.8.9. Nothing is animated over the game.
Every other screen of the game and of Forge Stays the game's own screen, drawn in Xol's style: the dirt background, buttons, sliders, text fields and scrolling lists. The Controls list is centered, and a resource pack's picture keeps its own proportions instead of being stretched.
Resource Packs A star on each pack marks it as a favourite, and favourites are listed first among the available packs. See Favourite resource packs. On 1.8.9 a search box above the two lists leaves only the packs whose name or description contains what you type.

These stay as they are: inventories and every other container screen, and a screen class that once failed while being styled (it stays plain for the rest of the session). Screens of other mods may get Xol's style on the same shared parts (buttons, sliders, fields, lists), but their layout and size are never changed.

The title screen's Xol settings button opens the Right Shift menu. It takes the place of the small Xol button that the vanilla title screen gets in its top left corner; the pause menu keeps that corner button.

Favourite resource packs

On the Resource Packs screen, point at a pack and a star shows in the top left corner of its picture. Click the star to make the pack a favourite. A favourite always shows a gold star. Click the star again to take it away. The tooltip says Favourite or Unfavourite. The game's Default entry has no star.

Favourites come first in the list of available packs, in the order they already had, and every other pack keeps its order after them. A click on the star does nothing else: the pack does not move between the lists, the packs you have applied keep their order, and the game's options.txt is not touched. A star never changes which packs are on.

A favourite is known by the pack's file or folder name. If the pack is deleted or renamed, the favourite is kept and comes back when the pack does. Favourites are saved in config.json as pack-favourites under menu-theme. They have no row in the menu and are never written into a settings export. The star works whether Themed menus is on or off.

Menu scale in General sets how large the game's and Forge's menus are drawn while the theme is on, together with Xol's own screens. On Auto they follow the game's GUI scale but step down where that would leave no room, so on a large, high-density screen a menu is not drawn so big that it fills half the screen. Match Minecraft draws them at the game's own GUI scale. The HUD always keeps the GUI scale you chose. Screens of other mods are never resized.

Settings

Setting Identifier Type Options Default Description
Themed menus themed On or off On Off = the standard Minecraft menus, from the next menu you open.
Background animation ambient Choice Fireflies · Snow · Off Fireflies Fireflies or snow drifting behind the menus. Off draws nothing.
Search box on Resource Packs packSearch On or off On A box above the two lists that leaves only the packs whose name or description contains what you type. Off = the game's own screen.

The Animations switch in General also applies here. With it off, no fireflies or snow are drawn whatever Background animation says, and the fades on buttons and menus are skipped.

Getting the vanilla menus back

Open the Right Shift menu, click the gear, unfold Menu theme under XOL SETTINGS and switch Themed menus off. The next menu you open is the standard Minecraft one; nothing has to be restarted. With the theme off, the title screen has the small Xol button in its top left corner again.

Keyboard

Xol's title screen, server list and pause menu add keyboard focus to their buttons: Tab and Shift+Tab move a focus ring, and Enter or Space presses the focused button. On the title screen and the pause menu the up and down arrows move the ring as well. A key press takes the same path as a click, Forge's button events included.

On the server list the arrows, Enter, F5 and Esc are the game's own handling.

What is left to the game

  • The buttons. Every themed button carries the game's own identifier, and a click ends up in the game's or Forge's own handler. The themed title screen, server list and pause menu are subclasses of the game's own screens, so a mod that looks for those screens still finds them.
  • The server list file. Loading and saving servers.dat, adding, editing, deleting and reordering entries, and the LAN scan are the game's own code.
  • Pinging. The game starts a server's status ping from the code that draws its row. Xol draws the rows itself, so it starts that same ping when a row comes on screen: with the game's own pinger, once per row per visit to the screen, and with the same error handling. No other request is made, and nothing is sent to Xol.
  • Connecting. Joining, direct connect and the "Connecting" screen are the game's. Xol never builds the connecting screen itself, because building it is what opens the connection.
  • Labels. In English the labels are shown in sentence case ("Join server"). In every other language they are shown as the game gives them.

Other mods and OptiFine

Xol replaces the title screen, server list or pause menu only if it is exactly the game's own screen. If another mod, or OptiFine, has already put its own in place, Xol leaves it alone. Xol's hook runs at the lowest priority, so other mods have their turn first. Buttons that other mods add to a themed screen stay.

If something goes wrong

If building a themed screen fails, Xol keeps the game's screen, writes "Xol menu theme disabled for this session" with the error to the game log, and leaves every menu plain until the game is restarted.

If a themed menu misbehaves in any other way, switch Themed menus off and please send a support log.

Differences on 1.7.10

Two things are only on 1.8.9: the Resource Packs search box, and the account face and name in the top right corner of the title screen and the pause menu. Favourite resource packs work on both versions.

What has been checked

  • Checked in a test harness on Linux without a graphics card: the themed title screen, server list, pause menu and the other menus on 1.8.9 and 1.7.10, including a window of 2880 by 1800 pixels to check the menu size.
  • Not tested on a real Mac, Windows PC or graphics card.
  • OptiFine's own screens are only recognized by name and have not been checked with the theme.

Multiplayer

Display only. The server list file and connecting are the game's own code, and servers are pinged with the game's own status ping, which the themed list starts for the rows on screen. Nothing else is sent.