The Pattern Provider

Pattern providers are the primary way in which your autocrafting system interacts with the world. They push the ingredients in their patterns to adjacent inventories, and items can be inserted into them in order to insert them into the network. Often a channel can be saved by piping the output of a machine back into a nearby pattern provider (often the one that pushed the ingredients) instead of using an ME Import Bus to pull the output of the machine into the network.

Of note, since they push the ingredients directly from the crafting storage in a crafting CPU, they never actually contain the ingredients in their inventory, so you cannot pipe out from them. You have to have the provider push to another inventory (like a barrel) then pipe from that.

Also of note, the provider has to push ALL of the ingredients at once, it can't push half-batches. This is useful to exploit.

Pattern providers have a special interaction with interfaces on subnets: if the interface is unmodified (nothing in the request slots) the provider will skip the interface entirely and push directly to that subnet's storage, skipping the interface and not filling it with recipe batches, and more importantly, not inserting the next batch until there's space in the machine. This works correctly with blocking mode, the provider will monitor the slots in the machine for ingredients, instead of the slots in the interface.

For example, this setup will push both the thing to be smelted and the fuel directly into the corresponding slots in the furnace. You can use this to pattern provide into multiple sides of a machine, or multiple machines.

This is a general illustration of providing to multiple machines

Multiple pattern providers with identical patterns are supported and work in parallel.

Pattern providers will attempt to round-robin their batches to all of their faces, thus using all attached machines in parallel.

Variants

Pattern Providers come in 3 different variants: normal, directional, and flat/subpart. This affects which specific sides they push ingredients to, receive items from, and provide a network connection to.

  • Normal pattern providers push ingredients to all sides, receive inputs from all sides, and, like most AE2 machines, act like a cable providing network connections to all sides.

  • Directional pattern providers are made by using a Certus Quartz Wrench on a normal pattern provider to change its direction. They only push ingredients to the selected side, receive inputs from all sides, and specifically don't provide a network connection on the selected side. This allows them to push to AE2 machines without connecting networks, if you want to make a subnetwork.

  • Flat pattern providers are cable subparts, and so multiple can be placed on the same cable, allowing for compact setups. They act similar to the selected side on a directional pattern provider, providing patterns, receiving inputs, and not providing a network connection on their face.

Pattern providers can be swapped between normal and flat in a crafting grid.

Settings

Pattern providers have a variety of modes:

  • Blocking Mode stops the provider from pushing a new batch of ingredients if there are already ingredients in the machine.
  • Lock Crafting can lock the provider under various redstone conditions, or until the result of the previous craft is inserted into that specific pattern provider.
  • The provider can be shown or hidden on ME Pattern Access Terminals.

Priority

Priorities can be set by clicking the wrench in the top-right of the GUI. In the case of several patterns for the same item, patterns in providers with higher priority will be used over patterns in providers with lower priority, unless the network does not have the ingredients for the higher priority pattern.

A Common Misconception

For some reason people keep doing this, I don't understand why, but I'm putting this here to hopefully help. (Perhaps people are mistaken, thinking an ME Export Bus is the only way for things to exit the network, not knowing that pattern providers also export things)

This will not do what you want it to do. As mentioned in cables, cables are not item pipes, they have no internal inventory, providers will not push into them.

Since the provider doesn't have anything to push to, it will not be able to function. All it's doing here is acting like a cable, connecting the ME Export Bus to the network.

The provider will also not somehow tell the ME Export Bus what to export, the export bus will just export everything you put in its filter.

What we've essentially done here is this:

Likely what you would actually want to make is this, where the pattern provider can export the contents of its patterns to the adjacent machine:

Use With Molecular Assemblers

Molecular Assemblers are basically just like any other machine. They have an inventory that can be inserted into, they then perform an action on the things in that inventory, and then, like many machines, they push the result to an adjacent inventory. Thus, they should be used with providers like any other machine, with one addition:

Assemblers can take the desired pattern from a Crafting Pattern, Smithing Table Pattern, or Stonecutting Pattern that is inserted directly into the assembler. This is useful in an assembly line but having to have a dedicated assembler per-crafting-recipe would be annoying.

Thus, pattern providers have a special functionality with assemblers, they can send the pattern data along with the ingredients. This way, you can simply place an assembler next to a pattern provider, and the provider can then use the assembler for all of its crafting, smithing, and stonecutting patterns.

It's really this simple, just put the patterns in the providers:

Note that this has exactly 8 providers, the maximum amount of channels that can be routed through a single assembler, provider, or non-dense cable.

Recipes

Crafting
Crafting (Shapeless)
Minecraft 1.20.4 [change]