Hexi's Inline Ore Processing


Adds optional extra steps to ore processing that increases yield.

Content
2 years ago
0.14 - 1.1
1.11K
Mining

FAQ

Contact?

Official Factorio Discord - Hexicube#0102

You can either DM me or ping me in #mod-making, but in either case make it clear in the first message that it's about my mod.

When will you support the new version of Factorio?

If a newer major version of Factorio comes out (next one is 1.2.x) and is marked as stable, and it's been a week, let me know as I've likely forgot.

Otherwise, when I get around to it.

Why only Copper and Iron?

Coal and Stone are both provided by the advanced cleaning process, and in my experience they are also required less, so you should still need more iron/copper ore fields.

Uranium is used in small quantities, and is wholly optional.

What about mod resources?

If it's a high-throughput metallic resource, let me know about it and I'll look at adding support. Chances are I will if the recipe is just ore->plate.

If the ore processing steps in its mod are not immediately obvious, and you can't explain it in a couple sentences, I may not add the mod.

Complex ore processing usually means the mod author has a way they want to do things and/or has carefully constructed their own ore processing, and adding tripling to one step can easily throw their mod out of balance.

Currently supported:

  • Gold
  • Lead
  • Silver
  • Tin

Let me know if any of these are not working, as well as exactly which mod adds it, as I may need to add a soft-depend for that mod.

I made a mod with ores, how do I do add them myself?

Soft-depend on this mod, then inside your own data-final-fixes call hexi_inline_add_recipe(recipe, recipe_data).

recipe is the ore->plate recipe that you created for use with data:extend, and is deep copied to make the resulting recipes as similar as possible:

  • The first ingredient (or the only one) is considered to be the ore, including its quantity if specified
  • The first result (or the only one, or the index specified with recipe_data.ingredient) is considered to be the plate, including quantity
  • The recipe energy (time) is used as a base for all generated recipes
  • Names are derived from the ore name, with an ore called "cobalt-ore" generating names like "cobalt-ore-enriched" for items and fluids

The recipe doesn't have to be an ore->plate recipe, or be a furnace recipe, it should work fine no matter what recipe you give it. Let me know if it doesn't.

recipe_data contains specified data about how you want things to be handled:

  • recipe_data.name does nothing, it only exists in my own file to auto-detect recipes
  • (optional) recipe_data.ratio specifies recipe inputs, outputs, and how long each step takes
  • recipe_data.ore_tint specifies the tint for all items
  • recipe_data.tint specifies the tint for the slurry fluid, and the first one also controls the liquidation machine tint
  • (avoid) recipe_data.visible set to true makes all created recipes appear in the crafting menu, instead of just the enriched->plate recipe that indicates the ore is supported

If you're using recipe_data.ratio, you can refer to default_tier_ratios at the top of my own data-final-fixes for the default values.
Remember that "time" is a multiplier for recipe.energy_required for ease of use.
Also note that all of my machines have a crafting speed of 1 (by default), so tweak time values as appropriate.

You will also need to create locale strings for four items (enriched, crushed, cleaned, crystal), one fluid (slurry), one recipe (enriched-smelting) unless you set recipe_data.visible to true, and descriptions for all of those.

Can you translate it into X? Can I translate it into X for you?

No, I don't know any other languages so it would be difficult to verify any extra locales.