GUIDES
OpenFront Factory Upgrades: Stack or Spread Levels?
Learn what Factory levels change in OpenFront, when to upgrade one node, when to build another, and how cooldowns, routes, saturation, and risk change the answer.
Direct answer: levels add attempts, while new nodes add options
Upgrading a Factory does work: each level gives that physical Factory another train-generation check on every eligible tick. Yet one level-5 Factory is not operationally identical to five level-1 Factories. Both contribute five levels to the player-wide spawn formula, but five nodes have five independent 10-tick cooldowns, more possible starting positions, and more assets that must remain connected and defended.
Use that distinction to make the purchase. Upgrade an existing Factory when its rail cluster already reaches reliable Cities or Ports, the node is protected, and the only shortage is departure volume. Build another Factory when the new position creates a useful starting point, gives a second cluster a paying destination, shortens a vulnerable route, or prevents one capture from switching off every departure. Do neither when the cluster has no eligible City or Port, when arrivals are failing rather than departures, or when the next shared Port/Factory level consumes the reserve needed to hold the network.
This answer is deliberately narrower than the other rail pages. The Train Network guide owns station geometry, path repair, hubs, branches, and stop order. Bulk Structure Upgrades owns what x1, x5, x10, and xMax cost and execute. The Factory Economy Commit guide asks whether a train economy deserves capital at all. This page begins after those questions: you have a viable rail economy and must decide where the next Factory level should live.
The important version boundary is the formal v0.34.22 tag, checked on October 4, 2026. The code counts Factory levels, not icons, when it computes the owner-wide rate. It then lets each Factory node make one random check per level, stopping after the first success for that node. A successful node enters a minimum 10-tick cooldown. Every tick is 100 milliseconds in the standard configuration, so that floor is one second per physical node. Global Train units also feed a saturation curve, which means no fixed “trains per minute” promise survives every lobby.
The result is a marginal decision, not a doctrine. At low Factory levels, the probability of two checks succeeding on the same tick is small, so stacking and spreading can produce nearly the same raw expected departures. As level density rises or early-game saturation boosts the odds, a single node discards more potential successes behind its one-train-per-tick behavior and then waits on its one-second cooldown. Spreading removes part of that local ceiling, but only if every new node sits in a cluster that can trade. A disconnected second Factory is not diversification; it is an expensive icon. A connected level on the old hub may be the better purchase even when the mathematical ceiling favors several nodes.
Make the final choice with one sentence: stack the next level when you are buying more attempts on a proven route; spread it when you are buying a second valid departure point with a job of its own. If neither description fits, preserve Gold and repair the prerequisite that is actually red.
What the v0.34.22 spawn loop really counts
Let F be the sum of every Factory level you own. A level-4 node plus two level-1 nodes gives F = 6; six separate level-1 nodes also give F = 6. The player count in PlayerImpl.unitCount(Factory) explicitly adds unit levels, and TrainStationExecution supplies that total to the spawn formula. Before saturation, the base term is (F + 10) × 15. The game divides that term by trainSaturation(global Train units), floors the result, and never lets it fall below one. Call the result R. Each level on a ready Factory gets a random chance of 1 / R.
That produces two layers that are easy to confuse. The owner-wide layer uses F, so adding one level makes R larger for every Factory you own. The node layer uses the local level, so the upgraded node makes more checks. The code exits as soon as one check succeeds, meaning a level-5 Factory still creates at most one Train from that tick. After creation, that specific node cannot create another Train for at least 10 ticks. Another physical Factory has a separate lastSpawnTick, so it can succeed while the first one cools down.
The table below compares equal total levels. It is a mechanical comparison, not a universal income forecast: it assumes all nodes are ready, every cluster has an eligible destination, and the global saturation input stays the same.
| Total levels | Example layout | Shared checks before cooldown | Physical cooldowns | Practical reading |
|---|---|---|---|---|
| 1 | one level-1 node | 1 | 1 | No layout choice yet; prove one paid arrival |
| 2 | one level-2 node | 2 | 1 | Cheapest geography; both checks share one cooldown |
| 2 | two level-1 nodes | 2 | 2 | Similar low-density odds, plus a second start and failure domain |
| 5 | one level-5 node | 5 | 1 | Efficient protected hub, but all departures share one local ceiling |
| 5 | level 3 plus level 2 | 5 | 2 | Middle ground when only two sites are truly defensible |
| 5 | five level-1 nodes | 5 | 5 | Highest local capacity and redundancy, highest route and defense burden |
| 10 | one level-10 node | 10 | 1 | Concentrated capital; local cooldown and capture risk matter most |
| 10 | five level-2 nodes | 10 | 5 | Independent cooldowns without maintaining ten separate sites |
The saturation input prevents a static schedule. At very low global Train counts the curve boosts attempts; around the current soft midpoint of roughly 560 Train units it damps them; far later it approaches a lower plateau before a remote hard tail. A visible Train consists of several Train units, so the number in the formula is not simply the number of engines you can count. This is why a community clip from an empty practice lobby cannot establish a public-lobby rate, and why this guide compares layouts under the same saturation assumption rather than promising a clock time.
Eligibility is checked before the random loop. A Factory must belong to a rail cluster containing at least one trade-available City or Port. The destination is chosen randomly from eligible trade stations, not ranked by distance or profit. A Factory is a generation station, but it is not a paying stop: passing another Factory does not add Gold. The first ten paid City or Port stops avoid the route penalty; later stops lose 5,000 Gold each down to a 5,000 floor. Relationship sets the base: 10,000 for your own station, 25,000 for a teammate or other trade partner, and 35,000 for an ally, before the multiplier and stop penalty.
Those facts define the upgrade question. Levels only add generation attempts. They do not repair a broken cluster, choose a richer destination, shorten travel, protect track, or guarantee a payment. If the problem lies after departure, another level magnifies traffic into the same failure. If the problem is that a valid, protected route sits idle waiting for a Train, a level is aimed at the correct bottleneck.
The LEVEL framework for placing the next Factory level
Run LEVEL before every Factory purchase: Link, Eligible stops, Volume, Extra node, Loss limit. It takes less time than waiting to decide whether an unlucky spawn streak means the upgrade failed, and it forces the map state into the decision. The order matters. Link and eligibility are hard gates, volume diagnoses the bottleneck, extra node prices location, and loss limit protects the rest of the match.
Link asks whether the candidate node joins the intended rail cluster. Direct station discovery requires a separation above the 15-tile minimum and within the 110-tile search range, while the generated railroad path must remain below about 155.56 tiles. Terrain and ownership can still make a visually short link invalid. Preview the connection rather than assuming two nearby icons share a cluster. For an upgrade, verify that the current node has not been isolated by capture or track destruction. For a new build, name the exact station that connects it to the graph.
Eligible stops asks what can actually pay. List the reachable Cities and Ports whose owners can trade with you now. Do not count Factories, embargoed stations, a foreign City you expect to ally with later, or a Port in another disconnected cluster. If the list is empty, both stacking and spreading return zero. If the list contains one exposed foreign City, generation capacity is not the fragile part; destination control is. Add a self-owned fallback or hold Gold.
Volume asks where the delay occurs. Watch several completed trips, not the number of rail sprites on one frame. If long periods pass with every node ready and no departure, another Factory level may help. If departures are regular but settlement is slow, the limit is route length or congestion. If settlements happen but Gold is weak, read the relationship and stop penalty. Compare like with like over a bounded observation window, because random generation naturally produces dry streaks.
Extra node asks what a new physical Factory buys beyond one more level. Good answers are an independent 10-tick cooldown, a second protected start, access to a different cluster, shorter exposure before the first paid stop, or survival after the main hub is captured. “There is empty land” is not an answer. A node that merely joins the same route beside the old Factory may still be useful for cooldown capacity, but its placement value is smaller than a node that changes the graph.
Loss limit asks what remains after paying the shared Port/Factory ladder. The combined sequence is 125,000, 250,000, 500,000, then 1,000,000 for every later level. Upgrade and new build advance the same counter; a Port level you already bought also raises the next Factory price. Keep enough Gold and Troops to protect the rail, rebuild one missing connector, and answer the nearest military threat. If the purchase leaves the network undefended, it has made future income less reliable even when expected departures rise.
The decision falls out cleanly. When Link and Eligible are green, Volume says departures are scarce, Extra node says a new location adds no distinct value, and Loss limit stays healthy, upgrade the proven node. When a new site passes Link and Eligible while adding an independent route, cooldown, or survival path, spread. When any hard gate is red, stop. LEVEL is useful precisely because it can recommend no Factory purchase at all; it is a placement framework, not a sales pitch for more levels.
Scenario one: two levels on one hub or two one-level nodes
Assume a normal-speed match at v0.34.22. You own one protected City and one level-1 Factory in the same valid cluster, 40 path tiles apart. The first Factory level has already produced three completed self-owned stops at 10,000 Gold each, so the graph is proven. You have no Ports, which means the next shared level costs 250,000 Gold. Global Train saturation is held constant for this comparison, and no station changes owner during the observation window.
Choice A upgrades the Factory to level 2. Choice B builds a second level-1 Factory 35 tiles from the City and far enough from the first structure to satisfy placement. In both cases your total F becomes 2, so both choices use the same player-wide spawn rate and make two level checks while ready. At this low density, two checks on one node and one check on each of two nodes have almost identical raw probability because simultaneous successes are rare. Choice B has two cooldown clocks, but a 10-tick local floor does not create a dramatic advantage when expected successes are much farther apart than one second.
That means geography decides. If both candidate Factories feed the same safe City, the level-2 upgrade is often better operationally. It comes online immediately, keeps both levels behind the protection already assigned to the hub, and does not create another structure that can be captured. The new node does not receive a cost discount: both choices consume the same 250,000 rung. Building just to make two icons mistakes physical count for economic value.
Now change one assumption. A second self-owned City sits in a nearby pocket, but it is outside the existing cluster. A new Factory can connect that City to a short local rail branch, while upgrading the old node cannot reach it. Choice B now creates a second valid departure point, a second eligible self stop, a second cooldown, and an income path that survives if the original hub falls. The two-level stack only increases attempts into the first cluster. Under this board state, spreading buys four capabilities for the same ladder step, so it is the stronger choice even if the short-run departure count looks similar.
There is still a stop line. Suppose the second pocket borders an enemy, and building there would leave only 60,000 Gold while a replacement connector plus emergency defense needs 200,000. The extra node passes Link, Eligible, and Extra node but fails Loss limit. Hold the 250,000. A future secure build can recover the opportunity; a captured Factory transfers its accumulated level and turns your spending into the opponent’s infrastructure.
This scenario is why “always spread” is too broad. Independent cooldowns are real, but their marginal value depends on how often the shared node would hit the local floor. At F = 2, route quality, ownership, and survival usually dominate the tiny raw probability difference. Use the upgrade for a proven single hub. Use the new building when it creates a second useful cluster or a materially safer start. Use neither when the map cannot protect the additional capital.
Scenario two: ten levels in a crowded team rail economy
Assume a late team match with ten total Factory levels, at least 3,000,000 Gold reserved after the purchase, and a global Train population near the v0.34.22 damping region. Your team controls two inland City groups and one coastal Port group. Each group is already a valid rail cluster, each has a self-owned fallback stop, and the two inland groups are separated far enough that one Factory cannot connect both without vulnerable relays. All comparisons keep total levels, global saturation, Gold multiplier, and destination relationships unchanged.
Layout A puts all ten levels on the safest inland Factory. That node makes up to ten checks while ready, but stops after the first success and then observes its one-second cooldown. It is cheap to defend and easy to inspect. Its weakness is concentration: every departure begins at one tile, all ten levels become useless if that node is captured or its cluster loses eligible stops, and the local cooldown is shared by the entire investment. This is a reasonable layout only if the hub is exceptionally safe and the other clusters are too fragile to justify a Factory.
Layout B uses five level-2 Factories: two around the safe inland group, two around the second inland group, and one near the Port group. The owner-wide formula still sees F = 10, and the ready nodes still expose ten checks in total, but there are five independent cooldowns. More importantly, the starting positions serve three real jobs. Capturing one node removes two levels rather than ten; damage to one cluster leaves two other income paths; and a Train can begin closer to a paying stop instead of traversing the whole map before its first settlement. That route value can exceed the modest pure-cooldown gain.
Do not infer a guaranteed Gold rate from the layout. The repository’s official fixed-map tests show why. In one seeded 3,000-tick scenario, one Factory plus one City produced about 46,000 Gold per minute; one Factory plus four Cities produced about 42,000; and two Factories plus two Cities produced about 58,000. In an external-City scenario, the Train owner measured about 76,000 per minute while the other owner received 250,000 over the test period. These snapshots verify that real executions settle and share payments, but they are not universal production tables. Random destination choice, seed, path length, relationships, and saturation can make more stops look worse in a short sample.
Use accounting that matches the decision. Record departures by node, completed paid stops by cluster, relation value, and the time a route is unavailable. If the level-10 hub remains ready for long gaps, local cooldown is not binding and splitting purely for cooldown gains is weak. If it repeatedly spawns, cools down, and resumes while other secure clusters sit without a generation point, Layout B converts idle geography into capacity. If the Port cluster is under naval pressure and the second inland group is about to be conquered, neither equal-level layout is honest; concentrate on the one cluster expected to remain valid.
The cost history also matters. Reaching ten combined Port/Factory levels means later steps cost 1,000,000 each regardless of whether they are upgrades or new buildings. At that price, a new node must buy more than visual symmetry. Require a named destination, protection owner, fallback route, and expected lifetime. A level on the fortress hub can be boring and correct. A new level-1 Factory can be superior when it activates a second economy. The correct late-game spread is not ten dots; it is the smallest number of independently useful nodes that prevents the cooldown, path, and capture risks from sharing one failure.
Failure modes and the counters opponents will use
The first failure is upgrading a node that cannot pay. Rails may still be visible after a City is captured, an embargo removes trade, or a connector disappears, but eligibility is checked at spawn time. A cluster with only Factories has no trade destination. The counter is to inspect ownership and trade status before blaming randomness, then reconnect a self-owned City or Port. Do not spend a 1,000,000-Gold level to increase checks that the eligibility gate never reaches.
The second failure is measuring spawned Trains instead of completed settlements. A Train can take a long route, select a low-value destination, or lose access while traveling. More Factory levels can fill the map with activity while Gold remains weak. Count paid City and Port stops over the same time interval and note the relation tier. If departure volume rises but paid arrivals do not, fix topology or shorten the first leg. The In-game Gold Rates guide helps separate a visible economic event from a real change in income.
The third failure is spreading into fake redundancy. Two Factories in the same exposed cluster may have independent cooldowns, but they share the same destination, track cut, and frontline. An opponent does not need to capture both; taking the bridge City or embargoing the only foreign stop can silence both generation points. True redundancy has independent prerequisites: a different protected connector, a self-owned fallback, or another cluster. Draw the failure path from each Factory to its first reliable stop. If the lines converge immediately, the layout is still concentrated.
The fourth failure is concentrating levels into a prize. Cities, Ports, and Factories transfer when captured, preserving their level. A level-10 Factory near the front is not merely lost income; it can become an enemy generation asset connected to infrastructure you financed. Keep high levels behind a defensible line, and delete only under a deliberate denial plan because deletion has its own timing and capture interaction. An opponent can also pressure the destination rather than the Factory, forcing you to defend the network at several points.
The fifth failure is ignoring the shared price ladder. A Factory upgrade can make the next Port cost 1,000,000, and a Port upgrade can do the same to the Factory decision. Buying x5 because the control is available may consume several capped rungs before you observe one useful change. Use one level, observe the bottleneck again, and reserve capital for a new water route, defense, or replacement station. Bulk controls accelerate a verified choice; they do not verify it.
The sixth failure is treating a random drought as proof. With low per-check probability, an apparently silent minute and a burst of several departures can both occur without the underlying rate changing. Compare longer, equivalent windows and keep saturation context stable when possible. In a busy public lobby, other players’ Trains alter the global throttle even though your own layout has not changed. Stop the experiment when the battlefield changes; a before-and-after comparison spanning a capture, alliance change, or global Train surge cannot isolate the upgrade.
Opponent counterplay follows those weaknesses. They can capture or delete the one paying City, place pressure on a relay, embargo a foreign station, force your protection budget upward, or take the high-level node itself. Your answer is not automatically more levels. Use owned fallbacks, two genuinely distinct clusters, short first legs, protected connectors, and a cash reserve. The Factory layout wins only while its prerequisites survive.
How map shape and match mode change the layout
On a compact continental map, most useful stations may already sit inside one connected component. New Factories easily duplicate the same origin-to-destination choices, and frontlines reach every node quickly. Favor a small number of protected nodes with moderate levels, then spread only when the second location creates a shorter first leg or survives a different border failure. The 15-to-110-tile station window is easier to satisfy, but easy connectivity is not the same as valuable connectivity. A dense cluster with many eligible destinations also makes random selection less predictable.
On a large continental map, distance gives physical distribution more value. A second Factory can start Trains near a distant City group and avoid depending on a long relay chain from the capital. Separate clusters can be correct when joining them would require exposed track or several structures that merely carry the route. The loss limit must include those relays: a nominally cheap level can create a much larger protection commitment. Use the Map Strategy guide to identify corridors first, then place Factory generation where the corridor has a durable destination.
On islands and archipelagos, water breaks rail components. A Factory on the main island cannot power a City on another island just because both belong to you. A new Factory on the second island may be the only way to create a local train economy, which makes spreading structurally necessary rather than an optimization. Yet Port investment competes on the same price ladder and may already monetize the water component. Build the island Factory only when it has a local City or Port and the rail branch has a long enough life to repay the shared rung.
Public FFA punishes dependence on foreign stations. An other player can remain trade-available without being an ally, but politics, embargoes, and conquest can change the set. Treat a foreign high-value stop as upside, not as the only eligibility proof. A concentrated home Factory with one owned City is less lucrative than an ally route but remains functional through diplomatic change. Spread toward foreign stops only with an owned fallback in the same cluster or enough reserve to reroute.
Team mode changes the defense contract. A teammate stop pays the 25,000 base, and the station owner also receives a payment when your Train settles there. That can make a Factory near a teammate’s protected City worthwhile even when your own direct return is not the whole team benefit. Assign route ownership before spreading: who holds the connector, who replaces the Factory, and who protects the destination? Five scattered nodes without assigned protection are not a team network. Two nodes behind different teammates’ lines can be genuine resilience.
No Alliances mode removes temporary alliance support but does not erase fixed teams or every possible trade relationship. The stable adjustment is to discount any route whose foreign endpoint can be embargoed or conquered without warning. Ranked compresses time and raises the opportunity cost of capped-price infrastructure: a 1,000,000-Gold level bought near the timer may never settle enough stops to matter. Singleplayer provides more predictable diplomacy but can still overwhelm exposed clusters with Nation pressure. In every mode, remaining match time belongs in Loss limit.
Custom lobbies may disable Factory entirely or change Gold conditions. Infinite Gold removes the purchase constraint but not eligibility, cooldown, saturation, route travel, capture, or stop value. A layout experiment in such a lobby can isolate the mechanical difference between one high-level node and several low-level nodes, but it cannot prove a normal-match return on investment. Match the experiment to the question you intend to answer.
The map rule is therefore not “spread on big maps, stack on small ones.” It is: place the fewest physical Factory nodes needed to give each durable rail region a valid origin and to keep one failure from silencing all important regions. Add levels to those proven origins. Geography decides how many regions exist; the spawn loop decides how densely each origin can use its levels.
Stop lines, source boundary, and the next useful read
Stop upgrading when another level no longer targets the measured bottleneck. The clearest stop signal is an idle prerequisite: Trains already depart, but paid stops arrive too slowly; destinations keep changing owner; the next route depends on one foreign station; or the network’s protection cost rises faster than its settlements. A saturated-looking map is not a reason to add production. It is a reason to check whether existing Trains finish useful trips.
Use a small ledger after each level. Write the node, its cluster, the eligible destinations, completed paid stops during the window, relationship base, route outages, and the reserve remaining after purchase. Compare the next observation against that record. If the additional level produces no durable increase, do not average down with another capped-price upgrade. Keep the working infrastructure and redirect the next Gold to the missing condition, whether that is a connector, self-owned City, Port, defense, or army.
There are three positive stop lines too. First, stop stacking when one node repeatedly reaches its local cooldown while another durable region has no Factory. Second, stop spreading when every important region already has a protected origin and the next building would duplicate an existing failure path. Third, stop all Factory spending when the remaining match window is shorter than a plausible payback cycle under current arrivals. These are state changes, not fixed level caps. A level-2 hub can be excessive on a broken branch, while a level-10 fortress can be rational in a long, stable team economy.
The verified boundary for these rules is the formal OpenFront v0.34.22 Release. The tagged TrainStationExecution shows the per-level loop, the owner-wide Factory count, destination gate, early return after success, and 10-tick node cooldown. The tagged Config defines the spawn-rate and saturation functions, shared price ladder, relationship payouts, stop penalty, and 15-to-110-tile station bounds. The tagged TrainStation implementation confirms that Cities and Ports pay while Factories do not, and that eligible destinations are randomly sampled. The official scenario tests provide bounded end-to-end comparisons rather than universal forecasts.
After choosing the node layout, use the adjacent pages in order. Repair connection and stop order with Train Network. Price the exact x1 or batch action with Bulk Structure Upgrades. Reopen the larger capital choice with Port versus Factory when a new water route competes for the same ladder. If the railway is already profitable and you only need the next location, return to LEVEL.
The final rule is intentionally conservative: buy a level only after you can name the valid route it increases, and buy a new node only after you can name the independent job it performs. Total levels determine the shared odds; physical nodes determine cooldown domains, starting geography, defense burden, and capture exposure. The strongest layout is not the one with the most Factory icons or the tallest single stack. It is the one that turns the next expensive level into a completed payment without making the rest of the economy easier to break.
Related content
Use OpenFront v34.3 costs, troop growth, route payback, and stop signals to choose City, Port, Factory, defense, or a liquid reserve without copying a fixed script.
- OpenFront AFK Teammate Takeover: Absorb a Disconnected Ally for Zero Troop Loss
A Team-mode decision guide for what a teammate's disconnect does to your win/loss position, when absorbing their land is free, when it is a trap, and what the 30-second mark and the ranked 2v2 rules actually change.
Sep 23, 2026
- Alliance-Break Timing: When 30 Seconds Is Worth the Trade
Decide whether to break a live alliance now, wait for it to expire, or renew it, using the 30-second traitor window, the 0.5 defense and 0.8 speed debuffs, and the -100/-40 relation drops in OpenFront v0.34.
Sep 30, 2026
- OpenFront Annexation and Enclosure: Close Pockets Without Overextending
Learn how to take small footholds, close an enemy pocket, and keep a second route after the capture instead of turning a lead into a fragile border.
Sep 4, 2026