GIZMOD: IYKYK Edition [Modding Toolkit]

by gz-mods

Mods, Modernized. Modular. 0% LEGACY SILT. 100% MODERN GRIT. Core only. Provides some basic functionality, but extensions are recommended for the full GIZMOD experience. Router, registry, debugger, and prototype export.

Content
18 hours ago
2.0 - 2.1
789
Transportation Logistics Combat Character Enemies Environment Mining Fluids Logistic network Circuit network Manufacturing

Changelog

Version: 1.0.37
Date: 2026-08-30
  Fixes:
    - Made the permanent GZ Dock expose TERRA whenever GZ-Terra's direct guide interface is available, even if an older/stale Hub registry record lacks the newer Dock metadata.
    - The direct fallback is suppressed when the normal external Dock registration is present, so there can never be two TERRA buttons.
    - The fallback is resolved only when the Dock is built or redrawn and adds no periodic runtime work.
Version: 1.0.36
Date: 2026-08-30
  GZ Dock:
    - Added a compact "Apex Threat" line beneath the Flux balance when GZ-Threat is installed.
    - The line shows GZ-Threat's effective world Apex Strain Evolution level and refreshes with the Dock's existing once-per-second status pulse.
    - Tooltip includes total Apex and active-team count when supplied by GZ-Threat.
Version: 1.0.35
Date: 2026-08-30
  GZ Dock:
    - Added opt-in external Dock launchers for registered GZ-Hub panels.
    - Registered mods can provide a short Dock caption/tooltip and an optional direct remote open action without being hard-coded into Gizmod.
    - Registry changes now redraw the Dock for connected players, so launchers registered after Gizmod's configuration handler appear immediately.
    - This fixes GZ-Terra's TERRA launcher being available in GZ-Hub but missing from the permanent GZ Dock.
Version: 1.0.34
Date: 2026-08-26
  Admin:
    - Fixed Enemy Base Frequency, Size, and Scale fields being effectively non-editable on some clients.
    - Replaced Factorio numeric-filtered widgets for these three controls with ordinary textfields.
    - Apply Base Settings still performs authoritative numeric validation and accepts decimal values from 0 through 6.
    - Widened the fields and added explicit input tooltips.
  Notes:
    - No enemy-base generation, regeneration, territory-buffer, or cleanup behavior changed.
Version: 1.0.33
Date: 2026-08-26
  Admin:
    - Regenerate Bases ±10k now respects GZ-Diplomacy player territory.
    - Claimed territory is expanded by a conservative 512-tile safety buffer; protected chunks are neither cleared of existing spawners/worms nor passed to Factorio enemy-base regeneration.
    - Territory just outside the ±10k management box is queried too when its 512-tile buffer can overlap the box.
    - If GZ-Diplomacy is installed but too old to provide the territory query API, regeneration aborts instead of silently ignoring territory protection.
  Performance:
    - Territory protection is calculated only when the admin explicitly clicks Regenerate Bases ±10k.
Version: 1.0.32
Date: 2026-08-26
  Multiplayer:
    - Replaced eager GZ-Hub construction with a one-page-at-a-time multiplayer renderer.
    - Pressing G now builds only a static Home page. Hidden Settings, Admin, Chat, Debug, APIs, Installed Mods, and external panels are not constructed.
    - External remote panel builders are called only when that exact panel is explicitly selected.
    - Threat Admin status, runtime-prototype status, debug module initialization/status, and other page-specific reads are not touched by plain Hub opening.
    - Multiplayer Hub uses fixed synchronized geometry and does not auto-center from client presentation dimensions.
    - Multiplayer glass styling is fixed to deterministic blue instead of consulting runtime-per-user appearance during synchronized GUI construction.
    - Multiplayer Dock launcher navigation no longer writes a debug-log entry merely for opening a GUI.
    - Integrated Stats remain in the permanent Dock; multiplayer Hub no longer creates a second dynamic Stats footer.
  Diagnostics:
    - Any future section-specific desync is isolated to the exact navigation section that was selected.
Version: 1.0.31
Date: 2026-08-26
  Admin:
    - Added Enemy Bases / ±10k Management to the Admin/Misc tab.
    - Added editable enemy-base Frequency, Size, and Scale controls for the admin's current surface. Scale maps to the enemy-base autoplace control's richness/scale value.
    - Added Apply Base Settings for future enemy-base generation.
    - Added Regenerate Bases ±10k, which removes existing enemy spawners/worms inside x/y ±10,000 and re-runs autoplacement only on already-generated chunks intersecting that region.
    - Added Kill All Biters ±10k for enemy unit entities.
    - Added Kill All Spawners/Worms ±10k for enemy unit-spawners and worm turrets.
    - Mass cleanup uses entity removal rather than combat deaths, avoiding loot floods and intentional spawner-kill evolution changes.
  Diagnostics:
    - Enemy-base setting changes, regeneration, and both cleanup actions are logged through Gizmod debug logging.
Version: 1.0.30
Date: 2026-08-26
  Admin:
    - Added Enemy Evolution controls to Admin/Misc for the admin's current surface.
    - Overall enemy evolution can be set directly as 0-100%.
    - Added independent controls for Factorio's raw accumulated Time, Pollution, and Spawner-Kill enemy evolution components, using LuaForce's dedicated evolution-factor APIs.
    - Added Refresh so the panel can re-read engine values after either type of evolution adjustment.
    - When GZ-Threat 0.1.42+ is installed, added effective world-level controls for Apex, Biomass/Size, Speed, Damage, and Swarm/Quantity.
    - Threat Apply creates a persistent world-level admin override; Return to Research Levels clears it and immediately restores research/team-derived values.
    - All evolution/Threat adjustments revalidate player.admin at click time and are logged through Gizmod debug output.
  Performance:
    - No periodic work added; all reads/writes occur only when opening or clicking the Admin panel.
Version: 1.0.29
Date: 2026-08-26
  Admin:
    - Added an Admin tab to GZ-Hub, visible only to admins.
    - Added a dropdown containing every player stored in the current game/save, including offline players.
    - Added a Factorio item-with-quality selector, quantity field, and Give Item button for bug-recovery item replacement.
    - Quality is preserved in the actual inserted item stack; Normal and every loaded quality tier are supported by the native selector.
    - When GZ-Economy 1.1.25+ is installed, added Flux tier/amount controls that credit the selected player's current team/force ledger.
    - Item and Flux recovery actions are routed through Gizmod debug logging when debug logging is enabled.
  Safety:
    - All recovery controls validate player.admin at execution time, not only when drawing the tab.
    - Item/Flux quantities are positive integers capped at 1,000,000,000 per click.
    - Full inventories receive only the amount that fits; the admin is told the exact inserted/requested count.
Version: 1.0.28
Date: 2026-08-25
  Multiplayer:
    - Fixed a GZ-Hub desync introduced by the 1.0.23 API index cache. The remote-interface snapshot was module-local, so a joining client rebuilt it at its own join tick while the server retained the startup snapshot; opening the Hub then constructed different synchronized API-tab GUI state on each peer.
    - The API snapshot is now stored in synchronized save storage. Joining peers inherit the authoritative snapshot and never rebuild it merely because their Lua runtime is new.
    - Configuration changes still invalidate the snapshot once; it is rebuilt deterministically on the next live tick.
    - Multiplayer GZ-Hub sizing and Dock clamping no longer depend on display_resolution or display_scale.
    - Automatic foreign/RPG GUI relocation is disabled in multiplayer because it reads presentation-only GUI geometry and previously persisted those locations in synchronized storage.
    - Obsolete stored foreign-GUI positions are cleared when a multiplayer runtime initializes.
  Diagnostics:
    - Added deterministic Gizmod debug breadcrumbs for G/D/E/C/T Dock button clicks.
  Notes:
    - Single-player adaptive Hub sizing and foreign-GUI relocation are preserved.
Version: 1.0.27
Date: 2026-08-25
  UI:
    - Reordered the permanent GZ Dock: G/D/E/C/T launcher controls are at the top, Loot is in the middle section, and enabled integrated Stats GUI sensors are at the bottom.
    - Added a refresh/redraw button to the GZ Dock titlebar.
    - Redrawing destroys and reconstructs the Dock from current state while preserving the player's saved Dock position.
    - Dock Stats reuse the integrated Stats GUI's cached per-player sensor captions and update with the existing once-per-second Dock refresh.
  Performance:
    - No additional sensor calculations or periodic loops were added.
Version: 1.0.26
Date: 2026-08-25
  Bugfixes:
    - Integrated Stats GUI no longer creates any standalone top-right screen overlay.
    - Stats GUI now only computes/caches enabled per-player sensor captions for GZ-Hub.
    - Fixed the Hub Stats footer being clipped outside the Hub by reserving explicit vertical space beneath the tabbed pane.
    - The Hub Stats footer now uses a visible inside-frame container at the bottom of GZ-Hub.
    - Legacy 1.0.24/1.0.25 Stats GUI overlay windows are destroyed automatically on init/configuration migration.
  Performance:
    - Sensor calculations remain once per second; GZ-Hub only renders cached captions.
Version: 1.0.25
Date: 2026-08-25
  Features:
    - Added a Stats GUI footer at the bottom of GZ-Hub, visible beneath every Hub tab.
    - The footer mirrors every integrated Stats GUI sensor enabled for that player, including externally registered compatible StatsGui custom sensors.
    - Footer values reuse Stats GUI's existing once-per-second cached captions rather than recalculating sensors.
  Bugfixes:
    - Updated the Hub Stats GUI status section to recognize Gizmod's integrated Stats GUI instead of checking for the standalone StatsGui mod.
Version: 1.0.24
Date: 2026-08-25
  Features:
    - Absorbed Even Distribution Lite behind the startup option "Enable Even Distribution"; original per-player timing/balance/cursor settings are retained.
    - Absorbed Stats GUI behind the startup option "Enable Stats GUI"; research, position, evolution, pollution, playtime, and daytime sensors remain independently configurable per player.
    - Preserved the StatsGui remote compatibility interface for external sensor/preprocessor extensions.
    - Added "Normalize all titles and descriptions" as a startup data-stage option using the supplied sentence-case normalization set.
  Integration:
    - Added conflicts with standalone StatsGui, EvenDistributionLite, and enforce_sentence_case to prevent duplicate handlers/UI.
    - Jump was intentionally not integrated.
  Licensing:
    - Included the upstream MIT notices for Even Distribution Lite and Stats GUI.
Version: 1.0.23
Date: 2026-08-25
  Changes:
    - Remote-interface discovery is now snapshotted once per server/Lua runtime on the first live tick after the save/server loads.
    - Opening the APIs tab and calling gizmod.api_index now use the cached server-start snapshot instead of rescanning remote.interfaces.
    - Configuration changes invalidate the in-memory snapshot so the next live tick captures the updated loaded-mod interface set.
    - The APIs tab now places the core gizmod interface first under a dedicated Gizmod APIs section, with all other interfaces separated below under Other / Third-Party Interfaces.
  Performance:
    - Interface enumeration runs once per server runtime; there is no menu-open enumeration cost.
Version: 1.0.22
Date: 2026-08-25
  Features:
    - Added an APIs tab to the GZ Hub/GZ Menu.
    - The APIs tab enumerates Factorio's live remote.interfaces registry, alphabetizes every interface and method, and displays per-interface and total method counts.
    - The index includes Gizmod and every other loaded mod automatically; no hand-maintained interface list is required.
    - Added remote.call("gizmod", "api_index") and remote.call("gizmod", "api_describe", interface_name) for programmatic access to the same live index.
  Notes:
    - API discovery occurs only when requested/opened and adds no periodic runtime work.
Version: 1.0.21
Date: 2026-08-23
  Changes:
    - Moved the absorbed Quality Seeds subsystem out of Gizmod and into GZ-Tweaks.
    - Gizmod no longer defines Quality Seeds settings, cultivator/spore prototypes, graphics, or runtime hooks.
  Compatibility:
    - Prototype IDs and Quality Seeds setting IDs are preserved by GZ-Tweaks 1.0.9 so existing saves can transition ownership without replacing placed cultivators.
Version: 1.0.20
Date: 2026-08-23
  Features:
    - Absorbed Quality Seeds 1.3.3 into Gizmod.
    - Added default-on startup setting "Enable Quality Seeds"; disabling it removes all cultivator/spore prototypes and runtime behavior.
    - Preserved Balanced Cultivation and Freeplace Cultivators settings under their original IDs/defaults.
  Compatibility:
    - Ported Quality Seeds 2.1 recipe categories/probabilities/freshness fields and recycler icon paths back to Factorio 2.0.
    - Added incompatibility with standalone quality-seeds to prevent duplicate prototypes.
Version: 1.0.19
Date: 2026-08-23
  Changes:
    - Completed GZ Loot integration in the permanent GZ Dock.
    - The Dock loot block now displays Total, Active, Collected, and Next Drop from GZ Loot's compact status API.
    - The Dock hamburger opens GZ Loot's existing detailed drop window, eliminating the need for a separate top-flow loot HUD.
Version: 1.0.18
Date: 2026-08-23
  Changes:
    - Technology milestones are now silent in Gizmod so GZ-Diplomacy can provide the single team-aware research announcement without duplicate internal-force messages.
    - Manual milestones/achievements now use the orange Magic-style announcement and prefer the completing player's name when available.
Version: 1.0.17
Date: 2026-08-21
  Changes:
    - Added the Gizmod cross-mod Events API for synchronous named event broadcasts between registered mods.
    - Added event registration/discovery plus exact-event and wildcard subscriptions using remote-interface listener endpoints.
    - Event delivery is fault-isolated so one listener error is logged without aborting the producer or other listeners.
    - Event payloads are copied and restricted to plain Lua data; mods pass stable indexes/IDs instead of LuaObject userdata.
    - Source mods are excluded from their own broadcasts by default, with an explicit include_source option when self-delivery is wanted.
    - Added /gizevents and EVENTS_API.md integration documentation.
Version: 1.0.16
Date: 2026-08-21
  Changes:
    - Added the Gizmod force-aware Milestones API with automatic global announcements when a force/team first completes a milestone.
    - Added built-in milestones for Factorio's essential vanilla and Space Age technologies, derived from the runtime technology prototypes.
    - Added remote registration and manual-completion APIs so other mods can add technology or custom milestones.
    - Existing researched technologies are silently synchronized on upgrade so established saves do not receive historical milestone spam.
Version: 1.0.15
Date: 2026-08-21
  Changes:
    - Replaced the global startup Glass UI color controls with one runtime-per-user Glass UI color setting.
    - Added None, Purple, Blue, Green, Yellow, Orange, Red, and Pink Glass UI choices; Blue remains the default.
    - Glass UI now skins Gizmod-owned Hub, Dock, and Task List windows per player without recoloring vanilla/global GUI prototypes.

Version: 1.0.14
Date: 2026-08-20
  Changes:
    - Replaced the permanent standalone GZ launcher button with the full GZ Dock.
    - The GZ Dock is now always visible on the HUD instead of appearing only while inventory/controller GUI is open.
    - Inventory open/close no longer creates or destroys the Dock.
    - Preserved the draggable Dock and per-player saved position; new players default to the old upper-left launcher area.
    - The permanent Dock continues to host GZ Hub, Diplomacy, Economy, Chat, Task List, Economy balance, and Loot controls.
Version: 1.0.11
Date: 2026-06-05
  Changes:
    - Added live Debug Viewer section to the GZ Hub Debug tab.
    - Debug Viewer reads Gizmod debug storage directly and shows current payload plus recent session entries.
    - Added Refresh, module select buttons, and Print Summary for in-game debug inspection.
    - Gizmod debug_log now keeps live current payloads and per-module recent-entry rings in storage, alongside script-output JSON/JSONL files.
    - Added remote API helpers live_debug_modules and live_debug_snapshot.
Version: 1.0.10
Date: 2026-06-05
  Changes:
    - Absorbed Task List into Gizmod and added a GZ Dock [T] launcher.
    - Added a compact GZ Loot HUD block inside the GZ Dock: hamburger/details button plus Next Drop status.
    - Gizmod now queries gz-loot.ui_status / compact_status and renders the loot status itself.
    - Disabled the absorbed Task List top-flow active-task button so task UI no longer creates independent HUD clutter.
    - Added TaskList as an incompatible standalone mod because its functionality is now absorbed.
    - Added flib as a required dependency for the absorbed Task List GUI/runtime helpers.
Version: 1.0.9
Date: 2026-06-05
  Changes:
    - Gizmod now owns the compact GZ Economy Flux HUD by querying gz_economy.ui_status / compact_status and rendering icon/count output inside the GZ Dock.
    - The dock refreshes the compact Flux display while open instead of relying on GZ Economy's old independent top-flow label.
    - Foreign RPG-style screen windows are stacked under the GZ Dock, and the stack follows the dock when it is dragged.
    - This establishes the Gizmod-owned UI router pattern: modules provide data/actions; Gizmod owns the visible HUD surface.
Version: 1.0.8
Date: 2026-06-05
  Changes:
    - Moved the inventory-time GZ control strip into a draggable side dock so it no longer sits over the quickbar/weapon-slot area.
    - The GZ Dock now defaults below the upper-left mod GUI strip and remembers per-player drag location while avoiding off-screen placement.
    - Consolidated the G/D/E/C launcher controls and chat route selector inside the single dock frame.
Version: 1.0.7
Date: 2026-06-05
  Changes:
    - Moved the inventory-time GZ control strip to the bottom-left companion position near the quickbar instead of the upper-left clutter zone.
    - Added safe foreign RPG window choreography: GIZMOD scans top-level screen GUI roots, moves likely RPG/MFerrari windows into a reserved slot while inventory is open, and restores their original positions when inventory closes.
    - Added /gizgui to print and log top-level screen GUI roots for finding foreign window names without owning their internals.
Version: 1.0.5
Date: 2026-06-02
  Changes:
    - Changed the continuous mining trigger to Ctrl+Shift+right mouse.
Version: 1.0.4
Date: 2026-06-02
  Changes:
    - Fixed a bug with the auto-mining feature.
    - Changed the continuous mining trigger to Ctrl+Shift+right mouse.
Version: 1.0.3
Date: 2026-06-01
  Changes:
    - Fixed a little oopsie in the independency list.
Version: 1.0.2
Date: 2026-05-31
  Changes:
    - Absorbed RealisticReactorGlow by ouk_ouk. We hope you like blue!
Version: 1.0.1
Date: 2026-05-25
  Changes:
    - IYKYK
Version: 0.3.15
Date: 2026-05-25
  Changes:
    - Added Gizmod remote debug-session activation APIs so dependent mods can request active debug logging during on_init/startup.
    - Added set_debug_enabled, set_module_debug_enabled, set_module_auto_debug_enabled, and request_debug_session remote calls.
    - request_debug_session enables the global debug gate, enables the requesting module, enables automatic output for that module, and returns the canonical module debug status.
Version: 0.3.14
Date: 2026-05-23
  Bugfixes:
    - More poorly implemented GPL trash is incompatible
    - Adjustable Quality is an optional dependency
Version: 0.3.13
Date: 2026-05-23
  Bugfixes:
    - I will not YOLO again
    - I will not YOLO again
    - I will not...
Version: 0.3.12
Date: 2026-05-22
  Bugfixes:
    - Added Foundations by 0n0w1c to the optional dependencies because everyone deserves to have a pretty base.
Version: 0.3.10
Date: 2026-05-21
  Bugfixes:
    - Added and re-added a bunch of incomplete/unstable/poorly executed mods to the incompatible list. Added PlanetsLib because I can't be arsed to test every *yawn* Planet mod the Foundry invented over the last couple of years for mods that refuse to use the API.
Version: 0.3.9
Date: 2026-05-21
  Bugfixes:
    - Debug output now appends every event to session_<module>.jsonl for the full loaded session instead of only keeping current/previous snapshots.
    - current_<module>.json and previous_<module>.json remain as quick last-event convenience files.
    - The Debug tab now shows the session JSONL path alongside the current snapshot path.
Version: 0.3.8
Date: 2026-05-21
  Changes:
    - Kept the 0.3.7 placeable medium/big display-panel entities.
    - Kept Economy on the standalone gz_economy.open launcher path; GUI windows are owned by the module again.
    - No GUI display-panel remote shell path was reintroduced.
Version: 0.3.7
Date: 2026-05-21
  Changes:
    - Removed the mistaken GUI display-panel remote shell path; standalone modules should open their own windows through their own remote APIs again.
    - Reduced the Economy launcher to the canonical gz_economy.open call instead of sweeping old compatibility method names.
    - Added actual placeable medium and big display-panel entities integrated from Larger Display Panels (MIT), excluding the giant/huge panel.
    - Added a conflict with the standalone larger-display-panels mod to prevent duplicate prototype names.
Version: 0.3.6
Date: 2026-05-21
  Bugfixes:
    - Reinstall the Gizmod remote interface on load/init/configuration change so upgraded saves cannot retain stale remote-call closures.
    - Fixes Economy display panel calls falling back to older create_display_panel code after updates.
