Skip to content

Instantly share code, notes, and snippets.

@cellularmitosis
Last active September 13, 2025 21:38
Show Gist options
  • Save cellularmitosis/119954955e81bcf84b887725de87f981 to your computer and use it in GitHub Desktop.
Save cellularmitosis/119954955e81bcf84b887725de87f981 to your computer and use it in GitHub Desktop.
Some inexpensive Factorio ship designs

Inexpensive Factorio ship and how to design them

Here's an overview of my Factorio ship designs which can be built inexpensively.

See also the Design topics section below.

These ships are designed for use within the first four planets.

⭐️ Recommended ships:

  • The Hornet (the cheapest useful ship)
  • The Tanto (a fast, cheap solar ship)
  • The Crockett (the cheapest useful nulear ship)
  • The Wakizashi (a fast, cheap nuclear ship)
  • The Aquiller (an Aquilo-capable ship)
Cheap Fast
Solar Hornet Tanto
Nuclear Crockett Wakizashi

Solar, Nauvis-tech, non-quality ships

Single-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Aphid 4 Launches 1 1.5 hours
(non-loiter)
The Gnat 4 Launches 1 65 minutes
(non-loiter)

2-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Flea 5 Launches 2 27.5 minutes
(non-loiter)

44 minutes
(loiter)
The Mosquito 5 Launches 2 TODO

3-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Tick 6 Launches 3 20 minutes
(loiter)

4-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Wasp 6 Launches 4 TODO
The Bladder 7 Launches 4 TODO
The Foam Hand 7 Launches 4 TODO

5-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Hornet 7 launches 5 TODO
The Stomach 8 launches 5 TODO

6-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Mini Falcon 9 launches 6 TODO
The Revolver 12 launches 6 TODO

7-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Tailfin 10 launches 7 TODO

8-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Space Needle 20 launches 8 TODO

10-furnace ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Tanto (v2--) 13 launches 10 TODO

Nuclear, Nauvis-tech, non-quality ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Crockett 9 launches 6.4 equiv. TODO
The Photonuke 11 launches 6.4 equiv. TODO
The Swordfish 12 launches 9.6 equiv. TODO
The Wakizashi 15 launches 13 equiv. TODO

Aquilo-capable, non-quality ships

Image Name Cost Furnaces Nauvis/Fulgora
Lap time
The Aquiller 21 launches 9 equiv. TODO

Orbital Stations

Image Name Cost Purpose
Gleba Station 20 launches Rockets + Ammo

Design topics

Table of contents:

Pump-based fuel metering

Fuel metering can be used to limit top speed and improve fuel efficiency.

This is often required, as unlimited multi-engine speeds can cause the turrets to be overwhelmed and running engines at 50% efficiency can result in ice shortages.

Note: I use the word "fuel" below, but you can instead pump-control the oxidizer (as shown in the screenshots).

The decider combinator clock solution

A decider combinator "clock" can be used to pulse-width modulate (PWM) the fuel pump.

It offers a lot of flexibility.

Wire it up like so:

Screenshot 2025-09-11 at 7 01 33 PM

Constant-efficiency control

Here is a basic "clock":

Screenshot 2025-09-11 at 8 07 26 PM

It counts up (from zero) and wraps at 14, creating a period of 15 ticks:

clock

Configure the pump to "Enable when C = 1":

Screenshot 2025-09-11 at 7 45 37 PM

With a full tank attached, a pump will move 20 units of fuel per tick.

With 60 game ticks per second, our period-15 clock operates 4 ticks per second, metering a flow rate of 80 units of fuel per second.

This implements constant-efficiency control:

ce

This gives the ship in question (single-thruster, 16-tile-wide) an "uphill/downhill" speed variation of 117/137kps:

Screenshot 2025-09-11 at 8 38 35 PM

ce-speed

Increasing the clock "wrap" value (from 14) would decrease fuel flow (and speed), and increase efficiency, while using a smaller value would increase fuel flow (and speed), and decrease efficiency.

Note that increasing fuel flow beyond the max input rate of the thrusters has no effect. In this example, a single thruster can consume a max of 120 fuel per second, which corresponds to a clock period of 60 / (120 / 20) = 10, i.e. a "wrap value" of 9.

The above formula is <period> = <ticks per second> / (<max thruster rate> / <fuel per tick>), then subtract 1 to convert the period into the "wrap value".

I took some measurements of speed and efficiency for some select flow rate values:

Screenshot 2025-09-11 at 11 12 45 PM Screenshot 2025-09-11 at 11 20 15 PM

Constant-speed control

We can control speed by adding an "AND" condition to our combinator:

cv-speed

The clock only runs when speed is below the limit.

Note that we need to choose a wrap value which can at least reach the (uphill) speed we want.

Here, I've chosen 13, which from the table above can achieve an uphill speed of 120kps, which gives the control loop a bit of (needed) head room.

We also need to connect a wire from the cargo hub to the combinator's input, and configure the hub to enable "Read speed":

Screenshot 2025-09-11 at 11 54 22 PM

Avoiding the startup surge

If we continue to pump fuel while the ship is stopped, it will saturate the thrusters.

When the ship subsequently departs, it will experience a burst of high, unregulated speed as the thrusters empty to the control loop's set-point.

This burst of speed can cause the turrets to get overwhelmed, and is also very inefficient.

We can avoid this burst of speed by adding AND conditions to check if we are stopped at any planet:

Screenshot 2025-09-11 at 11 58 11 PM

The clock only runs when we are not stopped at a planet.

Again, we also need to ensure a wire is run from the combinator input to the cargo hub, and configure the hub to enable "Read moving from" and "Read moving to":

Screenshot 2025-09-11 at 11 58 00 PM

However, note that this creates a deadlock issue if the thruster ever empties completely:

  • it needs thrust to beat the "!= 3" condition
  • but the "!= 3" condition must change before it can produce any thrust!

The empty thruster happens in two cases:

  • the ship was just constructed and this is its maiden voyage
  • the ship exhausted its supply of fuel while en route

The first case leaves it stuck at Nauvis and the second case leaves it drifting in space.

In both cases, the deadlock can be broken by very briefly disabling the pump's "Enable" condition.

The second case can be solved permanently by... (continue to the next section)

Minimum fuel / oxidizer value conditions

If fuel consumption presistently exceeds fuel production, continuing to run the thrusters at a low efficiency setting can be counterproductive.

If we add minimum fuel and oxidizer conditions, when tank values get critically low the ship will effectively fall back to operating at the rate of fuel production.

Screenshot 2025-09-11 at 11 42 34 PM

The clock only runs when fuel and oxidizer are above 1k.

This also prevents the thrusters from emptying completely during a trip, which eliminates the second case of the stopped-ship deadlock issue described above.

Avoiding catastrophic ship loss due to low ammo

If the ship runs out of ammo while at speed, we're cooked.

We can add an AND condition to compare velocity and ammo:

Screenshot 2025-09-12 at 12 16 48 AM

The clock only runs when speed is less than ammo count.

Note that you'll need to set a higher-than-usual minimum ammo condition in the schedule to prevent the ship from slowing down near the end of each hop:

Screenshot 2025-09-12 at 12 19 50 AM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment