Super Factory Manager

Super Factory Manager, or SFM, is an automation mod for Forge and NeoForge that hands your entire base over to a single programmable block. Rather than snaking pipes and filters across a build, you write short programs on a Program Disk and let one Factory Manager carry them out on a timer or a redstone pulse. Its scripting language, SFML, reads almost like plain English, so an input and output line is enough to start moving items, fluids, and Forge Energy. Powerful filtering, retain rules, if-checks, and round robin routing let you feed even the fussiest crafting machines, and a Label Gun scales any setup up in seconds. SFM also ships a standalone Printing Press and Experience system for copying books, maps, and disks, and for stripping enchantments without spending experience.

By Minecraft Guides Updated 17 min read Developer: TeamDman Forge, NeoForge

Super Factory Manager, usually shortened to SFM, is a Minecraft automation mod where one block runs your whole base. You connect your Chests, machines and tanks to a Factory Manager with Inventory Cables, then write a short program that tells it what to move and where it should go.

A Factory Manager connected by Inventory Cable to four Chests
A Factory Manager wired to Chests

The programs are written in a language called SFML, which reads a lot like plain English, so a two line program is enough to empty one Chest into another. There’s no pipes to route and no filters to set up block by block, which is why SFM ends up in so many tech modpacks once people get used to it.

This guide covers everything you need to get going, from crafting the Factory Manager and labeling your inventories, to writing programs with filters, fluids, energy and IF statements. There’s also a section of example programs you can copy straight into a disk, and a look at the extra blocks like the Printing Press and Water Tank.

Getting Started with Super Factory Manager

To start using Super Factory Manager you’ll need four things, which are a Factory Manager, some Inventory Cables, a Program Disk and a Label Gun. The Factory Manager is the block that runs the program, the Program Disk is where the program is saved, and the Label Gun is how you tell the program which inventory is which.

The Factory Manager is crafted with a Chest in each corner, an Inventory Cable on each side and a Redstone Repeater in the middle. It’s cheap enough that you can have several of them around your base, and each one runs its own disk, so it’s normal to have one manager for smelting and another one for your storage.

Factory Manager
Chest
Inventory Cable
Chest
Inventory Cable
Redstone Repeater
Inventory Cable
Chest
Inventory Cable
Chest
Crafting Table
→
Factory Manager

Inventory Cables are made from Iron Bars, a Chest, Light Weighted Pressure Plates and Black Dye, and one craft gives you 16 of them. The cables don’t move anything on their own, they just connect every block that touches them to the Factory Manager, so a cable only needs to touch the side of an inventory for it to count.

Inventory Cable
Black Dye
Light Weighted Pressure Plate
Black Dye
Iron Bars
Chest
Iron Bars
Black Dye
Light Weighted Pressure Plate
Black Dye
Crafting Table
→
Inventory Cable 16

The Program Disk takes two Paper, a Block of Redstone, a Redstone Repeater, two Redstone and three dyes, one each of Red, Green and Blue. You only need one disk per manager, since a single disk can hold a lot of separate triggers, and you can always copy a finished disk later on with the Printing Press rather than typing it all out again.

Factory Manager Program Disk
Paper
Green Dye
Paper
Red Dye
Block of Redstone
Blue Dye
Redstone Dust
Redstone Repeater
Redstone Dust
Crafting Table
→
Factory Manager Program Disk

Once you’ve got everything, place the Factory Manager, run Inventory Cables from it to every Chest and machine you want to use, and put the Program Disk into the manager. The manager doesn’t need power of any kind, and long runs of cable are fine as long as the chunks stay loaded, so the manager doesn’t have to sit right next to your machines.

Labeling Inventories with the Label Gun

Super Factory Manager programs never use coordinates, instead every inventory you want to use gets a label, like furnace or storage. The Label Gun is the tool that hands out these labels, and it’s the part of the mod that confuses new players the most, so it’s worth getting it right before you write any code.

A player statue holding up the Label Gun
The Label Gun

Right-click the air with the Label Gun to open it, then type a name to make a new label and select it. After that you just right-click each block you want to add, and right-click it again to take the label off. You can put more than one label on the same block, which is handy for a Chest that’s both an input and an output.

The important step people miss is pushing the labels to the Factory Manager. Once you’ve labeled everything, right-click the Factory Manager with the Label Gun and the labels get saved onto the disk inside it. If you hold the pull modifier key while you click, which is Shift by default, it pulls the labels off the disk into the gun instead.

You can label any block, but the Factory Manager can only use the ones touching its cables, and the disk warns you about labels on blocks that aren’t connected. Holding Ctrl while you click labels every block of the same kind that’s joined together and touching the cables, so a whole row of Furnaces can be labeled in one go.

In older versions the Label Gun was crafted from Blue Dye, a Sign, two Sticks and Black Dye. The recipe was removed from the mod files in version 4.27.0 and hasn’t come back as of 4.34.0, so on those versions the only ways to get one are Creative mode or the /sfm kit command, which needs cheats turned on.

Label Gun
Blue Dye
Oak Sign
Stick
Black Dye
Stick
Crafting Table
→
Label Gun

If you’re playing on 4.26.0 or older, which a lot of 1.20.1 modpacks still are, the recipe above works fine. There’s also a small reset recipe that clears every label out of a Label Gun if you put it in a crafting grid on its own, which is useful when the list of labels gets too long to scroll through.

Writing Your First Program

Put the Program Disk into the Factory Manager and open the manager to get the text editor. There’s an examples button in the editor that loads the mod’s own template programs, and they’re the best place to learn SFML, since they’re always up to date with the version you’re playing on.

A Factory Manager and cable running behind a row of four Furnaces
A Factory Manager running four Furnaces

The simplest program there is moves everything from one labeled inventory to another. This one runs every 20 ticks, which is once per second, and takes everything out of the inventories labeled a and puts it into the inventories labeled b. The comments starting with two dashes are ignored, so you can leave notes to yourself.

NAME "A simple program"
EVERY 20 TICKS DO
    INPUT FROM a
    OUTPUT TO b
END

An INPUT on its own doesn’t move anything, it only marks where items can come from. The items only move when an OUTPUT statement runs, and they go straight from the source to the destination, there’s no buffer inside the Factory Manager holding them. That also means if the output is full, the items simply stay where they were.

You can also right-click a Program Disk in your hand to edit it without a manager, and Ctrl+V pastes a whole program into the editor. The editor has suggestions as you type and it underlines mistakes, and any problems also get listed on the disk’s tooltip, so hovering over the disk is a quick way to see why a program won’t run.

Triggers and How Often Programs Run

Every program is split into triggers, which are the EVERY blocks that decide when the code inside them runs. The most common one is EVERY 20 TICKS DO, and 20 ticks is also the fastest a timer is allowed to run by default, so writing EVERY 5 TICKS won’t work unless the server config has been changed.

The one exception is energy. A trigger that only moves Forge Energy is allowed to run every single tick, since energy doesn’t cause the same kind of lag that items do. There’s also a redstone trigger that runs once each time the Factory Manager gets a redstone pulse, which is useful for setups you only want to run on demand.

The main SFML triggers
Trigger What it does
EVERY 20 TICKS DORuns once a second on the manager’s own clock
EVERY 20 GLOBAL TICKS DORuns on the world clock, so several managers stay in sync
EVERY 20 PLUS 1 TICKS DOAdds an offset, useful to stagger two triggers
EVERY 300 SECONDS DOSeconds work too, handy for slow cleanup jobs
EVERY REDSTONE PULSE DORuns each time the manager gets a redstone pulse

There’s also a shorthand where EVERY 20G TICKS means the global clock and EVERY 20+1 TICKS adds the offset. The manager’s own clock starts at zero when it’s placed and gets randomized after the chunk unloads, so if two managers need to fire at exactly the same moment, it’s better to use global ticks for both of them.

