Skip to content

Codex Processing Materials

CaptainGummiball edited this page Nov 10, 2026 · 1 revision

Materials and Recipes

QNet has no fixed list of metals. It reads the materials of your modpack from the common c: item tags and makes its recipes for every one of them: the tin, nickel, silver or lead of whatever mods you play with. This page explains how materials are found, which item a machine makes, where recipes come from and how QNet keeps recipes from creating material out of nothing.

How materials are found

An item in the tag c:<form>/<material> is that form of that material, for example c:ingots/tin, c:dusts/tin or c:ores/tin. Every form has a size in material units (MU):

Form Tag MU
Ore c:ores/<m> 180
Raw metal c:raw_materials/<m> 90
Raw block c:storage_blocks/raw_<m> 810
Storage block c:storage_blocks/<m> 810
Ingot c:ingots/<m> 90
Nugget c:nuggets/<m> 10
Dust c:dusts/<m> 90
Plate c:plates/<m> 90
Rod c:rods/<m> 45
Gear c:gears/<m> 360
Wire c:wires/<m> 45
Gem c:gems/<m> 90

Ore, raw metal and raw blocks are source forms: they come out of the world. Processing them may give more than they are worth (an ore counts as two dusts), but no recipe may make them.

  • Old tags: while works.legacyMaterialTags (default true) is on, old-style tags such as c:iron_ingots or c:tin_dusts fill a form that the modern tag leaves empty. They never override a modern tag.
  • Ambiguous items: an item that is tagged as two materials, or as two forms of one material, is left out of every derived recipe and reported. A wrong tag in one mod can therefore never make nonsense recipes.

Material files

A data pack or a mod can describe a material in data/<namespace>/qnet/material/<name>.json. A file only adds to the tags:

  • forms: extra items or tags per form, for items a mod does not tag;
  • preferred: the item a machine should make for a form;
  • units: other MU for a form;
  • byproduct: an item or tag and its chance, for processing the ore;
  • melting_point and color: for the Foundry.

QNet brings files for seventeen materials: brass, bronze, conductive alloy, constantan, copper, electrum, gold, invar, iron, lead, netherite, nickel, precision alloy, silver, steel, tin and zinc. Several files for one material add their forms together; for the other values the later file wins.

Which item a machine makes

When several mods make the same form (three mods with a tin ingot), every one of them is accepted as an input, but a machine produces only one:

  1. the preferred item of the material file, if it is a member of that form;
  2. otherwise the item of the first mod in works.preferredNamespaces (default minecraft,qnet, allowed comma-separated names);
  3. otherwise the item with the smallest id.

Where recipes come from

For the same input the first source in this order wins:

  1. Recipe files of data packs and mods, QNet's own included.
  2. Recipes other mods register through the QNet API.
  3. The game's recipes: the Induction Furnace takes over every smelting recipe of every mod.
  4. Derived recipes from templates: one recipe per material that has both forms of a template.
  5. Fallback recipes that turn finished parts back into dust, while works.fallbackRecipes (default true) is on.
  6. Foreign recipes of other mods' machines (see below).

Within one source a recipe with a higher priority wins, then the more exact one (an item before a tag), then the recipe id. A recipe that never runs because another one with the same input comes first is listed in the material report, so data pack authors see such conflicts.

Templates

A template (data/<namespace>/qnet/processing_template/) is a rule "form → form" of one process type, applied to every material that has both forms. A template that does not start from a source form may not give more MU than it takes; for a material where it would, it is skipped. QNet's templates belong to these machines:

  • Crusher: ores, raw metal, raw blocks into dust; ingots, plates, rods, gears, gems and blocks back into dust.
  • Metal Former: ingots into plates, rods, gears and wire; nuggets into ingots, ingots and gems into blocks.
  • Industrial Centrifuge: raw metal into dust and by-products.
  • Chemical Plant: ore leaching, three dusts per ore.

For example the Metal Former's compacting:

In Out E/t Ticks When
9 × Nugget Ingot 60 60 always
9 × Gem Storage block 60 120 always
9 × Ingot Storage block 60 120 always

Recipes of Create and Mekanism

With Create or Mekanism installed, QNet machines also run some of their recipes:

  • Create crushing and milling, Mekanism crushing and enriching run in the Crusher, at 40 E/t for 140 ticks. Of Create's results the Crusher keeps the main result and the first further one.
  • Create pressing runs in the Metal Former with the plate die, at 60 E/t for 160 ticks.
  • Only recipes with exactly one input and no fluids are taken over. Every QNet and data pack recipe for the same input wins.
  • Each integration has its own switch: features.integration.create (default true) and features.integration.mekanism (default true).

The balance check

After every data reload QNet checks all active recipes together:

  • Gain loops: recipes are followed from form to form, counted in MU. A loop that ends with more material than it started with (for example a data pack recipe that grinds one ingot into two dusts, which smelt back into two ingots) is broken: the derived, fallback and foreign recipes in it are switched off; the explicit recipes in it are reported, and switched off as well while works.strictBalance (default false) is on. This repeats until no loop is left.
  • Making ore: a recipe that produces ore or raw metal is reported (switched off with works.strictBalance (default false)); a foreign recipe that makes ore is always switched off. Only the Deep Core Extractor may bring up ore.
  • Wide loops: loops that run across materials or through fluids and gases are only reported, never switched off, because such a finding can be a false alarm.

The Matter Reconstructor's rules pass the same check.

Chances

Chances in machine recipes are paid out by count, not by a random roll: a 10 % by-product comes exactly every tenth run.

Commands for server operators

  • /qnet materials shows a summary: how many materials, derived recipes (and how many the balance check switched off) and ambiguous items.
  • /qnet materials show <material> lists one material's forms.
  • /qnet materials report writes everything (materials and their items, ambiguous items, derived recipes and their state, skipped templates, balance findings, overruled recipes, data problems) to qnet/materials-report.txt in the server directory.

Tip

A metal is missing a recipe? Check its tags first: a template only works for a material that has both forms. /qnet materials show <material> shows which forms QNet found, and the report names the ambiguous items and why a template was skipped.

QNet Codex

Getting Started

Energy

Processing

Rift

Storage

Logic

Reference

Items and Blocks

Clone this wiki locally