Update 2022-03-31: Owen Jacobson has written a lovely companion to this piece which covers new dynamics in update 5.

With apologies, as usual, to Christopher Alexander.

Satisfactory is a first-person factory construction game. COVID-19 has given me license to spend FAR too much time playing it, and I’d like to share a few thoughts that I hope might prove useful, or at least interesting.

This is a pattern language: a grammar which generates buildings. Each of the patterns identifies forces present in a particular context, and resolves them by describing a particular kind of place, in which an arrangement of structures can resolve those forces. The patterns are described in relationship to each other: each helps to organize, to refine, or to flesh out, others. Using these patterns together helps generate a series of buildings which work together.

This is only one possible language for Satisfactory—if you’ve played the game for a while, you’ve undoubtedly started to create your own. I encourage you to share them!

s-scenic.jpg

Fundamental Dynamics

Many of the constraints one would assume shape the design of a real factory, or even other factory sims, are absent or muted in Satisfactory. The game has no time limits, no quotas other than what you accept for yourself, and what consumables one needs (fuel, ammunition, filters) are readily fulfilled by small production lines. Resource nodes (e.g. iron ore) are inexhaustible. Waiting long enough guarantees you’ll have enough parts. Factories generally require little supervision or active control. Space constraints are mainly enforced through aesthetic preferences: it is always possible to escape the limitations of local terrain, trees, rocks, etc by building a suitably large flat plane above them. Resources can be transported arbitrarily long distances without loss or power, via belts.

Instead of viewing Satisfactory in these terms, I think of the game in terms of three main constraints:

  • Unlocked technology
  • Player time
  • Lag

The tech tree is self-explanatory: solutions to problems can only use buildings and tools which we have researched. These constraints shape what kind of structures and strategies we use in factory design. The time constraint is critical, though: as players, we want to spend our time well. (I claim, having played this game for more than two hundred hours). Satisfactory isn’t a game about factories–it is a game about building factories. The desire to save time creates new goals:

  • Automation
  • Production rates
  • Observability
  • Expandability
  • Flexibility

We automate things because building them by hand is time consuming. Once automated, we want higher production rates in order to build more sophisticated things, fulfill required power production, or satisfy whatever goals we set for ourselves. Improving production rates is the foundation of a key gameplay loop: observing current behavior, expanding production lines to create more, and redesigning or reconnecting lines in new ways. The knowledge that this loop is coming pushes players to lay out new factories, and adopt general strategies, which facilitate observation, expansion, and refactoring.

Unlike Factorio, Satisfactory never automates factory construction. Every machine and foundation is placed by hand. This forces players to make early choices with these constraints carefully in mind, because there is a linear (and generally large) time cost associated with rebuilding a production line. One cannot simply “move an assembly line three meters to the left”.

The final constraint, lag, is a technical one: simulating all these moving parts is expensive. Satisfactory gets slower the more buildings one makes, but making lots of buildings is (at least for many) how the game is meant to be played. Centralized production lines, while efficient and observable, cause the game to become unpleasant, then unplayable. Mitigating lag means spreading out production, because regions of the map which are farther away can be updated less frequently.

With these dynamics in mind, I have specific suggestions for one way you can play Satisfactory.

s-waterfall.jpg

Factories

How big should our factories be? What should they create? How should they be connected? These questions govern the overall shape of a map, and also influence the designs of each factory individually.

Factories Far Apart

Factories which are too close together create lag and make the game less pleasant to play. They are also more difficult to expand without running in to each other. Therefore: separate factories by a fair distance to reduce the impact of lag. You’ll need to spread out across a good chunk of the map in order to take advantage of diverse resource nodes anyway; spread your factories across this range.

Factories Near Raw Materials

Carrying raw materials long distances is time-consuming, and generally requires more belts than sending refined products. Instead, situate each factory close to the raw materials (e.g. ore, water) it consumes in bulk. Where there are many resource types, aim for the center of a cluster, or where one resource type dominates, site your factory closer to that resource to reduce the number of long-distance belts or pipes required.

Factories With Goals

Factories with Goals

Factories which produce many things rarely do those things efficiently. They devote more space to routing parts around pieces of the factory which do not use those parts. They are difficult to observe and balance. Their scope makes it difficult expand or redesign later. To reduce these problems, devote each factory to a single part, or a small set of parts with tightly related supply chains.

Shoulders of Giants

Shoulders of Giants

With the exception of high-volume parts (e.g. screws, rods, plates, beams, pipes, quickwire), building the entire production chain for a part is time-consuming, and requires careful balancing each time it is done. At the same time, having a single Screw Factory which sends screws to every other factory requires significant investment in transport links which is cost-prohibitive. Therefore, build high-volume parts from scratch locally, and draw low-volume parts (e.g. motors, heavy frames, control rods) from a dedicated factory for that part.

Factory Connections

Having defined the rough distribution, purpose, and relationships between factories, we turn to the movement of material, power, and players between them.

Backpressure

Backpressure

Each factory, and each connection between factories, should offer backpressure: when flow downstream decreases, flow decreases upstream as well. Backpressure is important because it allows upstream producers to reallocate resources to other needs more efficiently: if two factories consume motors, but one has more motors than it needs, the other factory can receive its excess, and produce faster. Wherever possible, design for backpressure. There are specific cases in which backpressure is undesirable; we address these later.

Immiscible Materials

Backpressure can backfire. One such scenario is when materials are mixed: a single belt to a smelter alternates, say, coal and iron, or a single truck or traincar carries two types of materials. Careful use of smart splitters can make this work, but one runs the risk of starvation and deadlock: a factory consumes slightly more coal, fills up on iron, but the next item in the belt is iron, requires operator intervention to resolve. As another scenario, imagine a single train which carries part A from source to sink, then part B from a different source to a different sink. This works so long as sinks empty the freight car, but if any parts from A are left over, some A could wind up in B’s sink, and jam up the works.

Therefore, establish a physically separate channel (belt, train, etc.) for each type of material. If materials are not separated (e.g. Shopping Malls, Sushi Belt), use Load Shedding to prevent jams.

Load Shedding

Where materials are mixed together, a deficit of one item can cause production lines to stall, with rippling effects throughout your factory network. Therefore, wherever materials are mixed, perform load shedding, rather than backpressure: find a way to consume, discard, redirect, or permanently store excess materials of any type. This defeats backpressure: avoid load shedding where efficiency matters. Consider using the overflow behavior of smart splitters (or a Splitter Overflow Chain) to identify excess material. See the Item Sink, a Recycling Train, or, for low-volume parts, permanent storage like Not A Place Of Honor.

Network Of Factories

Train Network

Train Network

Tractors and trucks are fun, but frustrating at scale. Truck-dense regions become subject to collisions which can disable trucks altogether. When power fails (and it will, invariably, fail), trucks cannot refuel, consume their available fuel, and become lost, somewhere miles in the wilderness. Tracking down dozens of trucks and refueling each by hand is a time-consuming process. Reorganizing stops requires laborious re-recording of each affected truck route.

Belts are a good alternative, but they have other weaknesses. Belts cannot send as many items as train tracks in a given area. Belts transmit neither power nor people (efficiently); those connections must be built separately. Most critically, a dedicated belt line must be created for each resource flow: sending two resources requires two belts. You can almost never re-use existing belts for new flows–as your network grows, you spend an increasing amount of time re-laying new belts between far-flung factories.

Instead, use trains as the principal means of connecting factories. Train networks provide power, material flow, and transportation in one network. Tracks are independent of the flows across them; once established, train networks rarely need to be changed, only gradually expanded to new factory sites. Trains are fast: a single freight station can easily saturate two belts. Use trains liberally: almost all factories should send their outputs out via trains, and receive low-volume materials (vis Shoulders of Giants) through trains as well.

For the actual shape of tracks, see Triangle Junction, Roundabout, Station Manifold, and Local Loop.

Station Per Component

Train Network suggests that each factory use trains to receive and dispatch materials. Immiscible Materials tells us that we need a dedicated flow for each of those material types. Re-using the same train station for dropping off different types causes deadlock, which we could resolve with load shedding—but this is inefficient. Instead, each factory should have a dedicated train station for each type of item it produces, and each type of item it consumes. A motor factory should send its output to a “Motors” station, and might receive inputs at “Motors Stators Drop” and “Motors Rotors Drop” stations. Accompany stations with Station Buffer.

Station Buffer

When freight platforms load or unload cargo, their input and output belts pause. This can cause hiccups in production lines without much slack. To avoid this, feed the input or output of a station directly into a storage container or fluid buffer, then connect that buffer to wherever it needs to go.

Dedicated Trains

It is tempting, for some limited runs, to have a single train on which each car carries a different type of resource. However, this approach runs the risk of mixing materials when you adjust train routes later: one can easily wind up with a freight car full of concrete filling up a platform intended to receive circuit boards. Instead, devote each train to carrying only a single type of material. The exception to this rule is when the train is intended to mix materials, e.g. for Shopping Mall or Recycling Train: there, a single collector train can make many stops.

Recycling Train

Backpressure can backfire: refineries which produce fuel might, for example, stop doing so if they fill up on rubber or plastic. To get rid of this excess material, consider using a Recycling Train, which picks up components from factories which have too many, and makes regular stops at a recycling facility like a Shopping Mall or item sink.

Building Supply

When constructing a factory, you will often need a constant supply of parts: concrete, plates, frames, etc. Rather than return to a Shopping Mall each time, take advantage of Station Per Component to route necessary parts directly to your building site. Set up a dedicated building supply train which picks up the parts you need, and drops them at a temporary train station on-site. Consider Container Chain to store parts, and Recycling Train to discard excess.

A Train For You

Moving between factories, and from factories to far-off locales (e.g. for exploration) is time-consuming on foot, but taking existing trains runs the risk of interfering with their schedules. Instead, dedicate a train (or two) to transporting you. This train should typically have no freight car (so it does not accidentally mix materials). If you have two trains, keep one near you (for easy return), and the other at Home Base, so it’s available if you respawn.

Ground Clearance

Ground Clearance

When laying out tracks, hypertubes, or belts between factories, leave extra ground clearance: it is frustrating to be walking, or driving a truck and have to dismantle a belt to get past. Once away from a factory, raise belts and hypertubes to their maximum level. Train tracks can be elevated at likely grade crossings via foundations or columns.

Track Layout

How does one lay out the tracks between stations?

Triangle Junction

Triangle Junction

A train should be able to route directly from any station to any other, in any orientation: this implies that at any track junction, a train should be able to pick a direct path to any other track. AI limitations mean that certain types of forks (e.g. those which split 2:2 or 1:3) break trains. To avoid this, make every junction of three 1:2 forks, forming a triangle.

Roundabout

Roundabout

Where four tracks meet, offsetting two three-way junctions can do the trick. Where five or more meet, this may be cumbersome. A compact alternative is a roundabout: construct a compact circle of short track segments in the middle of the junction. Then, connect each inbound track to the circle in a Triangle Junction. The circle can also be a turn-around point for trains which are stuck on tracks that cannot, for whatever reason, offer a Triangle Junction.

Station Manifold

Station Manifold

At factories, Station Per Component tells us that we will want many (often three to eight) train stations. Arranging these stations can use up a good deal of space. To lay them out compactly, arrange stations parallel, side-by-side, with just enough space in between freight platforms to load and unload cargo (e.g. via vertical belts). Orient stations facing the same direction for predictability, and to aid in Local Loop. At the cost of later expandability, one can place additional train stations in line, separated by a short distance (e.g. two tiles) of open track.

To feed these stations, run track perpendicular to the stations, across both their entrances and exits. Connect this track to each station via a 1:2 fork which curves 90 degrees to enter (exit) the station. Connect the inbound and outbound ends of this manifold, either via one or two Triangle Junctions, to Train Network: this forms a Local Loop.

s-manifold.jpg

Local Loop

Local Loop

Where a train makes multiple stops at a single factory, it is inefficient to have it leave the factory, find the nearest roundabout (or other station), and turn around, then come back to a different station. Instead, accompany each factory with a Local Loop: a length of track which allows a train to leave the factory’s Station Manifold, and immediately turn around and enter it again. A Local Loop is formed implicitly by using Triangle Junctions; other junction types may need an explicit Local Loop.

Power Grids

With the relationships between factories fixed, we turn our attention to large-scale power generation and distribution.

Main Grid

Independent power grids fail independently, which is normally a good thing in systems design, but a bad idea for Satisfactory: with no centralized monitoring, you may have no way to know a distant grid has failed, and restarting it requires traveling to a pole which is connected to that grid. Instead, keep all of your main production on a single power grid. This improves observability: you know immediately if a fault occurs, and the grid can be restarted from anywhere. This improves efficiency: excess power from any factory can be shared with others.

Use the Train Network to carry power for the Main Grid.

Backup Grid

Backup Grid

When main power fails, you can be left in a catch-22: it takes power to mine coal and process oil into fuel, but you may not have any fuel left. To avoid this problem, create a separate set of factories devoted purely to fuel production, and connect these factories not to the main grid, but to a backup power grid, supplied by more reliable generation infrastructure. The backup grid can be transmitted from site to site using normal power poles. Paint your backup grid in a special color to avoid linking it to the primary grid by accident.

In the early game, use a biomass burner to kickstart coal or fuel production when necessary. In the late game, use geothermal generators, which require no fuel and produce a constant supply of power. This supply is more than adequate to power the entire production line for nuclear fuel rods.

Backup Transit

When main power fails, your transit system (A Train For You) will fail with it. You will likely need to travel between Home Base and your Backup Grid, which could be a far distance. To make this travel easier, establish a dedicated series of hypertubes which connect key Backup Grid sites (e.g. miners, factories), your Main Grid generators, and Home Base. Connect these hypertube entrances only to the Backup Grid, such that even with main power down, you can comfortably travel between home base and the sites you’ll need to get generation going again.

Single Power Link

Single Power Link

While redundancy is good in real power networks, it actually works against you in Satisfactory: when power is low, you will want to selectively power or unpower entire factories, Floors, or Zones, and this is difficult if there are many paths for power to take. Instead, ensure that each logical unit of your factory has exactly one path to the Main Grid. This allows you to incrementally power up a region by disconnecting and reconnecting single power lines.

This implies that power poles should form a tree (rather than a web) whose root is a single train station. Disconnecting that train station should power down the entire factory.

Special Sites

With the overall shape of our factory, transit, and power infrastructure fixed, we consider special sites–those not devoted to factory production, but which participate in the network nonetheless.

Home Base

When a user respawns, they do so with low health and without equipment, and with a need to return, well-equipped, to the point of their death. This process forms the cornerstone of Home Base: a place where spawn, equipment, and transit are close at hand. Colocate these services nearby–or in the same building–to make this process painless. Having these things close together naturally suggests additional services: workbenches, a research station, a truck station, a Shopping Mall, a Recycling Drop.

Site Home Base in a place where it is convenient: towards the middle of the map will reduce transit times. Draw power and materials from Train Network, rather than belt connections: home base produces nothing, and does not require huge volumes of material. Keep it away from large factories, to reduce lag.

s-hub.jpg

A Place to Spawn

The H.U.B is where you respawn: it is easy to place once, then leave it in place as you build outwards. As your factories sprawl, it can become easy to take for granted the long trek from the H.U.B. to wherever you needed to be. Instead, site the H.U.B in a special area of your Home Base, to make respawns comfortable. Place it as near as possible to Shopping Mall, so you can pick up supplies immediately following spawn.

s-transit.jpg

Transit Hub

Transit Hub

There are three primary means of transportation you’ll engage in game: on foot (well, mostly flying; the jetpack is a way of life), by hypertube (both within a building and between sites), and by train. Trucks and belts offer two more paths. You will frequently need to transfer between these transit systems, and from hypertube to hypertube where a junction is present. This is the role of the Transit Hub: a place where transit systems meet.

Situate your Transit Hub in a central location at each site, to minimize walking time: at home base, it should be roughly in the center of the shopping mall. Arrange hypertube entrances as close as possible to facilitate rapid transfers, and orient the entrances in a pattern which suggests their eventual destination. Separate local and remote hypertubes using position, orientation, level, or color, to reduce confusion. Train stations, due to their size and tracks, may need to be on a different floor: use a local hypertube to connect the station directly to your transit hub, so that one can walk immediately from the platform into the hub with as few steps as possible.

Rapid orientation in a Transit Hub reduces the accidental use of incorrect tubes or paths. Use windows, color, or layout to suggest a unique direction immediately upon arrival in the hub.

In outlying factories, a Transit Hub may be as simple as a hypertube entrance which drops one off in a central factory location. Along a hypertube route, use Hypertube Hop to guide the position of entrances.

Hypertube Hop

Hypertube Hop

Where a hypertube route makes a stop–for instance, at a factory or Transit Hub–consider creating a Hypertube Hop. Such a hop allows a rider to exit one tube, then immediately enter the next, without losing velocity. To get off a the local stop, the rider can slow down inside the tube, on approach.

One possible option is to have a cluster of tubes which point straight up, so that riders fly high into the air, and can use air control to select their next destination. Use a U-Jelly pad to cushion falls. This is great fun, but be advised that this transit station will, at some point, kill you in a slightly embarrassing manner.

A safer and more efficient option, for Transit Hubs with one clear path in and out, is to position the two entrances facing each other, perhaps one or two wall tiles apart, such that leaving one tube immediately flings you into the next. This simplifies long-term trips, since no rider control is required, and can build up fantastic speed.

Shopping Mall

Shopping Mall
Shopping Mall

