Skip to content

Mod UI: design pass and completion of the in-game panel #109

Description

@ApocDev

The in-game mod UI works but has never had a deliberate design pass — it reads as scaffolding. This issue covers both finishing its incomplete surfaces and giving the whole thing a coherent visual language that feels native to Factorio.

Current surfaces

  • Main panel (control.lua): a screen-frame sized to 60%×72% of the display, with a titlebar (title, connection LED, drag handle, close) and a tabbed pane. The Tasks tab is live; the Blocks tab is a "(Blocks viewer — coming soon.)" placeholder.
  • Production-block summary (summary.lua): the Helmod-style build sheet pushed from the web app — recipes/machines matrix, I/O, power, blueprint buttons. Cramped at its current width (Summary panel: make the production matrix fill a wider window #4).
  • Request-combinator planner (combinator.lua) and the task capture dialog (tasks.lua).
  • Styles (gui-styles.lua): split into an IN USE region and a large PALETTE region of exploration candidates that mirrors the web app's status colors — the split exists precisely because the design pass hasn't happened yet.

What "designed" means here

  • Native first: follow vanilla Factorio GUI conventions — proper frame anatomy (inside_shallow_frame, subheader frames, deep_frame_in_shallow_frame for lists), standard paddings and title-bar behavior — so the panel feels like part of the game, not a web page teleported in. Custom tinted styles should be reserved for the status/priority chips where they carry meaning.
  • Complete the Blocks tab: a real viewer of the project's blocks (name, icon, goal rate, health), with per-block "show summary" as the bridge to the existing build sheet.
  • Summary panel layout: absorb Summary panel: make the production matrix fill a wider window #4 — the production matrix should use available width, and the sheet's sections (recipes, I/O, power, logistics) need consistent section anatomy.
  • Tasks tab polish: the list/detail layout, priority badges, and capture dialog should share one spacing and typography rhythm.
  • Prune gui-styles.lua: promote what the final design uses into IN USE, delete the rest of the PALETTE region wholesale (it is explicitly marked as dead weight once the design ships).
  • Small affordances: the connection LED needs a clearer state story (connected / connecting / no app found, with the click-to-ping behavior discoverable), and the mod-gui button could use a proper PyOps icon instead of the borrowed logistic-network sprite.

Non-goals

  • No new data flows or bridge messages — this is presentation and completion of existing surfaces.
  • The web app's design system (docs/design.md) governs colors for shared semantics (status, priority) but NOT layout idioms — in-game follows Factorio conventions.

Closes #4 when the summary layout lands as part of this.

Verification is hands-on in-game (screenshots through the bridge), per the mod testing conventions in AGENTS.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: factorio-modIn-game UI, Lua control scripts, settings, packagingarea: uiFactorio in-game UI and controlsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions