Factory Inspector


Measures per-recipe consumption and production for all items. Want to know which recipe is consuming all your green circuits? This mod can tell you. Designed for complex modded games where each item has many producers and consumers.

Utilities
8 hours ago
1.1 - 2.0
4.86K

Changelog

Version: 2.2.6
Date: 2026-02-22
  Performance:
    - Fixed 500ms hitch every 5 seconds: production/consumption buffers now pre-aggregate stats by (surface, quality) on insertion rather than accumulating thousands of individual timestamped records; flushBuffers() is now O(unique item×recipe×surface/quality combos) instead of O(total craft events over 300 ticks)
Version: 2.2.5
Date: 2026-02-22
  Bugfixes:
    - Fixed research consumption not being tracked after a mod config change: the initial entity enrollment (entity_count == 0 path) now builds force lab caches and seeds force_research_state for any force with research already in progress, so tracking starts immediately without waiting for on_research_started to fire
Version: 2.2.4
Date: 2026-02-22
  Bugfixes:
    - Fixed research technology sprite still overflowing at 256x256 despite layout size constraint; now uses a prototype image_style with stretch_image_to_widget_size=true so the image is scaled to 28x28, not just clipped
Version: 2.2.3
Date: 2026-02-22
  Bugfixes:
    - Fixed research technology sprite rendering at full size (256x256) in the production/consumption tables; sprite is now explicitly constrained to 28x28, matching the quality-icon branch and the 30px sprite column width
Version: 2.2.2
Date: 2026-02-22
  Bugfixes:
    - Fixed science pack consumption spike when switching to a technology that already has partial progress: on_research_started now seeds previous_progress from force.research_progress instead of 0, preventing the existing progress from being counted as a single-tick consumption event
Version: 2.2.1
Date: 2026-02-22
  Bugfixes:
    - Fixed crash in lab cache builder: LuaEntityPrototype does not expose researching_speed in Factorio 2.0; now uses (1 + entity.speed_bonus) as effective lab speed, which correctly weights same-type labs and is a safe approximation for mixed-type lab setups in mods
Version: 2.2.0
Date: 2026-02-21
  Features:
    - Track science pack consumption by research laboratories
    - Labs are registered in a dedicated partition (entities_lab) alongside assembling machines, furnaces, and mining drills
    - Research consumption is attributed per-lab using a speed-weighted cache (force_lab_cache) that accounts for per-lab module bonuses and researching speed
    - Consumption is split across surfaces proportionally to lab count per surface, supporting multi-surface Space Age play
    - Each technology gets a fake recipe "research-{tech.name}" with a technology icon and localised name in the UI
    - Cache rebuilds on on_research_started, lab placed, or lab removed; science packs appear in the consumption table under "Research <Tech Name>"
Version: 2.1.19
Date: 2026-02-21
  Bugfixes:
    - Guard against stale/invalid GUI element references (mainFrame, cons_table, prod_table, listbox_items) after mod reloads or player reconnects
    - Guard entity.mining_target.valid before accessing prototype chain in miners (prevents crashes when ore deposit becomes invalid)
    - onRemovedEntity now reads unit_number directly rather than passing the entity, which may be invalid by the time script_raised_destroy fires
    - Tick handler now guards against nil player from game.get_player and clears stale mainFrame references
    - Fix classic Lua bug in cleanupOldResults: table.remove inside ipairs was skipping entries; now iterates in reverse
    - Add nil guards on storage.consumers/producers before ipairs in all three production tracker update functions
    - Add nil guard in flushBuffers lambdas to handle unexpected missing storage.results entries
    - Add nil guards on prototype lookups in getDisplayNameAndSpriteForDynamicRecipe to handle mods being removed mid-save
Version: 2.1.18
Date: 2026-02-15
  Features:
    - Show "No production/consumption in last X seconds" message when tables have no data
Version: 2.1.17
Date: 2026-02-15
  Features:
    - Add "Display time window" setting to configure how many seconds of data are aggregated (default: 120, range: 10-300)
    - Production/consumption table headers now show the current time window
Version: 2.1.16
Date: ????
  Changes:
Version: 2.1.15
Date: 2026-02-15
  Changes:
    - Combine recipe name and internal recipe name columns into a single "Recipe" column showing "Name (internal-name)"
Version: 2.1.14
Date: 2026-02-15
  Features:
    - Sort production and consumption table rows by amount descending (highest percentage first)
Version: 2.1.13
Date: 2026-02-15
  Features:
    - Replace percentage column in production/consumption tables with a horizontal bar chart and percentage label
Version: 2.1.12
Date: 2026-02-15
  Features:
    - Overlay quality dots on the recipe icon for non-normal quality rows, matching in-game quality display
