Начните вводить название — например, MoreHead, Sodium или PEAK

fCPU — иконка
Обложка FactorioМод для Factorio

fCPU

от extermeon

Factorio Customizable Processing Unit. Allow to write any logic on low level machine code. The fCPU acts like a programmable microcontroller with a vector coprocessor that supports many useful instructions.

  • Обычный
  • 13,6 тыс. скачиваний
  • Версия 0.4.65
  • Обновлён 10 января 2026
  • Логические сети
  • Логистическая сеть

О моде fCPU

fCPU — мод для Factorio (Факторио) от автора extermeon. Factorio Customizable Processing Unit. Allow to write any logic on low level machine code. The fCPU acts like a programmable microcontroller with a vector coprocessor that supports many useful instructions.

Его скачали 13,6 тыс. раз: это 151-е место среди модов Factorio в нашем каталоге, редкость — «обычный» (нижняя половина по скачиваниям). Мод обновлялся в течение года, актуальная версия — 0.4.65.

Дополнительных модов для работы не требует.

Скриншоты

8 шт · нажмите, чтобы открыть

Полное описание fCPU

Текст автора на языке оригинала

Specs

  • supports blueprints
  • supports copy & paste
  • supports multiplayer
  • supports quality
  • supports Informatron and Booktorio in-game wiki
  • in-game debugger with breakpoints
  • 256 instructions for whole program
  • 64 general purpose registers
  • 4096 LIFO stack for subprogram calls and local variables
  • 4 memory channels for vector processing
  • integrated access to the logistic network
  • 50+ opcodes
  • rich math instructions, trigonometry, rounding
  • SIMD instructions, min, max, filter, comparison, etc...
  • two input wires (Red, Green)
  • two output wires (Red, Green) have same output signals and values
  • parallel output, allows output multiple signals simultaneously
  • could be controlled through special input signals (interruptions)
  • one tick = one instruction (except for SIMD ones)
  • made for geeks

Description

fCPU is a combinator that includes:

  • program text
  • a set of registers (for storing signals or\and numbers)
  • couple of memory channels (for storing not zero signals and numbers)
  • processor (command processor and vector coprocessor)

Program

Programs for fCPU are entered in plain text in simplified assembly language (this guide is enough for a quick study) and consists of lines. Each line represents one instruction. An instruction consists of mnemonics and operands. For example: mov out1 123[item=copper-ore], here mov is a mnemonic, out1 is the first operand, 123[item=copper-ore] is the second operand. This instruction tells the processor to send signal [item=copper-ore] with number 123 on to wires connected to the output.

Mnemonics are abbreviated names of operations that the processor understands and knows how to execute. Operands are arguments to operations. They are used to indicate the values ​​on which an operation will be performed.

The following can be used as operands:

  • Signal: each signal consists of a type and a value (123[item=copper-ore])

123 - signal value represented by number [item=copper-ore] - type can be represented by pictogram or text

  • Register: this is a special cell that store the transmitted signal indefinitely (reg1, r2, ...)
  • Local: this is a special local cell that store the transmitted signal inside procedure call (var1, v2, ...)
  • Memory channel: one memory channel consists of multiple cells (array) that store the signal indefinitely (mem1, m2, ...)
  • LogNet channel: receives content of a logistic network this fCPU is placed in (lgn[1], lgn@2, logi[34], ...)
  • Input wire: you can receive signals on wires connected to a combinator's input (red, green, red1, green@3, ...)
  • Output wire: sets the values ​​at the output of a combinator (out1, out2, ..., out256)
  • Address: instruction address (line number 34)
  • Label in the code: written in text with a colon in front (:label, :anyname, ...)

The processor executes instructions from a written program in turn, line by line.

Registers

There are 8 generic purpose read/write registers, named reg1, ... reg8 or alias r1, ... r8. Each register store signal type and numeric value (floating point numbers are supported). For example mov reg2 10[item=iron-plate], this instruction assigns to reg2 value of 10 and type of \[item=iron-plate].

Besides general purpose registers there are some read only registers:

  • ipt: current instruction line numer
  • clk: clock, value increases every tick
  • cnr, cng: signals number on red cnr or green cng input wire
  • cnl: count of a various items in lognet, not a sum of its values
  • cnm1, ..., cnm4: signals number in memory
  • sp, bp: Stack Pointer, Base Pointer

Output registers (write only):

  • out1, ..., out256: output registers (only integer values with signal id, all untyped or zero-valued signals will be deleted)

Stack

The stack grows downwards in memory (from higher addresses to lower addresses). If you want to know how much space left, use sp register (mov r1 sp).

  • Type: LIFO (Last In, First Out)
  • Size: 4096

Use push and pop mnemonics to write and read from stack. push r1 r2 r3 shorthand for

push r1
push r2
push r3

Procedures

