Sectors
The planet Nilara is a map of hexagonal zones with their own biomes. Claim sectors, each with a machine capacity, storage limits and its own resources, and link them with pipelines and hypertubes.
Program your factory in a Python-like language.
An automation game where every machine runs a program you write. Drill, smelt, assemble and trade across the hex sectors of the planet Nilara — then make it all run by itself.
Best on a computer with a keyboard.
In Factorinc you do not drag conveyor belts: you write code. Each machine — smelter, drill, crusher, solar panel, shop — exposes its state and its actions, and runs a small program in Pyrite, a subset of Python.
The built-in editor highlights your code, completes machine methods and reports mistakes before they run. Programs react to the world: the hour of the day, the stock of a sector, the temperature of a furnace, the price of iron.
Start with a few lines that keep a furnace fed, and end with a self-balancing economy.
The planet Nilara is a map of hexagonal zones with their own biomes. Claim sectors, each with a machine capacity, storage limits and its own resources, and link them with pipelines and hypertubes.
Spend credits on a technology tree: Starter Pack, Drilling & Extraction, Assembling, Solar Power. Each node unlocks new machines or new sector types for dedicated factory zones.
Coal, wood, ores, ingots and plates are traded at prices that drift over time within bounds. Sell when the price is high, buy what you lack, and let your shop programs follow the market.
def on_init(self, world):
pass
def on_run_start(self, world):
if self.sector.energy > self.sector.limits.energy - 50:
if self.active == "active":
self.set_active("inactive")
h = self.sector.planet.time.hour
if h < 8 or h >= 20:
if self.tilt != -90:
self.set_tilt(-90)
if self.active == "active":
self.set_active("inactive")
if self.wear > 20:
self.clean()
else:
if self.active == "inactive":
self.set_active("active")
nt = self.sector.planet.time.sun_angle - 90
if self.tilt <= nt - 10:
log.info(f"Setting tilt to {nt}")
self.set_tilt(nt)Screenshots are coming soon. Meanwhile, the quickest way to see the game is to play it in your browser.
No. Programs start with a few lines and the editor completes machine methods for you. If you know Python, you will feel at home: Pyrite uses the same syntax for functions, conditions, loops, lists and dicts.
Yes, the browser version and the Linux and Windows builds are free to play during development.
In the browser, saves are stored locally in your browser for this site only (nothing is sent to a server). Clearing site data deletes them: use Export save in the System menu to keep a copy. The desktop builds save in your user data folder.
The game is designed for a computer with a keyboard and a mouse: writing programs on a touch screen is not practical. It may run on a tablet with a keyboard.
Recent desktop versions of Chrome, Edge, Firefox and Safari, with WebGL2 and WebAssembly enabled. The game downloads about 3 MB when you press Play.
Subscribe to the newsletter below: you will receive an email when a new version is out. You can unsubscribe in one click from any email.
One email when a new version is out, nothing else.
You will receive a confirmation email first.