When planning a new construction, heading out for repairs, or respawning, you will typically need to pick up many types of material: parts, tools, etc. Make these things readily available in a Shopping Mall: an area densely packed with storage containers, fed by belts. Draw materials from the Train Network, using a dedicated train which makes stops at a wide variety of station, and feed individual containers using Sushi Belt. Use Load Shedding to discard excess material.

Shopping Malls work well at Home Base, but you might want to build others to shorten travel time when making repeated trips for building supplies. Situate Shopping Malls close to Transit Hub, to facilitate these trips.

One pattern that works nicely is to alternate avenues of belts and walkways, and to have very short belts sticking out, like tongues, from each storage container, so that one can see what is being stored. Arrange containers into groups of logically connected items, like tools, or core building components. Connect these avenues by corridors, so that it is easy to walk from any container to any other. Leave space above the containers: flying can be even faster. Consider accompanying with a Recycling Bin.

Recycling Bin

When a player returns to the Shopping Mall for more items, they may need to discard unnecessary inventory. When a player returns from a resource-gathering or exploratory expedition, they may need to store slugs, flowers, etc. A Recycling Bin serves both purposes by providing a storage container (or containers) which empties itself–ideally, into a Shopping Mall. Once a Shopping Mall is established, adding a Recycling Bin is easy: simply connect the container’s output to the Shopping Mall’s input belt(s), via a merger.

A discard-only version of the Recycling Bin can be had by connecting a container to an Item Sink. This version is useful at construction sites for cleaning up unnecessary bulk materials. The Recycling Bin can also dispatch components to a dedicated train station for transfer to a Shopping Mall or Not a Place of Honor.

Not a Place of Honor

Not a Place of Honor

One waste disposal option is long-term storage. This is especially key for nuclear waste, but can technically store anything, so long as production rates are low enough compared to storage capacity. Nuclear waste is radioactive, so this storage facility should be far away from other people or factories.

Therefore: situate your waste disposal site far away from resource nodes, home basis, transit hubs, or other places people might like to be. Use vertical distance to irradiate less surface area: there are several chasms and cliffs which allow excellent sites. Store items in a Container Chain.

Use the Train Network to send waste to Not a Place of Honor, and local belts to fill the storage containers. Consider leaving an exit belt, possibly disconnected, to aid in transferring materials out of the storage containers at some later time; e.g. if relocation becomes necessary. Use Local Hypertubes to quickly access storage containers for inspection. On-Site PPE aids maintenance.

Space Elevator

The Space Elevator consumes specialized items (e.g. smart plating) which are not generally necessary for other construction. Many of those items are themselves ingredients in more advanced Space Elevator recipes. Factories With Goals and Shoulders of Giants tells us that these recipes should be produced near the space elevator.

A natural choice is to place the space elevator near Home Base, but this is not necessary: trips between the two are generally few and far between. Therefore: situate your Space Elevator wherever it is convenient, drawing materials from Train Network, and producing Space-Elevator-specific components in a local Factory which feeds directly into the Space Elevator.

s-elevator.jpg

Factory Structure

We now turn our attention to the overall structure of a single factory site, which organizes production into expandable stages, arranged in Zones on Floors, connected by linkages.

Stage Cascade

Stage Cascade

Per Factories With Goals, each factory produces one part, or a small number of related parts. However, making that part may require several steps. We call each step a stage, and devote a particular area of the factory to each stage. For instance, a factory which produces encased industrial beams might have an initial stage which produces steel, one which takes that steel and produces beams, one which takes limestone and produces concrete, and a final stage which takes concrete and steel and produces encased beams.

Each stage should be independently expandable, to account for later changes in required production, and linked to later stages via belts (or pipes). Expansion is easiest when a stage is simplest: therefore, each stage should generally consist of only one, or a small number, of machines. The exception is where belts in and out of a stage would be unable to keep up with the required flow of materials—for instance, screws. In this case, it often makes sense for a stage to include two or three machines; say, one which produces screws, and immediately feeds them into an assembler producing plates.

Stages should be arranged in a cascade, such that each stage produces items needed by later stages, connected by belts. Parts should generally flow in one direction, towards the final stage(s). Belts should be as short as possible: place a stage as close as possible to the stages which need its parts, rather than hopping long distances. For the shape of stages, consider Floor or Zone.

Floor

Zone

Factories can be built on dirt, but arranging them quickly becomes cumbersome. Instead, lay down a regular foundation of floor tiles, as thin as possible, so as to leave maximal space between floors. Floors are generally easy to expand: consider devoting each floor to a single Stage, or dividing a floor into a handful of Zones. The purpose of each floor is given by Ground Floor Station and Stage Cascade. See Floor Height for how high to make the floors. Link floors with Building Core.

Zone

Floors may be larger than required for production, either because space is plentiful and building vertically is time-consuming, or because lower floors with lots of machines feed into a much smaller number of machines in later stages. To make efficient use of this space, you may divide each Floor into Zones, separated by Comfortable Margins to allow for easy routing between Zones. Each Zone can be a single stage, or devoted to another purpose, like train stations or Transit Hub. Consider setting aside zones with color, belts, or pathways to clearly establish their boundaries.

s-core.jpg

Building Core

Building Core

Our building is generally comprised of many Floors, or Zones. Parts and people must move efficiently between these Zones. This suggests the need for a place that connects Floors and Zones: we call this place a Building Core. Because Building Cores span the entire factory, and are difficult to retrofit, their scale and placement should be determined early in the layout process. Multiple cores may be sensible for larger factories.

Cores can be vertical, to connect Floors, or horizontal, to connect Zones. A vertical core could be as small as a 1x1 shaft running vertically between floors, but a more typical layout might be a 1x3, 2x3, or 3x3 shaft running the full height of the factory. Cores need not be compact, or at the center: consider Corner Core, or Wall Core.

For rapid transit between floors, site Building Core near a Transit Hub. To move people, place Elevator Banks and Emergency Stairs in Building Core, and set aside places for Maintenance Access: perhaps intertwined with Emergency Stairs. Use the core to centralize (Single Power Link) and hide power distribution, via Power Chase. Route materials from floor to floor using Conveyor Chase.

Basement Miners

Resource nodes and water are on the ground: it is there that we must extract our materials. Site miners, water extractors, and oil extractors directly on the ground, or, optionally, on a Floor just above ground level. Connect these resources to Stage Cascade using belts or pipes, perhaps through Building Core.

s-ground.jpg

Ground Floor Station

Ground Floor Station

Our factory will likely receive and send material via train stations–possibly organized into a Station Manifold. But where should these stations be in the building? Since tracks have a limited slope, it makes sense to place train stations at about the same level as nearby tracks. In most cases, this will be the ground floor. Where nearby tracks are above the ground floor, it can make sense to build train stations on higher floors, and to connect to those tracks via bridges.

Link Ground Floor Station to Stage Cascade via belts, pipes, etc; consider Building Core. Where throughput is critical, accompany the Station with Station Buffers. Since you will often arrive at a factory via this station, place it near Transit Hub or Local Hypertubes.

Build Up

Stage Cascade tells us that our floors will be arranged in a directed acyclic graph. Basement Miners and Ground Floor Station mean that inputs are generally low to the ground. Therefore, arrange subsequent stages on higher floors (or, for broad buildings, Zones leading away from these raw materials). The highest Floors in the factory should produce the final parts in the Stage Cascade. Return these parts to the Ground Floor Station via Building Core.

Arranging Floors in this order means that when we are laying out machines, we can build upwards incrementally, floor by floor, and always have prior stages producing parts. This aids in understanding the flow of materials through the factory, and identifying bottlenecks.

Refineries Down Low

Pumping fluids over long vertical distances is frustrating, and requires lots of fiddling with pumps. To reduce this, situate fluid-processing stages lower in your factory, or constrain them to a single floor.

Factory Shape

With the overall structure of a factory site established, we turn our attention to its concrete form: where it belongs, how high and broad to build, and which way it should face.

Factory Site

Factory Site

Factories Near Raw Materials tells us that our factory should be located near the resource nodes and high-volume materials it needs most. Refineries, in particular, may consume lots of water: consider building adjacent to, or out onto, a lake or sea. However, the scale of Station Manifold and the need for later expansion tells us that factories have a certain minimum size–for instance, 11x11 tiles. Choose a site where this area is readily available.

For later expansion, choose an area such that your factory can grow in one or two directions later. Most factories can grow upwards, but it is also helpful to grow sideways. Consider open fields, buttes, or dunes; cliff edges; or seas: anywhere with a large volume of horizontal space available.

Orientation

Align your foundations such that a flat edge faces the likely direction(s) of expansion. For lakes, align the structure to the shore; for cliffs, align it to the cliff edge. Ground Floor Station will need connections to the train network: consider the approach path for train tracks. If your Ground Floor Station might be expanded later (say, because you anticipate alternate recipes becoming available), orient Station Manifold so that later stations can be added in the direction of factory expansion, or leave extra space.

Scenic View

Satisfactory’s landscape is beautiful, and factories which are connected to that landscape are pleasing to be in. Consider orientations which will allow windows or wall gaps to face a scenic view, such as a waterfall, canyon, or sunrise.

s-station.jpg

Access to Light

For performance reasons, enclosing factories entirely in walls can be necessary. However, factories are easier to build, and more pleasing to be in, when there is light, brought in either via windows or wall gaps. Consider sites and orientations where the path of the sun can bring light into at least some of the factory floor.

s-up.jpg

Monumental Aspect

Monumental Aspect

Buildings are more fun, and generate a sense of place, when they have distinct forms. The scale of Satisfactory buildings, and the rough materials provided, lend themselves well to a sort of monumental form which is visible from a far distance. Consider choosing an overall form which is unique, and connected in some way–complementing, opposing, framing, or focusing–the landscape around the site.

s-cube.jpg

Floor Size

Ground Floor should be large enough to accommodate Ground Floor Station. For Station Manifold, at least 10 tiles are required on one axis: three for each turn into and out of the station, and four for the station itself.

Odd Dimensions

Certain pieces (e.g. walkways) in Satisfactory can only be aligned to the middle of a foundation, not the edge, and placing things exactly in the center is sometimes aesthetically desirable. As a general rule of thumb, prefer an odd number of foundation tiles for your floor dimensions: 9, 11, 15, etc: it ensures that the middle of the building will fall in the middle of a tile.

Floor Height

The height of each Floor is controlled by Stage Cascade: it must be high enough to enclose the buildings required for that Floor’s stages. For refineries, this is eight wall tiles high; for manufacturers, four high, for constructors and assemblers, three. Consider a four-wall minimum: it doesn’t cost much more to build, and affords the flexibility to replace constructors with assemblers later–and one can delete an entire floor to make space for refineries, if need be.

Shorter or taller Floors may be useful for aesthetic reasons: consider Entrance Transition, Transit Hub, Scenic View, and Maintenance Access.

s-core-base.jpg

Filling In The Core

Returning to the nuts and bolts of construction, we focus on the location and construction of the building core (or cores), from which the rest of the factory will grow.

Central Core

Central Core

Building Core is generally full of stuff, which one might want, for aesthetic reasons, to hide behind opaque walls. These walls block views and light, and constrain entrances and exits to the building. Finally, people who use the Building Core for inter-floor transit prefer to minimize their walk time. For these reasons, it often makes sense to situate a core in the middle of a factory floor.

A Central Core blocks the horizontal flow of belts and Pedestrian Paths through the Floor. For this reason, it is generally a good idea to divide a Floor with a Central Core into two or more zones on either side of the core, and to leave extra margins for routing belts and pedestrian paths between them.

Central Cores may complicate later linear expansion: where expansion is likely to be necessary, consider Wall Core.

Wall Core

An alternative to a central core is to convert all (or part) of a wall into a building core–say, a volume one or two tiles deep, spanning the entire width of the factory. The natural direction of expansion is away from this wall, so place Wall Core at an edge of the building where expansion is not possible (e.g. near a tree or facing a cliff) or not desired. With opaque walls, Wall Core blocks Access to Light and Scenic View: choose a view one wants to block (e.g. for performance reasons), or consider Structural Expressionism.

s-wall-core.jpg

Corner Core

Wall Cores need not span the full width of a structure. Instead, it can be helpful to build one or more small cores at the corners of a structure. This limits expansion, so use this pattern when you are confident in the final positions of the corners. Corner Core opens up the bulk of the wall for Access to Light, Scenic View, Train Network, etc.

Core Footprint

Core Footprint

We now turn our attention to how wide the building core should be. A single foundation tile can support one stairwell and as many as nine conveyors lifts, hypertubes, or pipes (or more in a pinch). However, actually cramming all those conveyor lifts into that space can be tricky, and in order to access those pieces later, it’s helpful if they’re all laid out flat, rather than packed side by side. Moreover, some of these structures cannot comfortably be constructed in empty space: they require a wall attachment. Therefore, plan your Building Core such that each vertical (or horizontal) “track” has a single use. This suggests that Building Cores should not be too deep, because additional empty space is essentially wasted: one or two foundation tiles deep, rather than four or five.

Because of the width of pumps, the extra space required to extend conveyor lifts vertically, and the curvature of hypertubes, it is less advisable to place utilities on both sides of a single floor tile. For Wall Core, this is no concern: all access is through the inner wall face; Wall Core should generally be only one or two tiles deep. Where a Central Core is used on two (or all) sides, leave extra space: two or three tiles.

See Power Chase, Elevator Bank, Emergency Stairs, Lift Chase, and Pipe Chase for how to fill in the Building Core.

Power Chase

Each Floor requires power, and Building Core provides a natural place to put it. Per Single Power Link, select one Building Core to carry power, and use wall power poles to extend a single power line between all floors. Use double-sided wall power to connect the Power Chase to the power network on each floor. Keep Power Chase easily visible, so that you can disconnect or re-wire as necessary; don’t cover it up with pipes or lifts.

Elevator Bank

Elevator Bank

People need to move between floors, but stairs are cumbersome in tall buildings. Therefore, connect floors (or zones, for horizontal cores) using an Elevator Bank: a wall which is a part of the building core, with hypertube entrances to travel up or down. Pick a standard for directions (e.g. the up hypertube is always on the right) and stick to it: this aids navigability across many factories.

Use two entrances per wall tile, centered on the two rectangular regions of a wall tile: any closer, and you run the risk of leaving one entrance and being sucked immediately into the next. Power these entrances using Power Chase, from within Building Core.

Integrate Elevator Bank with Transit Hub, to facilitate rapid transfers between various factory floors and inter-factory transit. For buildings with many floors, or where a frequently traveled route (e.g. between Station Manifold and Transit Hub) demands it, build additional, dedicated elevators which skip over intervening floors or zones.

Emergency Stairs

When power fails, you can be left stranded with no way to change floors, short of building an emergency structure. To avoid this problem, place at least one emergency stairwell in a Building Core, with doors at each floor. These doors and stairs can form the basis for Maintenance Access; consider extending foundations or walkways to make it easier to work in the Building Core.

Lift Chase

Lift Chase

To move materials between floors, allocate part (likely, most) of your Building Core to a Lift Chase: a region of the Building Core wall where vertical conveyor lifts can transfer materials up or down. Building Up tells us that this flow will mostly be upwards, except for finished parts flowing down to the Ground Floor Station. Use three-hole conveyor walls to connect conveyor lifts to factory floors. Where one conveyor lift can’t stretch far enough, connect them end-to-end: Core Footprint ensures you will have enough space to do this.

Pipe Chase

Pipes for fluids can be routed from floor to floor in a similar style. Use Pipe Wall Holes to connect pipes from the factory floor to the chase, and wall mounts to align pipes vertically. Three holes per wall, in the same position as Lift Chase, works well. Use pumps, powered by Power Chase, to lift fluids where necessary. Pumps are prone to clipping through the walls: check the alignment in advance, and fix your pipes to the near or far wall, as appropriate, to avoid this.

s-pipe-chase.jpg

Sense of Place

In conjunction with the layout of Building Core, and guided by the general site restrictions (Scenic View, etc.), you may wish to consider some more aesthetic concerns.

s-underwater.jpg

Entrance Transition

When you enter a building, it is pleasant to have some form of Entrance Transition, which makes the transition from outside to inside a distinct place. Christopher Alexander recommends distinguishing an Entrance Transition with changes in level, surface, direction, light, view, or scent. These can be applied to Transit Hubs–often your first point of arrival within a building, as well as ground-floor entrances, roofs, etc.

Train stations are often your first and final stops on a journey: pay attention to the view from the train, and how your train station can generate a sense of place.

s-approach.jpg

Ground Connection

Buildings can float in midair, but it is often more aesthetically pleasing to connect them to the ground via foundation columns, walls continued to the ground, pylons anchoring them to the sides of cliffs, and so on. If the building begins significantly above ground level, extend a Building Core to ground level, with an Emergency Stair and Elevator Bank.

Structural Expressionism

Building Cores need not be hidden. For observability, to bring in Access to Light, or to preserve a Scenic View, you may wish to expose a Building Core, or other functional parts of the building, through the use of windows or gaps in the wall. Consider glass foundations or other unorthodox ways of exposing critical components, while keeping them well-organized.

s-structural.jpg

Element of Surprise

Buildings which are entirely predictable are boring. To create special, delightful places, which are full of contrast, use walls, floors, and terrain to selectively hide views or parts of the factory from view, then make them visible from a limited vantage point. For example, a hypertube could briefly expose the rider to the outside of a structure, or a flash of sunlight through glass. Reward people for climbing a structure by creating a special place at the roof. Route train tracks behind waterfalls. Make these places you will traverse in the course of your work, so that ordinary errands have some moments of delight.

s-surprise.jpg

Floor Logistics

Returning to the nuts and bolts: with the building core established, and initial materials flowing through it, it is time to fill in the factory floor. We begin with the flow of materials from the Building Core to a nearby Zone–later Zones on the same floor will follow the same pattern.

Comfortable Margin

Comfortable Margin

Factories invariably require more belts, and routing them through the middle of production Zones is cumbersome. Leave yourself space at the walls of the building, and between different Zones, for walking and later expansion. This space should be at least one tile, but two is generally better.

Belts In The Margins

To bring materials to a production Zone, and to take away its finished products, you will need belts and pipes. The Comfortable Margin is where this routing happens. Use the margin to route materials from the Building Core to the appropriate production zone. These belts can be free-form, Stacked Belts, or using Splitters at the Corners.

Stacked Belts

Stacked Belts

It is tempting to route several belts side-by-side, but this consumes extra space, makes it difficult to split lines, and links poorly to Belt Manifold. Instead, prefer positioning belts on top of each other, either by using stackable belt supports, or through stacking Splitters at the Corners. This is particularly useful in feeding Manufacturers as a part of Belt Manifold.

In general, try to reserve one level for a particular material, rather than routing different materials side by side. This reduces the need for complex grade crossings.

Splitters at the Corners

Splitters at the Corners

It can be tempting to simply turn a corner with a belt. However, later expansion may require splitting that belt, and placing splitters into densely packed belts can be difficult. It is also more difficult to consistently align belts when placing them free. Instead, consider using splitters (or mergers) as the foundation of your belt network, placing them at each corner or potential future junction. Stack them on top of each other to transfer multiple materials in a compact footprint. Once placed, connecting these splitters with belts is easy.

Pipes Over Belts

Refineries often involve a combination of fluids and belts, but the two do not perform identically. In particular, placing splitters precisely is easier to do on a ground foundation. Therefore, when placing refineries (and in general, to avoid level crossings), situate belts and splitters on the ground, and stack pipes above them.

s-pipe-above.jpg

Pedestrian Paths

Materials are not the only thing which flows through factories: people need to access them too. Leave space in the margins, or create it using walkways, for people to walk. Even if you’re flying most of the time, having designated pedestrian paths helps.

A pedestrian path need not be the ground: it is often convenient to be higher up. Consider the tops of refineries, factories, and storage containers as potential paths and perches for building. Leave vertical space to support this access.

Zone Layout

Stage Cascade gives the overall flow of materials between zones, and tells us what each Zone produces. Now we fill in a Zone by discussing the arrangement of machines and belts within it.

Expansion Axes

Zones should be designed for later expansion. These axes of expansion are governed by the site’s Orientation, and the position of Building Core(s). Therefore, align a zone so that it has room to grow, and orient its Production Arrays with this in mind.

s-array.jpg

Production Array

Production Array

The Production Array is the basic unit of production: a series of machines (e.g. constructors, assemblers) arranged side by side, in a way that can be readily expanded later. In general, align machines in Production Array as close to each other as possible, so as to save space. High-volume parts may require a Production Array with multiple machines feeding each other; when doing this, consider their ratios carefully.

Feed Production Arrays using Belt Manifold or Sushi Belt.

Belt Manifold

Belt Manifold

A Production Array is a sort of surface through which materials flow and are transformed. Materials must flow efficiently across both sides of this surface. Except where belt throughput is insufficient, prefer a manifold: they are compact, easy to lay out, and readily expandable.

A Belt Manifold works by sending materials along a belt (or pipe) in a straight line, along the axis of expansion, and at right angles to the machines in the production array. At each machine, use a splitter to feed that machine’s inputs. Use Splitters at the Corners to make this layout easy, and Stacked Belts to make the manifold compact. Connect each manifold to Belts in the Margins via splitters.

On the output side, place another manifold, this time comprised of mergers, which gathers finished products from each machine in the Production Array.

Belt Manifolds can also be used for trains or storage systems.

Corrugated Manifold

Corrugated Manifold

Where multiple Production Arrays are side-by-side, and belt capacity is sufficient, they can share Production Manifolds. To do this, adjacent Production Arrays need to face in opposite directions. The resulting input and output manifolds alternate in a sort of “crinkled” pattern, hence “corrugated”. Input and output lines need not face opposite directions: they can be laid on top of each other, using Stacked Belts, to one side; this facilitates expansion.

Sushi Belt

Some types of factories require diverse parts, low volumes, or a compact space, and do not care as much about efficiency. For these factories, a Sushi Belt can be a good choice: combining many types of parts on to a single belt, and using Smart Splitters to feed specific parts to factories. A Sushi Belt can be a good choice for manufacturing filters, ammunition, and so on, perhaps drawing on the same input as Shopping Mall. Produced components can be collected via a dedicated Belt Manifold, or returned to the Sushi Belt.

Sushi Belts will deadlock with backpressure. Each splitter should use an overflow setting to allow excess parts to flow along the main belt line, and discard excess components via Load Shedding.

Sushi Belts are inefficient if materials are not well-interleaved. Consider a storage container for each object type, and a Belt Manifold to merge their contents together.

Overflow Chain

Overflow Chain

Sometimes it is important to control item priority. For instance, one might want to feed only excess materials from a Shopping Mall to an Item Sink. One option is programmable or smart splitters with the “overflow” option. Another is an Overflow Chain, which preferentially splits, or combines, belts using only plain splitters or mergers.

For a splitter chain, one constructs n (e.g. three) splitters in a row, and above (or below) them, places n mergers. Each splitter is connected to the merger above it via a pair of conveyor lifts on each side. The final output from the splitter chain becomes the low-priority output, and the output of the mergers is the high-priority output. When both are free, 1/(3^n) of the items flow through the low-priority output, and the remainder through the high-priority output. If the high-priority output stalls, items flow out onto the low-priority output, as overflow.

The inverse of this technique send items into the merger chain, and withdraws them from the final merger: the result is that items are preferentially drawn from the splitter input.

Container Chain

Container Chain

Storage containers are nice, but can be small. To store large volumes of items (e.g. for local construction or This is Not a Place of Honor), place many storage containers side by side, facing opposite directions. Connect each container’s output to the next container’s input. This ensures that items always flow towards the final container.

Using a chain, rather than a manifold, allows for incremental expansion and contraction of the storage chain: one can add new containers to either end, and delete containers from the start of the chain, since they will be empty. It can also be drained from a single point.

Local Power

Local Power

After placing machines, storage, and belts, it is time to attach power lines. Wall power poles are a good choice for routing power along the walls of a factory, but individual machines may require free-standing poles. Place these poles along the Expansion Axis between two Production Arrays, and space the poles so that machines on each side can be powered by a single line of poles. Use tier 2 or 3 power poles to reduce the number of poles required.

Single Power Link tells us that these power lines should be linked to the Power Chase, and from there to the Main Grid, via a single path: avoid creating mesh-like power grids.

s-power.jpg

Refineries

We turn our attention now to refineries, which present special challenges.

Fuck Refineries

Most machines in Satisfactory take n inputs and produce only a single output. This has the pleasant property that no acyclic graph of these machines (so long as Immiscible Materials is followed) can deadlock. This is not true for refineries, which sometimes produce two outputs. When one output fills, the refinery stalls. This can take down an entire production chain.

Adding buffers generally obscures the problem by slowing the response of the system to control inputs, and the added storage space rarely resolves the underlying imbalance. Burning fuel can discard some refinery products, but requires power consumption, which may not be sufficient.

Therefore, find a way to independently consume or discard all double-output refinery products: for instance, feeding a factory which needs only that refinery item (rather than both, which could result in deadlock), by feeding excess into an item sink, or by sending it to a Recycling Train.

Recirculating Refinery

If your refineries have an excess of heavy oil residue, fuel, plastic, and/or rubber, there is a particular, and very strange, solution to the problem. It involves using alternate recipes to build a factory which takes at least two units of plastic as a one-time primer, and after an initial ramp-up period, converts arbitrary volumes of input heavy oil residue, fuel, rubber, and plastic into arbitrary volumes of rubber and plastic. Consuming either rubber or plastic (or any combination thereof) from this factory prevents deadlock. The process is power- and space-intensive, but remarkably material efficient.

A circular refinery

This hinges on two alternate recipes which consume fuel to convert 1 rubber into 2 plastic, and 1 plastic into 2 rubber, and connecting the two together in a loop. As long as some seed plastic (or rubber) is available to kickstart the process, the factory consumes fuel, filling up both loops with rubber and plastic. Either or both loops can be bled off via a splitter, and sent to other factories.

To consume heavy oil residue, we use the Diluted Fuel recipe in a closed loop: a water extractor feeds a water-packaging refinery. The bottled water is combined with heavy oil residue to yield packaged fuel, which is immediately unpackaged and fed into the refinery loop. The empty canisters can be re-used for the next round of water bottling: after an initial ramp-up period where canisters are injected, this factory is self-sustaining.