Version: 0.3.5
Date: 2026-05-20
  Changes:
    - Widened the GZ Hub by 160px so core tabs have more room before horizontal overflow.
    - Widened Gizmod-owned medium and big display panels by 160px; Economy and other standalone panels using the core shell inherit the wider layout.
    - Increased core hub panel fallback/minimum widths so registered panels have more horizontal space by default.
Version: 0.3.4
Date: 2026-05-20
  Bugfixes:
    - Fixed Gizmod remote display-panel APIs calling require() during runtime remote calls.
  Features:
    - Added a central Debug tab with every registered module and core-owned debug/auto-output toggles.
    - Added gizmod.is_debug_enabled(module_id) as a short alias for module debug-state checks.
  Changes:
    - Removed per-module debug tabs in favor of the central Debug tab.
Version: 0.3.3
Date: 2026-05-20
  Features:
    - Added Gizmod-owned standard display panel shells: medium and big.
    - Added remote API: display_panel_sizes, open_display_panel/create_display_panel, close_display_panel, and create_scroll_body.
    - Standard display panels own the frame, titlebar, close button, size limits, and scroll shell so modules can render content into a provided body.
    - Hub-owned tabs now use a central scrolling body instead of each module/panel needing bespoke scroll rules.
    - Added underscore/plain open aliases for the future Diplomacy launcher path.
Version: 0.3.2
Date: 2026-05-20
  Fixes:
    - Added gz_economy.open to the Economy standalone launcher call list so current GZ Economy warehouse-only builds open from the Gizmod Economy button instead of reporting not ready.
Version: 0.3.1
Date: 2026-05-19
  Features:
    - loader-utils by Protocol mutates the loader prototype globally in data-final-fixes, so just in case I want to use a loader, that has been marked incompatible.
Version: 0.3.0
Date: 2026-05-19
  Features:
    - Added a GZ Hub debugger button to export the loaded runtime prototype view to JSON.
    - Added /gizproto for runtime prototype export/status/category-filter workflows.
    - Runtime prototype exports write category files and an index under script-output/GIZMOD_exports/runtime_prototypes/.
    - Core registry now advertises runtime-prototype-export and script-output-runtime-prototypes capabilities.
Version: 0.2.30
Date: 2026-05-19
  Changes:
    - Screenshot selection no longer pauses gameplay before the drag-select interaction.
    - Fixed armed screenshot cursor doing nothing after freeze by keeping the selection-tool interaction live until the selected-area event fires.
    - /gizshot status now reports live-selection and pause-bypassed counters.
Version: 0.2.29
Date: 2026-05-19
  Fixes:
    - Screenshot selection now freezes gameplay only when one player is connected.
    - In multiplayer sessions with multiple connected players, Ctrl+Shift+S still equips the selection tool but does not pause the simulation.
    - Added screenshot status fields for multiplayer-unpaused sessions, connected players, and current freeze mode.
Version: 0.2.28
Date: 2026-05-19
  Features:
    - Added a core Gizmod screenshot area tool bound to Ctrl+Shift+S.
    - The hotkey freezes gameplay, places a hidden selection tool in the cursor, and writes selected-area screenshots to script-output/GIZMOD_screenshots.
    - Added /gizshot status/start/cancel and safe cancel handling through Q, cursor clear, and player leave.
Version: 0.2.27
Date: 2026-05-17
  Fixes:
    - Fixed GZ Hub debug toggles so the global debug switch can apply immediately from the hub.
    - Added the global Gizmod debug toggle directly to module debug panels so module debug state and effective state update together.
    - Module debug checkboxes now refresh their panel immediately after being changed, so status text no longer stays stale.
    - Core /gizdebug now follows the global debug switch without requiring a hidden per-module core toggle.
Version: 0.2.26
Date: 2026-05-17
  Changes:
    - Added core-owned per-module debug controls to the GZ Hub for registered modules.
    - Registered modules with debug capability now get Enable debug output and Enable automatic output checkboxes without creating their own Factorio Mod Settings entries.
    - Added module-aware debug API checks for debug output and automatic output gates.
