LoopMiner - 10 million ore/minute generated base and rail network on default map
Planned
-
Balanced aggregation outposts to mining outposts ratio for ideally 0
- Tuned train count avoids over production (Lower entity overhead)
-
Fixed ore loading timer (avoid trains wasting time without all drills feeding)
-
Pathfinds train to edge of base.
Avoid Water
default on. Limits available density from difficult pathfinding- Could be optimized
-
Configurable loop design when 3+ rail loops are required. Like big ore patches.
Nested Loops
works only with logistic networks. Does not work withDirect Insertion
orTrain 2 Train
consumersSingle
adds 2nd rail over ore to maintain loop
Ideally, a resource aggregator provides a continuous queue of trains filled with ore to deliver to the consumer furnace/assembly train stop. Train unloads never pausing from filled destination/box. Factory consumes resource fast enough to never block train.
Treat ore as a fixed unlimited input tuned by number of Cargo Wagons.
Unlimited comes from the effectively unlimited map size to mine.
Primary parameter is resource throughput expected. Specified as (wagons per train) * (base rail loop count) = ( calculated expected resources per minute).
- Number of aggregators = (base rail loop count)
- Add patches until aggregator expected output is satisfied.
(resources per minute per wagon) * (wagons in train) * (overproduction percent) = (resources per minute of outpost) * (outpost count)
To solve, used measured timing data from Factorio 1.1.1.1
- An ore wagon loaded/unloaded by green arms directly from boxes will complete in ___ ticks, or ___ resources/minute
- Drill > Wagon Direct Insertion will fill in ___ ticks, or ___ resource/minute
- Drill > Smelter > Wagon Direct Insertion will fill in ___ ticks, or ___ resource/minute
- Train change delay between previous train emptying and new train starting is ___ ticks
- Average ore per minute per wagon = (resources) / (unload_ticks + delay_ticks) / 60
Additional options
- Base Aggregator options
Use Aggregator Outposts
with it's optionsUse Furnace Outposts
with it's options- Per-ore
Furnace Outposts Percent
if both Aggregator and Furnace are enabled. Aggregator Outposts deliver ore to base for certain recipes.
- Per aggregation and base types, Station Design relative to delivery edge
Parallel
stacks stations. Optimal for many wagon, train 2 logistic 2 train.Perpendicular
puts rail side by side. Optimal for short wagon trains. Not for long trains because of logistic bot travel distance.
Over mining wastes UPS and increases map size. Esttmate with known 60 UPS @ X,XXX SPM limits.
This charts a significant amount of map chunks
Unless for Benchmarks and record setting, see section below
Distributes resources at edge of base. Player collects ore for processing
- Mandatory Options
Base Size
- X and Y sizes in chunks. Delivery rails pathfind to border. Estimate 40(?) or from your saves.Base Center
- X and Y Center. Default 0x0 where ore is least.
- Options
One Resource per Side
routes different resources to different sides. Minimizes bot travel distance. Complicates pathfinding.
- Designs
Train 2 Logistic 2 Train
generates input and output trains.Output Wagons
configures train length. Player DIY connects unterminated output rail to factory.Train 2 Logistic
lets player DIY ore loading stationsUnterminated
lets player DIY everything past the base edge. Useful for Progression scenarios.- Deleting pregenerated stations simulates this as needed. Useful for already unlimited throughput loops
Places drills on ore patches. Create output train.
Best Drill 2 Train
- Direct Insertion (best UPS, fewest entities). Default minimum 8 drills over full ore going to 2 wagons are required to add lane. Missed ore from fitting a rectangle inside a jagged shape are ignored as unproductive. Gain is optimal rail solver and in-game train mechanics. Cost is increased outposts to meet demand.Drill Effect Tiles
1-25 - Tiles that must have ore. Below threshold drill isn't created. Lower thresholds may increase drill or train lane count. Default 25 (5x5 effect size) focuses on plentiful tiles closer to the center.Minimum Drills per Wagon
- Default 4.Minimum Wagons
- Default 2.Drill Minimum Ore
>= 1. Amount of ore in 5x5 effect area. Default 1. Total available ore less from overlapping effect areas.
Logistic Drill 2 Train
Full Coverage Drill into logistic boxes. Output loop next to ore patch. Short 1-3(?) wagons trains forFixed Train Load Time
- Adds to schedule "OR X seconds elapsed". Elapsed is how long all connected drills should take to fill wagon. Default enabled to ensure empty drills don't block train.Fixed Train Store Time
- Same as above for inserters. Default enabled for better aggregation. Cost affects undersized Player factories with unnecessary train traffic
Direct Insertion Drill Thresholds tuning
- Higher thresholds push away outposts to more plentiful patches. May increase patch count to meet demand.
- Lower thresholds may create non-full wagon loads (assuming timeout mode) that waste UPS.
Route miner loops to nearby aggregation outposts. Transfer ore from shorter drill-optimized trains to a single longer consumer-optimized train.
- 5+:1 aggregation into 20+ wagon trains vastly increases destination's density
Unlimited Logistic Train
Wagon Count
- Scale parameter- Sufficient input miner loops smooth over intermittent delivery
- Generates Roboport farm
- 1x unlimited output loop suitable for direct use in base factory
- (Abandoned, what about the loop back???)
Direct Insertion
- Trains meet on alternating sides going down train to give sufficient turning room
- Con: Slowest feeder (eg ore patch empty, train change) blocks train waiting for full. Fixed time means generally delivering less than full wagons.
- Currently unclear advantages
Automate smelting at more useful outposts. Create dedicated smelter outposts or smelt-on-site mining outposts
Built in designs
Drill 2 Furnace 2 Train
smelts ore on top of patch via Direct Insertion (Best UPS). Cost is less than half drillable ore per patch. Extends ore patch solver with additional options.Train 2 Logistic Furnace 2 Train
for bot powered dedicated smelter outpost.
Like an Aggregator Outpost with furnaces. Takes input only from multiple miners. Output rail runs through center at full throughput.Wagon Count
- Scale parameter
- (Abandoned)
Drill 2 Train 2 Furnace 2 Train
for Direct Insertion dedicated smelter outpost.- Direct insertion miners output short trains. So we generate a skinny wide outpost outputting a gigantic parallel loop array. To maintain direct insertion no aggregation is available.
- Logistic-powered input from miner outpost or aggregator defeats the point of direct insertion.
- Unclear advantages over current designs
Supports deconstructing existing network and constructing new one. Useful for tuning
Reads the existing build mod, replaces create with destroy, appends the new network after.
- If player base expands into loop-miner controlled area
Destroy Existing
removes conflicting entitiesStop
- On conflict teleports player next to entity. Run /unlock to continue.
- X million Ore per minute
Generate chunks of factory with configurable parameters
Base Generation is a separate product but very related.
Available design parameters
- Production unit is the Micro-Factory. Creates exactly 1 product
- Buildings
0 Beacon - Side by side
- 2 furnaces, boxes between them6 Beacon - Side by side
- Lanes of beacons8 Beacon - Side by side
- Full Grid of Beacons12 Beacon
- Max Beacon
- Roboports
1 Wide
3 Wide
- Introduce power polls for center rows2-4 Wide
- 2 wide roboports, with full grid cell size of 4 buildings
- Logistic Network bot count, evenly distributed among Roboports on init
- Connections
- Each Micro-Factory supports being split in half for trains
- Each Micro-Factory side supports a dependency/successor micro-factory next to it with a loop encompassing them. Gives the optimal loop.
- Remaining trains loop inside
Solving "optimal" quickly becomes NP-Hard. Instead parameterize designs and run through a range, gathering metrics at every step.
- Parameterize several designs and test ranges.
- Create graphs.
- UPS vs Bot count
- Maximum bots needed
- Gigantic bases taking 100 wagons vs multiple 20 wagon vs multiple 8 wagon.
- UPS impact?
- Throughput impact?
- Alarms
- Boxes are 75% full
- Boxes are not 100% full by train arriving
- Don't think logistic networks work that fast
- 0 bots available?
- Post on /r/Factorio and forum
Research areas include
Ore Per Minute
- Consumed ore per minute recordUnlimited Factory Template
- Isolated micro-factory test- 2 back to back trains on basic empty/filled schedule
- Shortest possible rail loop that includes 2 station. 2nd station not inside a facto block
- On 2nd station arrival event, immediately fill train. Train moves on
- Export map data from in-game map
- Build a rough equivelent to LuaSurface
For base generators, HTML/CSS already does the math to place boxes on a screen. Well an Assembly Machine is a 3x3 box. A stack of 4 assemblers is a 12x3 box. An array of stacks, some assembly others oil, some with extra boxes on top, is ??x?? but easily queryable.
Define with custom HTML elements, add a text editor, and it looks basically XML
<factorioXML>
<station wagons="5">
<roboport-wall width="1" height="7" celldepth="5"/>
<beacon celldepth="4">
<assembly-robo>
<chest-blue count="2" request=" "/>
<chest-green count="5"/>
<chest-green count="5"/>
</assembly-robo>
</beacon>
</station>
</factorioXML>
I'm writing a base generator. I realized HTML/CSS already solved how to
While writing a base generator, I realized HTML/CSS already solved