Auto Best Quality — FAQ
General
Does this work with modded quality tiers?
Yes. ABQ reads quality levels dynamically from the game's quality prototypes at
runtime. Any mod that adds custom quality tiers will be picked up automatically —
no configuration needed.
Does this work with modded machines and assembler types?
Yes. ABQ uses defines.inventory.crafter_modules as a fallback for any entity
type it doesn't explicitly recognise, which covers custom crafters added by other
mods. If you find a modded entity whose modules aren't being handled correctly,
please report it.
Will it interfere with my existing logistics requests or circuit network
conditions?
No. ABQ only creates and manages its own item-request proxies. It does not touch
your chest request settings, combinator signals, or any other logistics
configuration.
Does it work on Nauvis and space platforms at the same time?
Yes. Each surface is handled independently. On Nauvis (and other planet surfaces)
it uses your logistic networks; on space platforms it uses the platform hub
inventory and reacts immediately when a cargo pod delivers items.
Blueprints and placement
I placed a blueprint with legendary ghosts but ABQ built uncommon ones instead.
Is that a bug?
No, that's exactly what it's supposed to do. If legendary items aren't in your
logistics network yet, ABQ substitutes the best quality available right now and
will upgrade each building automatically as better items arrive. The ghost remains
as a record of your intent.
What if I don't want a substitution — I want to wait for the exact quality?
ABQ always uses whatever is available. If you want to wait for a specific quality,
simply don't have construction bots available, or temporarily disconnect the
roboport network covering that area. ABQ only acts when bots can reach the ghost.
I placed a blueprint on top of existing buildings to upgrade them. Will ABQ
handle that?
Yes. Ghosts placed on top of existing buildings (upgrade blueprints) are processed
the same way as new construction ghosts.
Does ABQ handle blueprint books and large multi-blueprint placements?
Yes. Every ghost fires the same built-entity event regardless of how it was
placed. ABQ processes them at a configurable rate (default 20 per tick) to avoid
UPS spikes on very large blueprint placements.
Modules
I CTRL+clicked a built assembler to set module requests. Will ABQ pick that up?
Yes. ABQ periodically scans for item-request proxies it didn't create itself
(default every 10 seconds). When it finds one with module requests that can't be
fully satisfied, it takes over and applies its substitution logic.
Will ABQ touch modules I inserted manually into a machine?
No. Modules inserted by hand or via personal roboport bots are not visible to
ABQ — they bypass the construction network entirely. ABQ only manages module
slots that were set via blueprint or upgrade planner.
The modules in my machine are a mix of qualities. Will ABQ sort them out?
Yes, over time. ABQ tracks the intended quality for each module slot and steps
each one up individually as better items arrive. It won't downgrade a slot that
already has a higher quality than requested.
I manually changed the module request on a machine ABQ is managing. Will ABQ override my change?
Yes, it will. ABQ periodically checks machines it is tracking and will recreate
its proxy requests if it detects a discrepancy. If you manually cancel or modify
a module request proxy on a machine that ABQ believes still needs work, ABQ will
restore its own proxy on the next scan cycle (default ~10 seconds).
If you want to permanently take over a machine's module management, the safest
approach is to use the upgrade planner or a new blueprint to express the new
intent — ABQ will then adopt that as the new target and manage it from there.
Simply deleting ABQ's proxy without replacing the intent will result in ABQ
recreating it.
Can I request different module types in the same machine?
Yes. ABQ handles each module type independently, assigning slots correctly even
when multiple types are requested simultaneously.
Step-up behaviour
How quickly will my buildings be upgraded once better items arrive?
On space platforms: immediately when a cargo pod delivers the items. On planet
surfaces: within the next retry cycle, which is ~3 seconds after any successful
substitution, or ~30 seconds otherwise. Both intervals are configurable.
Will ABQ upgrade through intermediate qualities, or jump straight to the target?
It steps up to the best available quality at each check. If you're targeting
legendary and uncommon arrives first, it installs uncommon. If rare arrives later,
it steps up to rare. It will keep stepping up until it reaches legendary — or
whatever your target quality is.
What happens if I upgrade the target quality after a substitution is already in
place? For example, I had a rare ghost but now I want legendary.
Use the upgrade planner on the built entity or place a new ghost at the higher
quality. ABQ will detect this and update its tracking to target the new quality,
stepping the building up when legendary items become available.
Performance
Will this impact my UPS on a large base?
ABQ is designed to be UPS-friendly. Ghost processing is spread across ticks at a
configurable rate. The periodic retry loop processes a small batch per tick and
only runs when there is actually pending work. The proxy scan is chunk-based,
scanning one chunk per tick by default. On a typical base the overhead is
negligible.
I have thousands of ghosts queued from a massive blueprint. What happens?
ABQ will work through them at the configured rate (default 20/tick). During this
time it reduces its processing rate adaptively if the queue grows very large, to
avoid a prolonged UPS spike. You'll see a progress log message every second if
logging is enabled.
Can I tune performance for my specific hardware?
Yes — all the rate and interval settings are configurable at runtime without
restarting. See the Settings section on the main mod page.
Commands
ABQ provides several console commands for inspection and troubleshooting. Open
the console with ~ and type any of the following:
| Command | Description |
|---|---|
/abq-stats |
Shows counts of pending ghosts, substituted buildings, cached networks, and current processing rate. |
/abq-inspect-ghosts |
Lists all ghosts within 10 tiles of your character with their quality and substitution status. |
/abq-cleanup |
Removes stale tracking data — orphaned pending ghosts, expired network cache entries, and stale substitution records. Safe to run at any time. |
/abq-reset |
Clears all ABQ state and re-queues every ghost on every surface for fresh processing. Use this if you loaded a save that was made before ABQ was installed, or after a crash recovery where events may have been missed. |
/abq-network-stats |
Shows how many roboports are registered per surface and force, and how many network lookups are cached. |
/abq-perf |
Shows detailed performance statistics: ghost processing rate, network lookup time, substitution time, and current queue sizes. |
Troubleshooting
ABQ doesn't seem to be doing anything.
Check: (1) Is there a roboport with construction bots covering the ghost? ABQ
requires a construction network. (2) Is the item actually in your logistics
network? Open the network content screen and verify. (3) Run /abq-stats to see
if ghosts are queued or pending.
A building was built at the wrong quality and never stepped up.
Run /abq-inspect-ghosts near the building to check its substitution status. If
it's not tracked, use /abq-reset to re-scan all ghosts. If the issue persists,
enable logging (abq-enable-logging in startup settings, then reload) and
reproduce the problem — the log will show exactly what ABQ decided and why.
I get a "MISSED" message in chat saying a building was built before ABQ could
process it.
This is a race condition: construction bots built the entity in the same tick ABQ
was about to process its ghost. Run /abq-reset to re-queue everything and ABQ
will pick it up on the next pass. The message is intentional — it tells you
exactly which entity was affected so you can verify the result.
After loading an old save, ABQ isn't tracking my existing buildings.
ABQ only records buildings it processed itself. If you added ABQ to an existing
save, run /abq-reset to scan all current ghosts and register all existing
buildings for step-up monitoring.
I cancelled ABQ's module proxy on a machine and it keeps coming back.
This is expected. ABQ tracks machines it is managing and recreates its proxies
when it detects they are missing. If you want to stop ABQ from managing a
particular machine, express a new intent via the upgrade planner or blueprint —
ABQ will adopt the new target. Alternatively, run /abq-cleanup which will
remove stale tracking entries for machines whose ghosts no longer exist. If the
machine genuinely no longer needs ABQ management (e.g. the target quality is
already installed), ABQ will eventually stop tracking it automatically once it
detects all slots are satisfied.