Finishing Work

With much of the building laid out, we turn to finishing touches: things that fill in gaps, or connect disjoint parts into a whole.

Walls Come Last

Walls fulfill essentially no structural purpose in Satisfactory, and it is entirely legitimate to build factories without walls: they are, after all, easier to expand. However, when expansion goals have been satisfied, to improve performance, or just for looks, it’s nice to finish a building by cladding it in walls. Do this once the basic layout of a floor has been solidified, so that you do not have to undo your work. Place windows at this time, in accordance with Access to Light, Scenic View, Element of Surprise, and so on.

Maintenance Access

Crawlspaces, miners, Building Cores, and other concealed spaces of your factories are easy to wall off and forget–but this complicates repairs and improvements later. Set aside space for maintenance access: doors and stairwells which allow access to these spaces. Jetpacks have limited fuel: in vertical spaces, set ledges, foundations, and walkways so that you have a stable place to perch while working.

s-maintenance.jpg

On-Site PPE

One may arrive at a factory with hazardous conditions, like nuclear radiation, hostile creatures, or gas. If one is not properly equipped, it can be frustrating to return to the nearest Shopping Mall, pick up gear, and return. Instead, consider stocking a local chest with relevant protective equipment, like a hazmat suit and filters. Position this chest outside the hazardous region, and near the Transit Hub or Entrance Transition. Your future self will thank you.

Final Thoughts

Satisfactory is good.

s-sunset.jpg

Don

After playing for 500 hours and finishing my mega factory, this article contains so many golden nuggets I wish I knew at the beginning.

Thanks for sharing!

Ben

Tons of great information in this article. Thank you for taking the time to share it.

Wake
Wake on

Your write-up is awe-inspiring in all possible ways. Thank you for such a thoughtful approach to the whole Satisfactory experience. With more players coming into the game, this should definitely be suggested reading for one looking to refine their skills.

Kareem
Kareem on

This is a fantastic write up. Like building a large map in Satisfactory itself. The number of concepts, their implications, how they interact, and amount of material organized well and clearly explained is excellent work. It goes beyond Satisfactory too in that these are principles one can apply to many areas. Thank you very much.

MurderDeathHug

I’ve been waiting for Satisfactory to come out of early access before I try it, but maybe now is the time

Pete
Pete on

Well written article with many gems of useful information. Nicely done!

James
James on

Been thinking about getting this game but it always looked pretty intimidating. After reading through your article a couple times, I think I will get it after all. I especially love how you made the game look less industrial and spagettified and more aesthetically pleasing. I’m definitely going to have to take that route if and when I plan on putting in a thousand hours into this game.

Lee

This is amazing.

I’m having trouble putting the theory into practice, though. I’m producing everything at one biggish factory. Maybe it’s because of where I’m at in the game: I’m still working on getting all the Tier 4 stuff. Once I have hypertubes, the thought of managing several factories a kilometer away from each other might become less daunting.

Aphyr on

Yeah, prior to hypertubes it can be a bit time-consuming to go back and forth. A couple things can help there. One is running on top of belts between factories–that can be faster than going on foot. Another is not spreading out until lag starts to become noticeable.

Aphyr
Torne
Torne on

This is a fantastic article and you posted it just when I had researched trains (perfect timing) - I’m now working on turning a big central unexpandable mess fed by 1km+ belts into a decentralised train network and trying to incorporate aesthetics :)

The one thing I’m somewhat confused by here is the suggestion of supplying a shopping mall by a train that makes stops at various different stations - what does the schedule for that train end up looking like? Modular frames -> mall -> motors -> mall -> etc? Or something else? I haven’t tried building something like this yet as I’m still in the process of actually setting up the source stations, but it seems like this would have issues with buffer capacities and need a lot of load shedding.

Marc
Marc on

What a fantastic writeup! Thanks so much for posting it.

I’d read A Pattern Language recently after borrowing it from my local library system – I was deep into Cities Skylines for a bit. I borrowed it in early March, and since libraries have been closed where I live since then, I’ve had plenty of time to go over it. I never thought to apply it to Satisfactory, but in retrospect, it’s such a great fit.

In a week (month? year?) full of otherwise depressing news, this blog post has brought me and my sons, who play / watch with me, a lot of joy. Thank you! (Also, thanks for the “Fuck Refineries” pattern title. In addition to providing me a much-needed belly laugh, it validated my feelings about those &%*#ing things.)

Aphyr on

The one thing I’m somewhat confused by here is the suggestion of supplying a shopping mall by a train that makes stops at various different stations - what does the schedule for that train end up looking like?

Ah what a good question! This is something I don’t have a good answer for yet–I was experimenting with various approaches, and they all worked “okay”. As you astutely note, yes, you can overload individual trains by running them to too many stations. In addition, you can overload your shopping malls–you’re limited by the capacity of the sushi belt (or belts–I wound up doing two, which was unfortunately time consuming). As long as materials are refilling “fast enough”, I think the answer is to run just one or two shopping mall trains, and generally to route them like you suggest: frames, mall, motors, mall, and so on. Where production volume is low enough not to overwhelm a single train, you can do several production stops in a row: motors, frames, rubber, mall–but if you notice shortages in your shopping mall, you might have to redesign your schedule. If some items (concrete?) are frequently consumed, you can add dedicated trains for them, or have multiple concrete stops.

I found that these constraints evolved over time, and different approaches made sense at different points in my playthrough, but there wasn’t really a point where things fell apart–they’d just be a little backed up here or there. I hope this works for you too!

Aphyr
Aphyr on

(Also, thanks for the “Fuck Refineries” pattern title. In addition to providing me a much-needed belly laugh, it validated my feelings about those &%*#ing things.)

Oh my goodness, yes, I had so many weird power failures or production shortages which eventually traced back to “some refinery, somewhere, did a bad thing”. It took me a while to realize this was because they’re the only things in the game with two outputs, and that branching pattern actually makes deadlock possible. Recirculating refinery was a game-changer, and if I wind up doing another playthrough I’ll try to develop it as soon as possible.

Aphyr
Marc
Marc on

I found that these constraints evolved over time, and different approaches made sense at different points in my playthrough…

Definitely the hardest lesson for me. I want things to be “done” the first time, but the nature of the game is that as new tools become available, your older work begs for a revamp. But as a player, you might eventually grow tired of reworking, again, your basic iron parts factory. I both like and dislike this pull to “fix” older things – I think if I had unlimited gaming time it would be absorbing and wonderful, but juggling family, work, and COVID means my factory might be less, err, satisfactorily optimized, than I would like.

OPJayhawk
OPJayhawk on

I’m only about 20 hours in and keep feeling like I need to re-design my base. I’ve done it twice already as a result of some lessons learned the hard way. This is great information that can help me plan the right way although much of it tends to focus on stuff that seems a ways off…probably for the 50+ hrs crew.

Any chance you can add more for us newer types or a separate guide? Cover things like where to place power poles on a foundation? How and if to build vertically? Do another hand drawn picture on what a basic 10hr factory might look like. Should there be an order/flow to the factory such as Power->Ore->Smelt->Constructor or would a ring or spiderweb format work better? Dabble with vehicles early on or just build long belts?

Anyway, you have a great writing style and I love the hand-drawn pictures….very illustrative.

Aphyr on

You know, that’s a great idea, but I think I’d probably need to fire up the game again and play to the 10-hour mark to get a good sense of what works to write a proper guide. I can write some really quick takes that might help with some of your questions…

I’m only about 20 hours in and keep feeling like I need to re-design my base.

Unless a resource node is rare and finding another would be time-consuming, I think it’s generally more productive in the early game to build a whole new factory on a new resource node, rather than to rebuild an existing one. You’ll be drawing parts from your early factory for fabrication, and tearing it down to rebuild it is time you could more efficiently spend expanding to new part types. The exceptions, I think, are upgrading belts in place and adding additional machines to a Production Array–those are generally fast and minimally disruptive.

[W]here to place power poles on a foundation?

I don’t worry too much about this–power poles can generally squeeze in anywhere. In the early game your Building Core is probably like… one line of power poles going along the length of a Zone, and a couple horizontal conveyors along with them. After laying out that axis of poles, I plant poles inside arrays wherever is convenient and aesthetically pleasing.

Oh! Before getting wall poles, I do plant my poles exactly on the edge of a building core–that makes it easy to stretch between floors.

How and if to build vertically?

Before hypertubes, I think going more than a few floors up is probably more time than it’s worth, but it’s gonna depend on available real estate–in more constrained areas of the map, you’ll want to build more vertically. The one rule I generally have, and I think this is pretty uncontroversial, is DO use foundations! The sole exception for me is squeezing, like, a few refineries next to an ore node, where I know it’s not going to grow later.

Do another hand drawn picture on what a basic 10hr factory might look like.

I honestly think I’d follow most of the same principles, just at smaller scale. I figured out Production Array and Belt Manifold in my early-2019 playthrough, and as soon as belt capacity allows, I start using that. When you only have tier 1 or 2 belts, tree-style splitters make more sense. Building core can be really informal to start–like I said earlier, just one or two tiles at the edge or middle of a factory platform which leads along the axis of production.

Should there be an order/flow to the factory such as Power->Ore->Smelt->Constructor or would a ring or spiderweb format work better?

I strongly encourage decoupling, even in the early game. The Satisfactory production tree is almost always acyclic, so I don’t think an overarching ring makes sense. Early parts generally only require one or two inputs, which means you can get away without too much web-style crossing of Phase Cascade.

Dabble with vehicles early on or just build long belts?

Having done both, and been very excited about the possibilities of a Huge Truck Network, I think this comes down strongly in favor of long belts. Fixing broken vehicles is just too time-consuming, and it doesn’t buy you the flexibility in routing that I’d hoped for. I’d run long-haul belts everywhere, even at risk of spaghetti, until trains are available, then scrap em in favor of train stations. That’s also when I’d do any major redesigns of existing factories–chances are that when you have trains you’ve also got the tools needed to lay out late-game (or at least, late-game-ready) factories.

Maybe one or two trucks for really distant resources, if you think it’s helpful? I wouldn’t go All In on trucks though.

I hope this helps! And of course–you’re free to play the game however you want. I think Satisfactory is one of those great games where you really can’t fail–even “bad” designs tend to work, just a little more slowly. Happy factory building!

Aphyr
Michael
Michael on

Thank you so much for this write up. I absolutely love the content and have printed it out and it sits on my desk and is rifled through constantly during gameplay.

I especially appreciate the ‘pattern language’ approach you have taken here. Your efforts are very much appreciated.

Skubidus
Skubidus on

I really enjoyed reading through all of this. I love Satisfactory and have played it for quite some time now. I do seem to struggle with coming up with an efficient and manageble way of building a “good” factory, though. This article gave me a lot of very useful informations and tips - thank you for your time and effort!

I do have few things, though, that aren’t clear to me yet:

1) At wich point in the game would you start to spread out your factories and let each one build it’s one (or few) things? The concern I have in mind here is alternate recipes. If I were to go ahead and place my factories (and train network) near the appropriate ore deposits, wouldn’t that inheritently lead to me re-building and maybe even re-locating huge parts of my factory(s)? So I think the question behind this is “would you advise people to try to get all the alternate recipes before starting to worry about spreading out their factories?”.

2) Another big one for me is: do you build your train-network on the ground / terrain of the map or do you use some sort of elevated “sky-highway” above the treeline to bypass most of the natural curvature of the terrain? I myself kind of tend to use these sky-highways at the moment - they are really convenient - but on the other hand VERY time consuming to build.

