Recipe vs Schematic

Before we create our first recipe, it’s important to note the difference between a 'recipe' and a 'schematic.'

In Satisfactory, 'Recipes' are used to define the item input/cost and output of crafting items, buildables, etc. Recipes are not only used for the craft bench or the workshop, but also for the build gun, smelters, manufacturers and more. You can read more about recipes on the Crafting page.

Note that recipes are used to define both crafting recipes in the craft bench and machines and construction prices when using the build gun. All buildables actually have an item equivalent in game as well.

'Schematics', on the other hand, define things like Milestones, the shipments submitted to FICSIT via the HUB in order to unlock new recipes and features. This is far from their only feature. You can read more about schematics on the Schematic page.

Create a Recipe

First of all, we want to add a recipe to the game which will get unlocked with the schematic we will create afterwards. We’re going to make some new leaf based recipes to start. Create a folder, DocMod Content/Recipes which will contain all our recipes.

Now in Unreal, we need to create a new Blueprint Class in this folder which extends FGRecipe to serve as our recipe. Call it something like Recipe_Doc to follow Coffee Stain’s naming pattern.

Finally, we can define the recipe description itself. Open up the class and go to the class defaults and set the properties to the values you want.

  • M Display Name

    If you want to define a name for your recipe, check this and type the name in. For our tutorial recipe, we’ll check it and call it "Doc Recipe". This name will show up inside the manual crafting bench or any machines you set this recipe to be used 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. For this example, we’ll add one entry and set Desc_Leaves as the Item Class and 42 as the Amount.

  • M Manufacturing Duration

    This determines the time it takes for a machine to process this recipe in seconds. We’ll set it to 1 for now, because we are super speedy pioneers.

  • 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 in the craft bench. Because we don’t have time, we set this to 0. With the multiplier set to the default of 0, the number of clicks to craft is the number of seconds it takes to craft divided by two.

  • M Produced In

    Here we need to select the machine that can use the recipe, for example, FGWorkBench.

  • M Product

    This is another an array of structs that defines the item types and amounts that form the output of the recipe. In our case we’ll add an entry with Desc_Wood as the Item Class and 1 as the Amount. While you can create recipes with multiple outputs, the machine needs to have the correct number and type of output ports for this to work.

image

Note: this gif is slightly out of date as of SML 3.0

Ok, now you’ve created your first recipe! Next, let’s add it to a schematic to make it available in game.

Create a Schematic

Schematics are what Satisfactory uses to grant recipes and capabilities to the player. Schematics are the milestones you’ll see in the HUB, the Tier 0 tutorial phases, M.A.M researches, alternate recipe researches, and more. If the player is unlocking an item, building, or any recipe it’s probably be granted by a schematic.

To get started, create a folder in your main mod folder for your schematics, for example, DocMod Content/Schematics. Inside this folder create again a new BP Class but this time of type FGSchematic and f.e. with the name "Schem_Doc". Open it and go again to its defaults.

  • M Type

    The type of the schematic, which determines if it’s part of the tutorial system or if it’s a Milestone/etc. We’ll use Milestone.

  • M Display Name

    The in-game name of our schematic exactly as it is displayed to the user. We’ll use "Doc Plants Upgrade".

  • M Schematic Category

    Defines the category in which this schematic gets grouped into. Go ahead and pick one, it doesn’t matter for our example.

  • M Sub Category

    Defines in which sub group the schematic should get categorized. We leave this array empty.

  • M Tech Tier

    Determines which Tier the schematic will appear under in the HUB. We’ll set it to 1 so that our content is available as soon as you finish the tutorial.

  • M Time to Complete

    Remember that annoying time when you purchased a milestone and the space ship leaves, blocking you from buying other milestones, or waiting for research to complete? We will set it to 60 seconds. For milestones, if this value is shorter than the time it takes for the pod animation to launch, it will visually bug out, but you will still be able to submit milestones without issue.

  • M Schematic Icon

    The icon displayed on a HUB milestone or M.A.M. Research. We can use this example image. You should make another folder (say Content/DocMod/Icons) to hold your mod’s icon files and import there.

  • M Cost

    A list of items and the amounts needed to purchase the schematic in the HUB. We’ll add two entries, one with 100 Desc_Leaves and another one with 50 Desc_Wood

  • M Unlocks

    This array contains the rewards the player will get when purchasing this schematic. It’s an array of FGUnlocks. The different kinds of unlocks are discussed in the schematics page. What we’ll add to this array is a BP Unlock Recipe. In its properties we can then add recipes, such as the one we made earlier.

  • M Schematic Dependencies

    This array allows for a schematic’s purchase to be locked depending upon other schematics or items in the world. We’ll leave this empty because we don’t want our content to require any other particular schematic to be unlocked first.

  • M Include In Builds

    Set this to 'PublicBuilds' so that your content is included in the build. Presumably, this is what Coffee Stain uses to keep their developer milestones made for testing from being shipped with the main game.

Finally! What a class. Now we just need to register this schematic so it shows up at runtime.

Register the Schematic

To register the schematic we can use our recently created InitGameWorld and add the schematics to the M Schematics array of the InitGameWorld. Double click on InitGameWorld to edit it and add your schematic to the M Schematics array.

And we’re set! Our recipe and schematic are registered and should show up in the game now. To test it out, go ahead and run Alpakit and launch the game. The main menu should now show a higher loaded mods count, and you should be able to buy and test your schematic and recipes in game.