Input and Output Statements

Most of SFML is just INPUT and OUTPUT statements with extra words added to control what moves. You can name an item, give it an amount, and use an asterisk as a wildcard, so INPUT *ingot* FROM a picks up every kind of ingot in the inventory labeled a. Leaving the item out completely means everything.

EVERY 20 TICKS DO
    INPUT
        5 stone,
        3 iron_ingot,
        cobblestone,
    FROM a
    OUTPUT TO b
END

The number in front of an item is how many can move each time the trigger runs. RETAIN works the other way around, it tells SFM how many to leave behind, so INPUT RETAIN 5 stone FROM a will never take the last five Stone. EACH applies the amount to every item that matches a pattern rather than the total of all of them.

EXCEPT lets you exclude items, and it applies to the whole statement. You can also pick sides and slots on a block, which matters for machines where the top, side and bottom do different jobs. The examples below are all real statements from the mod’s own templates, so they’re safe to copy.

Common SFML input and output statements
Statement What it does
INPUT 5 RETAIN 3 stone FROM aTakes up to 5 Stone but always leaves 3
INPUT 5 EACH *ingot FROM aTakes up to 5 of every kind of ingot
INPUT *ingot* EXCEPT iron_ingot FROM aTakes every ingot apart from Iron Ingots
OUTPUT RETAIN 1 coal TO furnace BOTTOM SIDEKeeps exactly one Coal in each Furnace’s fuel slot
INPUT FROM a TOP SIDE SLOTS 0,1,3-4Only uses those slots on the top side
OUTPUT TO EMPTY SLOTS IN storageOnly fills empty slots, which cuts down lag in big storage
INPUT WITH #forge:gems FROM chestMatches items by tag instead of name

Tags are really useful in modpacks, since #forge:ingots catches ingots from every mod without you having to list them. Quoted patterns use full regex, while an unquoted asterisk is turned into a simple wildcard, and the mod’s own examples say the unquoted version is shorter and easier to read, which is usually the one you’ll want.

Fluids, Energy and Other Resource Types

By default every statement moves items, but Super Factory Manager can move fluids and energy too. You do this by putting the resource type in front with two colons, so fluid::water means water and fluid:: on its own means every fluid. The same program can move items, fluids and energy in separate statements.

EVERY 20 TICKS DO
    INPUT fluid:: FROM tanks
    OUTPUT fluid:: TO machines
    FORGET
    INPUT fe:: FROM generators
    OUTPUT fe:: TO machines
END

The shorthand fe:: works for Forge Energy, and so do rf::, energy:: and power::, since the mod treats all four of them as the same thing. Other mods can add their own resource types too, and Super Factory Manager picks up Mekanism’s chemicals automatically when Mekanism is installed alongside it.

Resource types SFM can move
Resource type Written as Needs
Itemsstone or item::stoneNothing, it’s the default
Fluidsfluid::waterNothing
Forge Energyfe::Nothing
Gas, Infusion, Pigment, Slurrygas::, infusion::, pigment::, slurry::Mekanism installed
Redstoneredstone::Nothing

Energy statements are worth putting in their own trigger. A trigger that only has Forge Energy statements in it can run every tick, while one that mixes energy with items is held to the normal 20 tick limit, and a lot of machines drain their buffer faster than once a second can keep up with.

IF Statements and Redstone

IF statements let a program check what’s inside an inventory before it moves anything. You can check if a labeled inventory has more or less than an amount of an item, and use words like some, every and one to decide whether all of the labeled blocks have to match, or just one of them.

EVERY 20 TICKS DO
    INPUT FROM source
    IF some source HAS gt 10 minecraft:iron_ingot THEN
        OUTPUT TO dest1
    END
    IF redstone ge 2 THEN
        OUTPUT TO dest2
    END
END

The redstone check looks at the signal going into the Factory Manager itself, so a lever or comparator next to the manager can switch parts of the program on and off. The comparisons can be written as symbols like > and >= or as words like gt and ge, and the mod treats both of them exactly the same.

By default a check on a label counts the total across every block with that label, which the mod calls overall. So if you’ve got Chests labeled a holding 5, 5 and 10 Stone, then a HAS eq 5 stone is false because there’s 20 in total, while some a HAS eq 5 stone is true because at least one Chest matches.

Round Robin, Retain and FORGET

Round robin is one of the most searched parts of SFM, but the mod’s own examples say you probably don’t need it, and that RETAIN is usually the better answer. If you want to fill every machine evenly, OUTPUT RETAIN 8 TO EACH machine keeps eight in each one without having to rotate between them.

When you do want to rotate, ROUND ROBIN BY BLOCK sends to one labeled block each time the statement runs, and ROUND ROBIN BY LABEL alternates between whole labels. It moves on one block every time the trigger fires, so it’s slower than a normal output, which is why RETAIN is usually the quicker way to spread things out.

EVERY 20 TICKS DO
    INPUT FROM source
    OUTPUT 128 dirt TO dest ROUND ROBIN BY BLOCK
END

FORGET is the other keyword you’ll need once programs get longer. An INPUT stays active for the rest of the trigger, so a later OUTPUT can pull from an earlier input by accident. Putting FORGET between two jobs clears every input above it, and it’s the first thing to check when items end up somewhere they shouldn’t.

Super Factory Manager Example Programs

These examples are the ones people search for the most, and they’re all built from the mod’s own templates. They assume you’ve already labeled your blocks with the same names used in the program, so remember to push the labels to the Factory Manager with the Label Gun after you’ve labeled everything.

The furnace setup is the classic first program. Label your input Chest as to be smelted, your fuel Chest as fuel, every Furnace as furnace and your output Chest as results. It feeds eight items into the top of each Furnace, keeps one fuel in the bottom, and pulls the finished items out.

NAME "Furnace Manager"
EVERY 20 TICKS DO
    INPUT FROM "to be smelted"
    OUTPUT 8 TO EACH furnace TOP SIDE
    FORGET
    INPUT FROM fuel
    OUTPUT RETAIN 1 TO EACH furnace BOTTOM SIDE
    FORGET
    INPUT FROM furnace BOTTOM SIDE
    OUTPUT TO results
END

For storage, a simple sorter moves everything from an input Chest into your main storage, but only into empty slots, then runs a slower pass every five minutes to stack everything together. Filling empty slots is much lighter on the server than checking every stack in a big storage wall every second, which is why the mod suggests it.

NAME "Storage"
EVERY 20 TICKS DO
    INPUT FROM mob_loot
    OUTPUT TO EMPTY SLOTS IN storage
END
EVERY 300 SECONDS DO
    INPUT FROM storage
    OUTPUT TO storage
END

You can also sort by tag, which works well in modpacks with lots of ores. The program below moves every ingot into the Chests labeled ingots and every gem into the ones labeled gems, and anything that isn’t matched just stays in the input Chest, so you can see straight away what still needs a home.

EVERY 20 TICKS DO
    INPUT WITH #forge:ingots FROM input
    OUTPUT TO ingots
    FORGET
    INPUT WITH #forge:gems FROM input
    OUTPUT TO gems
END

Cable Types and Facades

As well as the normal Inventory Cable, Super Factory Manager has a few other cable types for different jobs. They all connect to the Factory Manager the same way, so you can mix them together in one network, and the manager doesn’t care which kind of cable a block happens to be touching.

Rows of the four Super Factory Manager cable types
The cable types

The Tough and Tunnelled cables were added in version 4.29.0, so they won’t be in older modpacks. The Tunnelled Inventory Cable is the interesting one, since it lets a machine on one side of the cable be reached through it, which is useful when you want to hide the network inside a wall.

Super Factory Manager cable types
Cable Made from What it’s for
Inventory CableIron Bars, Chest, Pressure Plates, Black DyeThe normal full block cable
Fancy Inventory CableOne Inventory CableA thinner cable model that can be waterlogged
Tough Inventory CableInventory Cable and ObsidianResists explosions
Tunnelled Inventory CableInventory Cable and FencesPasses connections through to the opposite side
Tunnelled Factory ManagerFactory Manager and FencesA manager that passes connections through

