The crafting system used by Satisfactory is relatively straightforward and easy to add your own recipes to.

Recipes (FGRecipe)

Describing recipes for the workbench, buildgun or other machines works through the usage of the native FGRecipe class. Recipes allow you to describe what items and how many you need to deliver to get the given items with the given amounts.

It is important to note that buildgun recipes are also described by FGRecipe, so if you want to add a new building to the buildgun, you’ll need to create a new FGRecipe class with proper default values and then register the recipe.

Satisfactory uses a recipe manager to register and store all recipes there are. Whether you want to add a normal workbench recipe or a smelting recipe, just create a recipe with your desired descriptors and amounts and then let it register in the manager. The machines get their information from this manager so they can give the player a proper choice of what they can craft and what not. To determine this, if a machine is capable of crafting this recipe, you will need to pass an object type implementing the “Crafter” interface.

  • M Display Name

    If you want to define a name for your recipe, check this and type the name in.

  • M Ingredients

    This is an array of structs, each of which contains the information of one crafting component. Together, the array forms the input items for the recipe.

  • M Manufacturing Duration

    This determines the time it takes for a machine to process this recipe.

  • M Manual Manufacturing Multiplier

    If you want to use the same recipe for machines and the craft bench, with this value you can define how much longer the crafting of this recipe should take longer int the craft bench.

  • M Produced In

    Here we need to select the machine that can use the recipe.

  • M Product

    This is again an array of structs containing information regarding the item types and amounts that form the output of the recipe.