Version: 0.2.25
Date: 2026-05-17
  Changes:
    - Moved the debug logging toggle out of Factorio Mod Settings and into the GZ Hub Settings tab.
    - Gizmod now stores the debug logging enable flag in its own runtime storage surface.
    - The remote debug API still writes rolling current_/previous_ JSON snapshots only when the Gizmod hub toggle is enabled.
Version: 0.2.23
Date: 2026-05-17
  Features:
    - Added a runtime-global Gizmod debug logging toggle.
    - Added core remote debug API calls for Gizmod-family modules.
    - Debug logs write rolling local JSON snapshots to script-output/GIZMOD_logs as current_<module>.json and previous_<module>.json.
    - Added /gizdebug for manually verifying the core debug writer when logging is enabled.
Version: 0.2.22
Date: 2026-05-17
  Changes:
    - Wired optional Gizmod crafting tabs to their dedicated graphics: barrel, science, and bioprocessing.
    - Custom comma-separated item-type tabs now use the magma asterisk graphic by default.
    - Corrected Gizmod tab icon size metadata to 128 for the bundled tab sprites.
Version: 0.2.21
Date: 2026-05-17
  Changes:
    - Enabled Gizmod UI color mask by default.
    - Updated the default Gizmod UI tint to R 25, G 175, B 255, A 150.
Version: 0.2.20
Date: 2026-05-17
  Features:
    - Added optional Gizmod crafting tabs for Barreling, Science Packs, and Bioprocessing.
    - Added a startup comma-separated custom item-type tab setting for grouping matching items/recipes into their own tabs.
    - Gizmod settings tab now reports the current custom item-type tab list.
# Gizmod 0.2.18 patch note

- Added a series of hilarious and hilariously broken, incomplete, GPL-licensed mods to the incompatible list.

---

# Gizmod 0.2.18 patch note

- Added a small D/E launcher row under the GZ button for standalone Diplomacy and Economy windows.
- Removed Diplomacy and Economy registered panels from the main GZ Hub tab list; they now launch as standalone app windows.
- Kept the GZ Hub focused on core settings, installed-mod registry status, and non-standalone panels.
- Added `gz-standalone-launcher-buttons` to core capabilities.

---

# Gizmod 0.2.17 patch note

- Added startup option `gizmod-enable-burner-fuel-leeching`.
- When enabled, Gizmod sets `allow_burner_leech = true` on burner-powered inserter prototypes during data-final-fixes.
- Added a read-only GZ Hub note showing whether the startup option is currently enabled.
- Added `burner-fuel-leeching` to Gizmod Core Registry capabilities.

---

# Gizmod 0.2.8 patch note

- Added Q/ESC close handling for the GZ Hub.
- The GZ Hub frame now clears player.opened before destruction so ESC does not leave stale GUI state.
- Updated the GZ button tooltip to document L open and Q/ESC close.

---

# Gizmod 0.2.5 patch note

- Folded Color UI style behavior into Gizmod core as built-in GZ UI color controls.
- Added startup settings for enabling the color mask, choosing RGBA tint, and selecting white level 1-12.
- Added local Gizmod graphics paths for the GUI brightness variants.
- Added `gz-ui-color-core` to the core registry capabilities.
- Added a hard conflict with external `colorui` so the standalone mod and core implementation do not both mutate GUI sprites.

---

# Gizmod 0.2.4 patch note

- Removed the hardcoded legacy Economy tab from the GZ Hub.
- GZ Hub now treats GZ Economy as warehouse/Supply Depot only, even if an older Economy build tries to register an Economy panel.
- Selecting `economy` through the hub API now falls back to Installed GZ Mods instead of creating a hub tab.
- Other registered external panels still mount normally.

---

# Gizmod 0.2.3 patch note

- Removed the editable Stats GUI tab from the GZ Hub.
- Added a read-only Stats GUI Status section at the bottom of Installed GZ Mods.
- Stats GUI Status shows active/inactive checkboxes for the known StatsGui boxes and the optional movement-speed add-on.
- Added note that StatsGui settings should be changed from Factorio's normal Mod Settings menu.
- Replaced the prior direct StatsGui bridge capability with read-only `statsgui-status-surface`.
- Corrected the GZ Hub button tooltip to show the current L hotkey.

---

# Gizmod 0.2.2 patch note

- Added duplicate-safe handling for registry-mounted Economy panels.
- If a registered external panel matches `economy`, Gizmod skips the legacy hardcoded Economy tab.
- Older GZ Economy builds still get the fallback hardcoded Economy tab.

---

# Gizmod 0.2.1 patch note

- Added registry-mounted external GZ Hub panels.
- External mods can register `panels` entries through `remote.call("gizmod", "register", spec)`.
- Hub now renders registered external panels as first-class tabs before Installed GZ Mods.
- This lets GZ-RPG mount its RPG panel inside the Gizmod container instead of using a standalone button.

---

# Gizmod 0.1.9 patch note

- Added GZ Hub hotkey / embedded settings integration pass.
- Current patch generated in ChatGPT workspace.

---

# Gizmod ACTIVE

## 0.1.8 - Direct StatsGui Bridge in Gizmod

- Moved the StatsGui bridge behavior into Gizmod.
- Gizmod now writes StatsGui runtime-per-user settings directly from the GZ Hub.
- Patched StatsGui 1.6.2 is no longer required for the hub controls.
- Optional StatsGui dependency lowered back to `? StatsGui >= 1.6.1`.
- Stats GUI tab now reports that Gizmod owns the bridge surface when settings are available.
- Added registry capability `statsgui-direct-settings-bridge`.

## 0.1.7 - GZ Hub / StatsGui Settings Mirror

- Added `lib/hub.lua` as the unified GZ Main Hub surface.
- Added top-left `GZ` hub button plus `/gzhub` command.
- Added tabbed GZ Hub container with:
  - GZ Hub registry overview.
  - Gizmod floating text/icon settings.
  - Stats GUI per-player settings mirror when StatsGui is installed.
  - One metadata tab for each registered Gizmod-family mod.
- Hid Gizmod runtime-global settings from the normal game settings menu so GZ options move into the hub.
- Added optional dependency on StatsGui for clean in-game settings mirroring.
- Existing registry/floating text APIs remain unchanged.

# Gizmod 0.1.4 Active Notes

## Fixed

- Floating icons no longer read or write `LuaRenderObject.tint` during `on_tick`.
- Sprite icons still float upward and expire at TTL; they just do not alpha-fade at runtime.
- This fixes the crash: `LuaRenderObject doesn't contain key tint`.


## Hotfix

- Removed custom font prototype definitions.
- Floating text now uses vanilla built-in Factorio fonts directly:
  - magic -> default-large-bold
  - standard -> default-bold
- Fixes startup failure: `font prototype ... Locale font paths are empty`.

---

# Gizmod 0.1.2 Active Notes

## Added

- Shared floating text service using `rendering.draw_text`.
- Shared floating icon service using `rendering.draw_sprite`.
- Shared floating combo service for icon + text events.
- Runtime damage number listener.
- Remote API on the existing `gizmod` interface:
  - `floating_text(spec)`
  - `floating_icon(spec)`
  - `floating_combo(spec)`
  - `damage_number(spec)`
  - `floating_text_status()`
  - `clear_floating_text()`
- Commands:
  - `/giztext <message>`
  - `/gizicon <sprite>`
  - `/gizcombo <sprite> <message>`
  - `/gizfloat`

## Settings

- `gizmod-enable-floating-text`
- `gizmod-enable-damage-numbers`
- `gizmod-floating-text-color-mode`
- `gizmod-floating-text-style`
- `gizmod-floating-text-ttl`
- `gizmod-floating-text-max-active`

## Remote API examples

    remote.call("gizmod", "floating_text", {
      text = "Bioflux fed",
      surface = player.surface,
      position = player.position,
      ttl = 90,
      style = "magic",
      color_mode = "bordered-white"
    })

    remote.call("gizmod", "floating_icon", {
      sprite = "item.bioflux",
      surface = player.surface,
      entity = player.character,
      ttl = 90,
      scale = 0.75
    })

    remote.call("gizmod", "floating_combo", {
      sprite = "item.bioflux",
      text = "+ fed",
      surface = player.surface,
      entity = player.character,
      ttl = 90,
      style = "magic",
      color_mode = "bordered-white"
    })

    remote.call("gizmod", "damage_number", {
      amount = 42,
      entity = event.entity
    })

## Notes

- Uses built-in Factorio fonts only. No bundled external font file.
- Uses `rendering.draw_sprite` for icons and `rendering.draw_text` for text.
- `Max floating texts on screen` counts floating events, including icon-only and icon+text combos.