Cables can also be disguised as other blocks, which the mod calls facades. Hold the Network Tool in your off hand and the block you want in your main hand, then right-click a cable to cover it. Ctrl-click covers a whole connected run of cables, and Ctrl-Alt-click covers the entire network in one go.

Tough Inventory Cable
Obsidian
Obsidian
Obsidian
Inventory Cable
Obsidian
Obsidian
Obsidian
Crafting Table
→
Tough Inventory Cable
Tunnelled Inventory Cable
Oak Fence
Oak Fence
Oak Fence
Inventory Cable
Oak Fence
Oak Fence
Oak Fence
Crafting Table
→
Tunnelled Inventory Cable
Tunnelled Factory Manager
Oak Fence
Oak Fence
Oak Fence
Factory Manager
Oak Fence
Oak Fence
Oak Fence
Crafting Table
→
Tunnelled Factory Manager

Every one of the special cables can be crafted back into a plain Inventory Cable by putting it in a crafting grid on its own, and the Tunnelled Factory Manager turns back into a normal Factory Manager the same way. So there’s no harm trying one out, since you won’t lose the materials if it isn’t what you wanted.

The Network Tool and Fixing Problems

The Network Tool shows every cable through walls while you hold it, and right-clicking a block face gives you information about what’s connected there. It’s crafted from a Redstone Lamp, a Sign, a Heavy Weighted Pressure Plate and two Iron Ingots, and it’s the first thing to grab when a Factory Manager isn’t doing what you expected.

Network Tool
Redstone Lamp
Oak Sign
Iron Ingot
Heavy Weighted Pressure Plate
Iron Ingot
Crafting Table
→
Network Tool

You might not need it that often though, since pressing Ctrl+I while any inventory is open shows the inspector, which lists what that block exposes to SFM on each side. It’s a quick way to find the right side and slot numbers for a modded machine without having to guess them or look them up.

If a Factory Manager stops working for no reason, the mod’s own known issues list says to press the Rebuild cable network button in the manager first. If that doesn’t fix it, the /sfm bust_cable_network_cache command resets every cable network, and the developer admits in the notes that they don’t know why it sometimes happens.

Water Tank

The Water Tank is a small extra block that makes infinite water for your programs. It needs two water source blocks next to it to work, and it’s crafted from a Water Bucket, Iron Bars and a Light Weighted Pressure Plate. Once it’s active it refills itself, so you can pull water from it with fluid::water forever.

Water Tank
Iron Bars
Water Bucket
Iron Bars
Iron Bars
Light Weighted Pressure Plate
Iron Bars
Iron Bars
Water Bucket
Iron Bars
Crafting Table
→
Water Tank

Water Tanks get a lot bigger when you put active ones next to each other. A single Water Tank holds one bucket, two connected ones hold two buckets each, and every extra tank doubles it again, so a small cluster of them can supply a lot of machines at once. The tanks only count if they’re active themselves, so each one still needs its own water around it.

Printing Press, Printing Forms and Experience

The Printing Press copies things, including Program Disks, Enchanted Books, written books and maps. It needs a Piston facing down above it with one block of air in between, and each time the Piston pushes, it prints one copy using one ink. You right-click the Printing Press to put the form, ink and paper into it.

A Printing Press with a downward Piston two blocks above it
The Printing Press setup

The Printing Press itself is crafted from an Anvil, a Piston, two Stone, two Iron Bars, a Black Dye and two Light Weighted Pressure Plates. It’s worth building next to your Factory Manager, since the ink and paper slots can be filled by a program, and a redstone clock on the Piston keeps it printing.

Printing Press
Light Weighted Pressure Plate
Black Dye
Light Weighted Pressure Plate
Stone
Anvil
Stone
Iron Bars
Piston
Iron Bars
Crafting Table
→
Printing Press

The form is the thing you’re copying, and you make a Printing Form by dropping the item on a Block of Iron or Block of Copper and letting an Anvil fall on top of it. Be careful with this, because the original item and the block underneath both get used up, so for a Program Disk it’s best to make the form from a spare copy.

Printing Press recipes
Copy Form made from Ink Paper
Program DiskA Program DiskBlack DyeA Program Disk
Enchanted BookAn Enchanted BookExperience GoopA Book
Written BookA Written BookBlack DyeA Book
MapA Filled MapBlack DyeAn Empty Map

Experience Goop comes from the other anvil trick. Drop an Enchanted Book on Obsidian or Crying Obsidian and let an Anvil fall on it, and it breaks into an Experience Shard, which is one shard per book on the default config. Nine Experience Shards craft into one Experience Goop, which is the ink for copying Enchanted Books.

Experience Goop
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Experience Shard
Crafting Table
→
Experience Goop

The same Obsidian trick can also strip enchantments off gear. Drop an enchanted tool along with some plain Books and the falling Anvil moves each enchantment onto its own book, as long as you’ve dropped enough books for every enchantment. It doesn’t cost any experience either, so it’s a cheap way to reuse enchantments from gear you’ve outgrown.

Tips

Always push your labels to the Factory Manager after changing them. The disk remembers the labels from the last push, not what’s on the blocks now, so a new Chest you just labeled won’t be used until you right-click the manager with the Label Gun again. The disk tooltip lists every label and how many blocks it has.

Keep separate jobs in separate EVERY blocks, or split them with FORGET. It’s much easier to find a problem in three short triggers than in one long one, and it stops an input from one job leaking into another. Using the NAME line at the top also makes it easier to tell your disks apart later on.

Use RETAIN instead of exact amounts when you’re feeding machines. Keeping a few items in each machine means they never run dry between triggers, and it stops a single fast machine from hogging all of the input, which is what most people are actually trying to fix when they go looking for round robin.

Check the mod version before following a video or an older guide. The Label Gun recipe was removed in 4.27.0, the Tough and Tunnelled cables only exist from 4.29.0 onward, and older versions defaulted item names to minecraft, so a program written for one version might need a couple of small changes to work on another one.

FAQ

Is there a Super Factory Manager wiki or documentation?
›

The best documentation is inside the mod itself. The examples button in the Factory Manager’s editor loads the mod’s own template programs, which cover filters, limits, triggers, IF statements, round robin and tags, and they’re updated with every version, so they’ll always match the version you’re playing on.

Why can’t I craft the Label Gun?
›

The Label Gun recipe was removed from the mod files in version 4.27.0 and is still missing in 4.34.0. On those versions you can only get one from Creative mode or the /sfm kit command with cheats on, while 4.26.0 and older still use the old recipe with dyes, a Sign and Sticks.

Why isn’t my Factory Manager moving items?
›

The usual reasons are that the labels weren’t pushed to the manager with the Label Gun, that the inventory isn’t touching a cable, or that the program only has an INPUT with no OUTPUT. Timers faster than 20 ticks also won’t run unless the trigger only moves energy, and the disk tooltip lists any errors.

Can Super Factory Manager move fluids and energy?
›

Yes, it can. Put fluid:: in front of a fluid name to move fluids and fe:: to move Forge Energy, and with Mekanism installed it can also move gas, infusion, pigment and slurry. A trigger that only moves Forge Energy is allowed to run every tick instead of once a second.

Super Factory Manager ( SFM )

Developer
TeamDman
Created
November 13, 2018
Downloads
41,413,053
Supported Versions
Forge: 1.18+ 1.19+ 1.20+
NeoForge: 1.19+ 1.20+ 1.21+
Last Checked:
October 17, 2026 at 9:44 PM
View on CurseForge View on Modrinth
We do not host any Minecraft mods on this site. We link to the official sources to ensure that the mod developers receive proper credit and support for their work.