3) The way I understood the article it said to place factories near ore deposits the new factory would use the most - seems about right so far ;) The question in mind though is, you don’t always use up all the ores mined at that location - how are you going about the excess. Since there are only so many ore nodes of any given type on the map you would have to build some of your factories further away from those nodes since you would want to spread the factories far enough apart to combat lag. This leaves you with having to transport the needed ores / ingots to those further-away-factories. Would you smelt up the ore at the factory closest to the ore node, take what you need at that location and ship the excess ingots over to the next place or split up the ores and ship parts of them over?

One could do it either way I guess but I tend to overthink stuff alot in order to find the “perfect” solution. This is a big issue for me in these kind of games - it makes you sit in the game and just think all the time instead of building stuff ;)

Aphyr on

I think the question behind this is “would you advise people to try to get all the alternate recipes before starting to worry about spreading out their factories?”.

So far I’ve leaned towards distributing as soon as trains are available, and either reworking factories in place (sourcing new parts from the train network if they use lower volumes) or building new factories for alternates (if their recipe differs substantially or requires being near a new ore node). One of the nice things about this decentralized approach is that it doesn’t lock you into tightly-coupled factories, whereas redesigning a tightly integrated factory for alternates can be a real mess.

Another big one for me is: do you build your train-network on the ground / terrain of the map or do you use some sort of elevated “sky-highway” above the treeline to bypass most of the natural curvature of the terrain?

I imagine this makes a lot of sense in the southern+central regions of the map, where forests are dense. My largest playthrough is based up in desert, so there’s loads of space. I try to hug the terrain with my train routes, or build explicit bridges in some spots. Less efficient, but I think it’s more fun to ride the trains that way. :-)

Would you smelt up the ore at the factory closest to the ore node, take what you need at that location and ship the excess ingots over to the next place or split up the ores and ship parts of them over?

This is a good point–I’ve generally only used ~1/3 of available nodes, and I know some playthroughs are about optimizing every single resource node. I don’t know if this approach breaks down in that context!

What I generally try to do is minimize bulk, so yes, I tend to site my smelters/refineries right next to the resource nodes. That way I can transport more resources on fewer trains/belts. I don’t think this is a hard and fast rule though! Sometimes I need juuust a little more coal, and the smelters are already set up, so I’ll route coal over via train.

Aphyr
eleithan
eleithan on

A very nice guide indeed! I have never seen something in depth like this anywhere! I am at a 600 hour second playthrough and wish to comment on certain points you made. I intend this to be helpful criticism and by no means any form of personal attack on you:

  1. I would never mix belts. Just dont do it. If you dont have enough belts, build more.
  2. Always use the highest tier of belts and pipes. Completely negates that type of error. Exception: Loadbalancing.
  3. Belts have the highest throughput of any transportation. A 780 / min miner can fill up train stations with 780 / min, but completely ceases production during train loading times. This amounts to 25 seconds / trainloop or 325 items per loop lost.
  4. Train throughput is solely dependent on time per loop (Outpost -> Base -> Outpost at least). If you let trains circulate between 3 stations, you loose a lot of throughput which you have to account for in throughput calculation.
  5. Dedicated trains prevent unloading in a wrong station, but this can be achieved by other means. You would massively increase the number of trains, which causes a lot of lag. Trains are really heavy on your cpu.
  6. You can prevent unloading mistakes by branching train stations away from the main lines, so trains never accidentally stop or go through a station.
  7. If you have a mixed item train, you should write a register where you note destination, departure, name, item/ min and order. As you use dedicated train stations, this order is always the same as in your train and you wont mix anything. Dont carelessly change the order though.
  8. Item sinks are cheap. Do not ship excess products away, trash them locally, ideally with any smart splitter and overflow setting. Exception: Nuclear waste ofc.
  9. Concerning production array: I think you should mention the core rule: A m5 belt can just transport 780/min. So one belt only ever feeds at maximum [actual belt item input / consumption (in per minute)]. If your consumption never exceeds your production and you never produce more than you can transport off, you can have overflow with 100% efficiency. Thank you for this awesome guide! :D
Aphyr on

I would never mix belts. Just dont do it. If you dont have enough belts, build more.

I very much agree! For disposal and shopping malls though, I’ve found mixed-belts are perfectly appropriate.

Always use the highest tier of belts and pipes. Completely negates that type of error. Exception: Loadbalancing.

Yeah, same here. Once I’ve teched to that level, everything is tier 5 belts.

Belts have the highest throughput of any transportation. A 780 / min miner can fill up train stations with 780 / min, but completely ceases production during train loading times. This amounts to 25 seconds / trainloop or 325 items per loop lost.

This is a good note, and precisely why I suggest routing high-throughput items directly via belts, ideally co-located. There are some cases (say, outlying resource nodes) where I’ve opted to use trains rather than lay belts, but fully recognizing that’s a playtime-vs-throughput tradeoff. It can also be helpful to add buffer storage containers directly off the side of train stations.

Train throughput is solely dependent on time per loop (Outpost -> Base -> Outpost at least). If you let trains circulate between 3 stations, you loose a lot of throughput which you have to account for in throughput calculation.

Yeah. I tend to run lots (several hundred) of dedicated trains. Note also that train throughput is limited by producer/consumer throughput, by the number of trains running the route, and by contention at the train stations themselves. Amdahl’s law!

Dedicated trains prevent unloading in a wrong station, but this can be achieved by other means. You would massively increase the number of trains, which causes a lot of lag. Trains are really heavy on your cpu.

I play on a 48-way Xeon with 128GB of RAM, so I may not have noticed this as much as I should have. In my experience the biggest lag spikes came from large centralized factories, and spreading things out with trains offered much better performance. That might be HW-dependent! Or maybe I’m just not playing at the scale y'all are. :-)

You can prevent unloading mistakes by branching train stations away from the main lines, so trains never accidentally stop or go through a station.

I think you’re describing the pattern I suggested here. In my experience most unloading mistakes were caused by me accidentally messing up train schedules though–I didn’t really have problems with trains running through stations.