Procedure support through the call, ret, enter, and leave mnemonics, with semantics closely resembling x86. bp stores the address of the beginning of the current function's stack frame, enabling access to local variables.

call saves the return address by pushing it onto the stack, then transfers control to the target label or address. This allows nested and recursive procedure calls. Same as:

  push ipt
  jmp addr offset

ret completes a procedure by popping the return address from the stack and resuming execution at that location. Same as:

  pop 
  jmp 

enter initializes a new stack frame for a procedure. It pushes the current base pointer onto the stack and sets a new base pointer, optionally reserving space for local variables. Same as:

  push bp        ; save previous base pointer `bp`
  mov  bp, sp    ; set new stack frame base `sp`
  sub  sp, size  ; allocate space for local variables

leave reverses the effect of enter by restoring the previous base pointer and adjusting the stack pointer, effectively destroying the current stack frame before returning. Same as:

  mov  sp, bp    ; discard local variables
  pop  bp        ; restore previous base pointer `bp`

Stack diagram after some procedure calls.

4096
| ...         |
| older  ipt  | `call :fn1`
|             | `enter 3`
| old    bp   |
|        var1 | <-- old bp - 1
| ...         |
|        var3 | <-- old bp - 3
| ...         |
| old    ipt  | `

Описание длинное — здесь его начало. Читать целиком на странице автора

Как установить fCPU

Файл скачивается с официального сервера Factorio Mod Portal, без перезаливов и сторонних установщиков

Подробная инструкция для Factorio
  1. Запустите Factorio и откройте в главном меню «Моды».
  2. Перейдите на вкладку «Установить» и найдите «fCPU» поиском (название — как на странице мода у нас).
  3. Нажмите «Установить» — игра скачает мод и обязательные зависимости.
  4. Нажмите «Подтвердить»: игра перезапустится с новыми модами. Включать и выключать моды можно на вкладке «Установленные».
  5. В мультиплеере набор модов подстраивается сам: при подключении к серверу игра предложит скачать те же моды.
Вы автор мода? Поставьте ссылку на русское описание

Вставьте значок в описание на Factorio Mod Portal, в README или в Discord — русскоязычные игроки сразу попадут на страницу с переводом и инструкцией.

Описание на русском — Модка
Markdown[![Описание на русском — Модка](https://modka.app/badge.png)](https://modka.app/factorio/fcpu/)
HTML<a href="https://modka.app/factorio/fcpu/"><img src="https://modka.app/badge.png" alt="Описание на русском — Модка" height="44"></a>
Steam (BBCode)[url=https://modka.app/factorio/fcpu/]Описание на русском — Модка[/url]

Частые вопросы о fCPU

Как установить fCPU?

Запустите Factorio и откройте в главном меню «Моды». Перейдите на вкладку «Установить» и найдите «fCPU» поиском (название — как на странице мода у нас). Нажмите «Установить» — игра скачает мод и обязательные зависимости. Нажмите «Подтвердить»: игра перезапустится с новыми модами. Включать и выключать моды можно на вкладке «Установленные». В мультиплеере набор модов подстраивается сам: при подключении к серверу игра предложит скачать те же моды.

Безопасен ли fCPU?

Файл скачивается с официального сервера Factorio Mod Portal, куда его загрузил extermeon. Мы не перезаливаем и не изменяем моды.

Когда fCPU обновлялся последний раз?

10 января 2026, актуальная версия — 0.4.65. Дата берётся с официальной страницы мода при каждом обновлении каталога.

Похожие моды

Все моды на Factorio
Updated Construction Drones — иконка

Updated Construction Drones

Adds ground based construction robots. A repackage of roy192's fork of the original mod by Klonan. WARNING: Please note that 2.0 support is experimental, use at your own risk!

Эпический52 тыс.Логистическая сеть

Ballistic Missile — иконка

Ballistic Missile

A new missile silo for tactical strikes against the biters. The missile payload bay can be filled with ammo and capsules of your choice, so you can decide if you want a single nuclear warhead, a cluster napalm shell or something completely different.

Эпический39,2 тыс.Логические сети

Inventory Sensor — иконка

Inventory Sensor

Adds a combinator that reads inventories, fuel and equipment grid of locomotives, wagons, cars, furnaces, assemblers, roboports, rocket silos and reactors.

Эпический36,5 тыс.Логические сети

Better Roboport — иконка

Better Roboport

No more lazy robots. 4x charging ports, 20x charge speed, 5x energy buffer.

Редкий23,2 тыс.Логистическая сеть

Transport Drones — иконка

Transport Drones

Adds transport drones and transport depots

Редкий15,1 тыс.Транспорт

Automatic Logistic Chests — иконка

Automatic Logistic Chests

Automatically configures item requests and inserter conditions. Supports all logistic chests: passive provider, active provider, storage, requester, and buffer.

Обычный11 тыс.Утилиты