Unify side menu and map overlay buttons with the Shortcuts system

Place to ask discuss and request the modding support of Factorio. Don't request mods here.
User avatar
Shemp
Long Handed Inserter
Long Handed Inserter
Posts: 65
Joined: Mon Jan 19, 2026 6:51 pm
Contact:

Unify side menu and map overlay buttons with the Shortcuts system

Post by Shemp »

This request could be considered an extension of 684528 and half of 694271.

I would like for the buttons in the side menu (also called "Panels" by the game) and the buttons below the minimap in Remote View (which toggle map overlays) to be extensible using ShortcutPrototype.
side-menu.png
side-menu.png (9.33 KiB) Viewed 49 times
map-overview.png
map-overview.png (24.14 KiB) Viewed 49 times
ShortcutPrototype is what the shortcut buttons at the bottom-right of the HUD use (also called "Tools" by the game).
shortcuts.png
shortcuts.png (15.21 KiB) Viewed 49 times
To facilitate this, ShortcutPrototype would gain a location property, which can assume one of three values:
  • defines.shortcut_location.tools (default)
  • defines.shortcut_location.panels
  • defines.shortcut_location.map
This would place the shortcut in the current Shortcut tray, the side menu, or in the map overlay buttons respectively.

The side menu and map overlay buttons that currently exist in the base game would be converted to ShortcutPrototypes and declared in __base__/prototypes/shortcuts.lua, so that mods may change them if needed.

There is the question of how to handle an arbitrary number of buttons being added to these places. Either they would need their own analogue to the "hidden shortcuts menu":
hidden-shortcuts.png
hidden-shortcuts.png (18.84 KiB) Viewed 49 times
Or you could implement a paging system similar to how the game controller UI handles these buttons:
pages.png
pages.png (13.49 KiB) Viewed 49 times
(Did you know there's a Research button for controller users with it's own page? :o )
controller-pages.png
controller-pages.png (15.48 KiB) Viewed 12 times
Post Reply

Return to “Modding interface requests”