If you have a mixed item train, you should write a register where you note destination, departure, name, item/ min and order. As you use dedicated train stations, this order is always the same as in your train and you wont mix anything.

I agree. I still had issues with this approach: a train which is meant to go “load A, unload A, load B, unload B” can wind up unable to fully unload A if the A consumer is stalled factory, take some A to B, and really gum up the works. That pushed me towards single-purpose trains.

Item sinks are cheap. Do not ship excess products away, trash them locally, ideally with any smart splitter and overflow setting. Exception: Nuclear waste ofc.

Ah, I had no end of trouble with this! Initially I did exactly this, but I found out there’s a bug (perhaps fixed now?) with item sinks which causes them to just… stop consuming items until destroyed and rebuilt. My factories were constantly shutting down, and having more item sinks seemed to exacerbate the problem. :-(

Concerning production array: I think you should mention the core rule: A m5 belt can just transport 780/min. So one belt only ever feeds at maximum [actual belt item input / consumption (in per minute)]. If your consumption never exceeds your production and you never produce more than you can transport off, you can have overflow with 100% efficiency.

Excellent point! Yes, keeping machines input queues saturated is generally, I think, the right approach.

Thank you for this awesome guide! :D

Thanks for your additions!

Aphyr
Roger Wicki
Roger Wicki on

Man i go to say, I find it fascinating how much work you’ve put into this. This is awesome! I am basically using exactly your approach, but i take it a bit more to the extreme where one building only does one step in a production. A train network sorts the rest.

Anybody proposing a different scheme of planning for expandability as “more efficient” is just wrong.

Alex
Alex on

This write-up is amazing. I would love if it were a YouTube series, where each episode goes in depth on each topic. I come back to this often. Thanks for your hard work.

MetalKid
MetalKid on

“Belts have the highest throughput of any transportation. A 780 / min miner can fill up train stations with 780 / min, but completely ceases production during train loading times. This amounts to 25 seconds / trainloop or 325 items per loop lost.”

This is why you put one 780 line into Industrial Storage and then connect two outputs to the train station from that one container. That way, the miner keeps going and doesn’t stop. Once the train stops loading, you push the backlog into the train station. Trains are definitely the way to go if you want to really connect everything. Then once your station gets almost full, you plop down another train and send it on its way until you have enough trains transferring all the materials so the station never gets full.

Gene
Gene on

This is one of the finest pieces of work on The Internet.

Lukas
Lukas on

I don’t understand how you build a mall that draws materials from trains with load shedding. If you have a train that stops at e.g. a Heavy frame factory, collect every frame available, bring them to the mall and then destroys everything which overflows, how will your other factories that need heavy frames ever receive one? They will be all collected by your mall train..

Aphyr on

If you have a train that stops at e.g. a Heavy frame factory, collect every frame available, bring them to the mall and then destroys everything which overflows, how will your other factories that need heavy frames ever receive one? They will be all collected by your mall train.

The exact solution here varies depending on current production rates and what pipelines are saturated, but I’d suggest either…

  1. Have multiple trains picking up heavy frames: you’ll throw away at most 1/n of production capacity, but this fair-queuing approach ensures no consumer starves.

  2. Have a train take heavy frames to one (or more!) heavy frame consumers and finally make a stop at the mall. This gives consumers priority, based on delivery order. Your mall might go empty, though!

  3. Keep trains full enough that they simply can’t pick up that many heavy frames. One way to do this is to have a collector train make multiple pickup stops in a sequence that results in somewhat, but not completely, full trains at each pickup. This is fragile and can lead to starvation. A better approach, IMO, is to rate-limit the mall itself–for instance, by using a single mall train station which can only offload, say, 1 or 2 belts at a time. The mall-bound trains act as backpressure: the heavy frames -> mall train is 90% full most of the time, so it simply won’t pick up that much.

Aphyr
Robbie Smith
Robbie Smith on

“draw low-volume parts” Search above for the context if you need it. I think this is one of my problem areas is having a mutlistorage system for the same component and then being able to pull off from that system in a balanced way. Though I think the game isn’t necessarily built for that.

I’ve tried using the double stacked storage containers and daisy chaining them together but everything buckles up at the front, I may have (n+1) * m many inputs but I’ll only ever have 2 outputs and even that has a max output limit of two Mk 5 belts (780*2) 1560 items per minute.

If anyone has solved this problem I’d like to see screenshots of it.

Shaul Gil De La Rosa
Shaul Gil De La Rosa on

First and foremost thank you for sparing the time to write this, I have re-read this at least 6 times between the time that I found it (mid-October 2020 ) and now, this is a long-overdue comment as a token of appreciation of your work, you have inspired many of my builds and have fixed many of my in-game Issues ( the operational ones), perhaps even saving a lot of TIME of my life and brainpower on my part reaching the solutions you have explained here. Thats all I wanted you know, my simple but most honest Thank you.

anonymous on

First and foremost thank you for sparing the time to write this

Brandon Vu
Brandon Vu on

I just got into this game and was looking for a good guide on how to plan everything (since rebuilding something just twice made me so frustrated lol) while keeping in mind expandability, and I randomly found this post through Google, and I must say I was NOT expecting something this well written to come out of a video game. Reading through it gave me very much CS textbook and tbh I was living for it werk queen

Joe Capewell
Joe Capewell on

So helpful, thanks so much man

Noel
Noel on

I’d love to see a followup about train track designs because Update 5 is soon going to make trains have collisions. My previous train network, using the patterns here, is soon not going to work anymore because of this!

Aphyr on

Oh jeez, yeah, collision is gonna make all of this so much more complex. I’ve got a fair bit of experience with Factorio’s train blocks/signals but I imagine there’s going to be all kinds of tradeoffs around doing material-and-time-efficient one way long-distance tracks vs laying doubles everywhere, switching junctions, etc. Gonna have to play it when it comes out and I get a few free weeks. :-)

Aphyr
Navin
Navin on

after over 500 hours in this game, this article still provides me with great tips and ideas to follow!… we should just copy this over into a Steam forum and make it a sticky, .. its that good!

Mike
Mike on

Month after month I keep coming back to this article, thank you so much!

Injured Sushi
Injured Sushi on

Hopefully your still here after a couple years, How do you feel about a fetch system of trains for factorys. The way im imagining it working is each factory would have a train that would go out and fetch the materials needed for that factory. This has some problems that I think could be worked out if i think about it more but the basic problem is that it each train will be a train that has multiple cars for filling. This means when it stops to pick something up it needs a specific car to be loaded. There is a few ways to do this, I could have seperate stations for each individual train so that the collection spot for a car is in the right place (imagine train cars represented with binary with 1 being needed filling, I need seperate stations for a train like 100 compared to 001 or 010) or I could do something like standardized trains so all trains that need say stators have the stator car in the second position (010) and so multiple trains run through the same station but then if a train only needs say motors and the motor standard is 00001 then it needs 4 empty useless cars that it needs to drag along which I dont know how effects the speed or efficianncy. Unless im being dumb and stations can be set to load individual trains differently, in which I would need all positions to be available to give and have which ones set for specific trains which would be very simple. Anyways using this method would only need two stations per factory, one for multiple trains to take from, and one to recive materials from only one train. There would also be a seperate train and station to take overflow to the shopping mall. This is more simple than having trains delivering a specific part beacuse I wouldnt have to worry about how to distribute among factorys that need it and i would only have to worry about having enough for each train to take what they need. Thoughts? Also I dont know how i should set up my rail system. I dont really undertand pass signals and that stuff and it seems like it would slow down the trains(no?). I was thinkinng of having basically a circular system where trains can only go one way so they wouldnt have to go past eachother and building new parts to the track to make efficient skips on the circle to where a specific train needs to go when I build it. So basically individual tracks for each train that connect together when they can for efficiancy in a way in which passing or any complications would not happen. Thoughts on this? so far ive only used trains from one point to another for raw materials for a centralized huge factory that makes everything but now im trying to de centralize and brainstorm efficient ways to make a train system work. Thanks (p.s. This is the best thing ive ever seen written about this game good job for writing it all down in such a great way)

Aphyr on

How do you feel about a fetch system of trains for factorys

You raise an interesting question! I imagine, just as you’ve suggested, that it’d depend on the supply graph and how you’d dispatch materials specifically to train car 1, train car 2, etc.

I dont really undertand pass signals

Ah, I’m afraid it’s been too long since I’ve played–I don’t have great advice for you there.

Aphyr
Danie
Danie on

Wow. I just wanted to say thank you for posting this content. I stand in awe and salute you, kind sir.

Post a Comment

Comments are moderated. Links have nofollow. Seriously, spammers, give it a rest.

Please avoid writing anything here unless you're a computer. This is also a trap:

Supports Github-flavored Markdown, including [links](http://foo.com/), *emphasis*, _underline_, `code`, and > blockquotes. Use ```clj on its own line to start an (e.g.) Clojure code block, and ``` to end the block.