Version: 2.1.11
Date: 2026-02-15
  Features:
    - Show quality-specific icons (uncommon dots, rare dots, etc.) in the leftmost column for non-normal quality rows in production and consumption tables
Version: 2.1.10
Date: 2026-02-14
  Bugfixes:
    - Fixed consumption over-reporting for assembling machines and furnaces with productivity bonuses — bonus crafts from productivity don't consume inputs, so consumption is now divided by (1 + productivity_bonus)
Version: 2.1.9
Date: 2026-02-14
  Bugfixes:
    - Fixed infinite resource mining (crude oil, etc.) massively over-reporting production by not accounting for yield decay — output is now scaled by the resource's current yield factor
Version: 2.1.8
Date: 2026-02-14
  Bugfixes:
    - Fixed mining drill production tracking not accounting for mining productivity bonuses (from research, modules, etc.) — amounts are now multiplied by (1 + productivity_bonus) at tracking time
Version: 2.1.7
Date: 2026-02-14
  Bugfixes:
    - Fixed mining drill production tracking losing ~70% of output for fast drills: now checks all mining drill partitions every tick instead of cycling one partition per tick
Version: 2.1.6
Date: 2026-02-14
  Changes:
    - Verification report now prints automatically to console when each background cycle completes
    - Removed /fi-verify-report command (no longer needed since reports print automatically)
    - /fi-verify-now still available to force an immediate check
Version: 2.1.5
Date: 2026-02-13
  Features:
    - Verification now runs automatically in the background every 3 minutes (when enabled in mod settings)
    - Added "Enable verification checks" mod setting (off by default) to gate the verification system
    - Alerts are only printed when significant tracking drift is detected (>20% and >50 absolute difference)
    - Replaced /fi-verify-start and /fi-verify-status with /fi-verify-now for immediate checks
    - /fi-verify-report now shows the latest background check results
Version: 2.1.4
Date: 2026-02-09
  Features:
    - Added verification console commands (/fi-verify-start, /fi-verify-report, /fi-verify-status) to compare mod tracking against Factorio's built-in production statistics
    - Verification report now sorts diverged items by severity, shows only top 10, and collapses untracked items into a summary count
Version: 2.1.3
Date: 2026-02-09
  Changes:
    - Resized Quality column in production/consumption tables to 100px to match the short quality tier names
Version: 2.1.2
Date: 2026-02-09
  Bugfixes:
    - Fixed crash in solid fuel tracking: handle burner.currently_burning as both ItemIDAndQualityIDPair and LuaItemPrototype, with fallback to prototypes.item lookup
Version: 2.1.1
Date: 2026-02-09
  Bugfixes:
    - Fixed crash in solid fuel tracking caused by incorrect API usage for burner.currently_burning
Version: 2.1.0
Date: 2026-02-09
  Features:
    - Added quality support: production and consumption tables now show a Quality column, with separate rows per quality tier
    - Tracks recipe quality for assembling machines and furnaces, using result_quality when available
    - Fluids and mining drill outputs default to normal quality
Version: 2.0.5
Date: 2026-02-05
  Changes:
    - Surface column now shows localized planet names and user-provided space platform names instead of internal surface IDs
Version: 2.0.4
Date: 2026-02-05
  Changes:
Version: 2.0.3
Date: 2026-02-05
  Features:
    - Production and consumption tables now show a Surface column, with separate rows per (recipe, surface) pair
Version: 2.0.2
Date: 2026-02-05
  Changes:
    - Added surface_index to all production and consumption result records for future per-surface filtering support
Version: 2.0.1
Date: 2026-02-05
  Bugfixes:
    - Fixed close button sprite (utility/close_white renamed to utility/close in 2.0)
    - Fixed heading style (heading_3_label renamed to caption_label in 2.0)
Version: 2.0.0
Date: 2026-02-05
  Changes:
    - Migrated mod from Factorio 1.1 to 2.0 (global→storage, prototypes API, shortcut icon format, event handler updates)
    - Removed unused GUI styles that referenced parent styles removed in 2.0
    - Fixed furnace previous_recipe lookup (now returns RecipeIDAndQualityIDPair in 2.0, not LuaRecipe)
    - Fixed burner fuel_value lookup (currently_burning now returns ItemIDAndQualityIDPair in 2.0)
Version: 1.1.24
Date: 2024-04-21
  Changes:
    - [GUI] Various layout optimisations
    - [GUI] Now shows recipe or resource icons next to each producer and consumer
    - [GUI] Now shows internal recipe name for each producer and consumer. This is useful when several recipes with similar names or icons create the same product.
Version: 1.1.23
Date: 2024-04-20
  Changes:
    - [GUI] Now shows item and fluid icons next to the item list in the main GUI. Recipe icons to follow in a future update.
Version: 1.1.22
Date: 2024-04-20
  Changes:
    - Better handling for furnace type entities going invalid
    - Brute force removal of entities from internal databases when necessary. Slow, but only runs when entities get deleted which is very rare.
Version: 1.1.21
Date: 2024-04-20
  Changes:
Version: 1.1.20
Date: 2024-04-20
  Changes:
    - Updated onBuiltEntity logic for better compatibility with Bio Industries + other mods.
    - There are still bugs related to entity destruction, but I can't reproduce, still working on it...
Version: 1.1.19
Date: 2023-06-25
  Changes:
    - Integrated potential fix for crash on entity registration (Thanks to user timspeedle for this fix!)
Version: 1.1.18
Date: 2023-06-25
  Changes:
    - Revalidating toolchain on new machine
Version: 1.1.17
Date: 2022-10-23
  Changes:
    - Bug fixes associated with the previous version.
Version: 1.1.16
Date: 2022-10-23
  Changes:
    - Pressing the game menu key (Esc by default) now closes the main FI window (for real this time)
Version: 1.1.15
Date: 2022-10-23
  Changes:
    - Pressing the game menu key (Esc by default) now closes the main FI window
Version: 1.1.14
Date: 2022-10-23
  Changes:
    - Fix for table sizes on resolutions below 4K (thanks Jon)
    - Left-hand table of products being built is now sorted (thanks Jon)
Version: 1.1.13
Date: 2022-10-16
  Changes:
    - Cleaned up the default logging to be less verbose, enabled verbose logging in a couple of specific scenarios to catch crash bugs
    - Added entity diagnostic by typing a unit number into the UI filter text box
Version: 1.1.12
Date: 2022-10-16
  Changes:
    - Fixed another crash, this one seemingly related to other mods silently swapping out buildings to enable various functionality
Version: 1.1.11
Date: 2022-10-15
  Changes:
    - Fixed a crash bug related to mining a building that had been created by certain other mods
Version: 1.1.10
Date: 2022-10-15
  Changes:
Version: 1.1.9
Date: 2021-09-26
  Changes:
    - Re-upload
Version: 1.1.8
Date: 2021-09-26
  Changes:
Version: 1.1.7
Date: 2021-09-26
  Changes:
Version: 1.1.6
Date: 2021-09-26
  Changes:
    - Fixed a conflict bug with VortiK's Deep Core Mining. The mod did not correctly support mining targets that produce a random amount of resources in a range.
Version: 1.1.5
Date: 2021-07-03
  Changes:
    - More table styling fixes
    - Potential fix to a crash bug around entity validity
    - Error messages always print text in game
Version: 1.1.4
Date: 2021-06-28
  Changes:
    - Remove debug logging for release
Version: 1.1.3
Date: 2021-06-27
  Changes:
    - Check all surfaces periodically for newly added entities not picked up by event handling (when mods add entities via script)
    - Improved data layout and readability in tables
Version: 1.1.2
Date: 2021-06-27
  Changes:
    - Misc crash fixes
Version: 1.1.1
Date: 2021-02-14
  Changes:
    - Fix version
Version: 1.1.0
Date: ????
  Changes:
    - Reorganisation of results database - now consolidates production stats every 5 sec. Should reduce the impact on save file size.
    - Additional attempt to support mods that create/destroy entities in script. Still not fully working for mods that don't raise script_raised_built / script_raised_destroy
Version: 1.0.10
Date: 2021-02-14
  Changes:
    - Now cleans up the results database every minute
    - Potential performance problem with this approach.
Version: 1.0.9
Date: 2021-02-06
  Changes:
    - Item list now refreshes in UI - wasn't picking up new items correctly
Version: 1.0.8
Date: 2021-02-06
  Changes:
    - Fixes related to starting a brand new game with empty entities list
    - Take a dependency on flib to for some UI helpers
Version: 1.0.7
Date: 2021-02-06
  Changes:
    - Added prefix to internal logs
    - Removed some old production tracking code
    - Reintroduced logging for time taken to get through all entity partitions, to debug performance in very large factories
    - Increased default batch size as performance seems better than expected
    - Removed decimal place formatting from production and consumption tables
Version: 1.0.6
Date: 2021-02-06
  Changes:
    - Fixed some UI styling issues that caused bad dependencies
Version: 1.0.5
Date: 2021-02-06
  Changes:
Version: 1.0.4
Date: 2021-02-06
  Features:
    - Removed some old UI buttons that aren't needed
Version: 1.0.3
Date: 2020-02-06
  Features:
    - Made production and consumption tables taller
Version: 1.0.2
Date: 2020-02-06
  Features:
    - Made UI larger to accommodate long recipe names
Version: 1.0.1
Date: 2020-02-06
  Features:
    - UI now responds to escape key
Version: 1.0.0
Date: 2021-02-06
  Changes:
    - First release