Omnimarathon

Makes the game more challanging by increasing costs. The mod does a thourough analysis of items and chains.
1 year, 1 month ago
0.15 - 0.16
4311
Owner: OmnissiahZelos
Source: N/A
Homepage: N/A
License: MIT
Created: 2 years ago
Latest Version: 2.0.7 (1 year, 1 month ago)
Factorio version: 0.15 - 0.16
Downloaded: 4311 times

I felt for the longest time quite displeased with the general automated marathon mod, it felt far too crude for me so I have made my own version! I present to thee all, OMNIMARATHON! This mod will make expensive recipes much more so that you can skip expensive research!

Features:
-- Includes plenty of functions for server owners, and modders, to fine tune their experience to suit them!
-- Does not suffer from the 1 item cost makes it unchanged problem!
-- makes certain that upgraded buildings costs as many of the building as you get out. So no 9 burner assemblers to make a regular assembler.
-- Contains currently a rudimentary method for the mod to analyse parallel chains of recipes so they maintain their relative yield. Like angels 3 chains of smelting, makes certain they do not lose order of yield gain.

To come:
-- Improve the analysing algorithm to be more universal.
-- WIth it make certain omnicrystal does not lose its work.
--Add fuel analysing.
--Probably more functions

THIS IS AN EARLY BETA! So be aware!

Known Issues:
Some chains are currently not added to be configured, including omnistuff, it is being worked on. If shown interest I can submit a mod that basically excludes all ore ones to make it make sense again.

Bug Reports/Suggestions: go to discord.gg/WQYks7W

Commands: All start with omni.marathon.

add_chain(name,chain,initial,final): Adds/creates a chain to be analysed, it is given the name name, the *chain part is done as {recipe_name,{{relevant_input_count},{relevant_output_count}}} where relevant_input/output_count refers to which is the important item that goes in and out of that recipe, all others are ignored as it checks only what the next recipe in that chain has in common as input as the previous has in output. The relevant part is to make certain it can try to get close to that count in some way. initial/final says what the chain starts and ends with, this only needs to be done the first time, when the c hain is created. Example:
omni.marathon.add_chain("iron-smelting",{{"iron-ore-smelting",{24,24}}},{"iron-ore"},{"ingot-iron"})
omni.marathon.add_chain("iron-smelting",{{"iron-ore-processing",{2,4}},{"processed-iron-smelting",{24,8}}})
omni.marathon.add_chain("iron-smelting",{"iron-ore-processing",{"iron-processed-processing",{4,3}},{"pellet-iron-smelting",{24,8}}})

exclude_recipe(recipe): As it suggests, tells the marathon mod to ignore that recipe entirely.

inverse_recipes(recipe1,recipe2): Tells the marathon mod that recipe1 and recipe2 are inverses of one another.

exclude_item(item): Excludes item to be manipulated no matter what recipe.

exclude_item_ingredient(item): Excludes the item only if it is an ingredient.

exclude_item_result(item): Excludes the item only if it is a result.

normalize(recipe): Normaalizes a recipe so it only outputs 1 item.

equalize(item,res): Tells the mod that as input/output, item and res should be in equal quantity.

exclude_item_in_recipe(recipe,item): Excludes item only in recipe but no other recipe.

multiply_recipe_item(recipe,it,constant): Multiply item it in recipe with the constant, so you can proportionally increase/decrease it.

addition_recipe_item(recipe,it,constant): Similar to previous, but rather does addition than multiplication.

multiply_recipe_results(recipe,constant)
multiply_recipe_ingredients(recipe,constant)
addition_recipe_results(recipe,constant)
addition_recipe_ingredients(recipe,constant): Does as the previous but for all results/ingredients.

Verion history:
2.0.0:
--Updated to the new API!
--UPDATING TO THIS WILL BREAK SAVES!

0.2.5:
--Added a rounding function so it can work more nicely with compression and give "even numbers", this is a setting that you opt into.

0.2.0:
--0.16 Compatibility anad other stuff