Combine Machines

Combine Machines

5k Downloads



Lets you merge multiple copies of the same machine into a single copy that can process items faster, to save space on your farm.

For example, combining 2 furnaces creates a single furnace that can process 197% materials at a time (Not quite 200% since there is a small penalty applied for each quantity that you combine, although this penalty can be edited in the config.json file). You can continue adding furnaces to it to make it even stronger.

This helps reduce clutter and the need to devote large sections of your farm to a bunch of the same machine. I also found it annoying to collect my outputs from several machines in a row.

HOW TO USE

  • Open your inventory (machines must be combined from within your inventory, NOT while they are already placed on the ground!)
  • Click a machine to select it
  • Click another copy of the same machine while holding down CTRL to combine them
  • You can also split the machine back to its original state by placing it on a tile, then hitting it with a pickaxe to "un-place" it


All types of machines can be combined - furnaces, bee houses, worm bins, mayonnaise machines, kegs etc.



In the above example, I combine 4 furnaces into 1. This gives it 382% processing power, so when I insert ore into it, it will take roughly 5*3.82=19 ore. When it's done processing, I'll receive either 4 copper bars (82% chance) or 3 copper bars (18% chance) (This means I'll still average 3.82 bars per processing cycle). By hitting it with a pickaxe to un-place it, it gets split back into 4 separate furnaces.

Additional notes:

  • Automate: If using the Automate mod, consider setting the ProcessingMode in your config.json file to "IncreaseSpeed". If you set it to "MultiplyItems", then combined machines that have inputs automatically inserted into them by Automate won't take extra inputs due to technical limitations. (Won't cause any crashes, but this mod is currently only able to detect when inputs are inserted into machines through vanilla game functions. So with Automate, no extra inputs will be consumed even though you'd receive extra outputs., which is why setting it to "IncreaseSpeed" is recommended.)
  • Crab Pots: If ProcessingMode is set to "MultiplyItems", a combined crab pot won't take extra bait due to technical limitations, but you'll still receive extra outputs. If ProcessingMode is set to "IncreaseSpeed", then the crab pot will process items between 6:00am and 12:00am (18-hour day cycle, so you aren't expected to stay up extra late to collect outputs). If your combined crab pot has, for example, 360% processing power, then it would attempt to produce new ouputs once every 18.0/3.6=5.0 hours (300 minute intveral). Meaning it would check if it should produce an item at 6:00am (start of day), 11:00am (6+5), 4:00pm (6:+5*2), and 9:00pm (6+5*3).
  • EDIT: in game version 1.6, Crab Pots will now always use IncreaseSpeed mode due to new bugs with MultiplyItems.
  • Scarecrows: If you combine scarecrows, then it will increase the # of covered tiles. The radius of a combined scarecrow is given by: radius = Round(base_radius * square_root(processing_power)). It scales with the square root of the processing power because the processing power is multiplying the # of tiles, not the radius. (Doubling the radius would quadruple the # of tiles in range).
  • Casks: Due to technical limitations, casks always use ProcessingMode="IncreaseSpeed". A cask's output can only mature by up to 1 quality-level per day. So, for example, if you had an item in the cask that would normally take 28 days to go from regular to gold quality (+2 quality levels), then a combined cask with 2800% processing power would still require 2 days instead of 1.


Config Settings:
(After the first time you run the mod, a config.json file will automatically be created with default settings in the same folder that you install the mod to)
Note: You can use the SMAPI console command combine_machines_reload_config to dynamically reload your config settings without needing to restart the game

Main settings:

  • CombinePenalty: Default value = 0.03. A penalty to the processing power for each machine you combine. If set to 0.03, then the processing power loses 3% with each successive machine you add together. 2 machines = 197% (-3%), 3 machines = 291% (-3%, -6%), 4 machines = 382% (-3%, -6%, -9%) etc.
  • MinimumEffect: Default value = 0.25. The minimum boost to processing power that adding an additional machine will give. If CombinePenalty is set to 0.03, then after adding 25 copies together I'd be getting +25% per additional machine added (100%-25*3%=25%). Since that is the MinimumEffect, it won't go any lower. Adding a 26th machine to together will still give +25% instead of +22%.
  • CombineKeyNames: Default value = a list containing LeftControl and RightControl. The names of the keys that must be pressed to combine two machines. (Only one key in the list needs to be held)
  • ProcessingMode: Default value = "MultiplyItems", Possible values are "MultiplyItems" or "IncreaseSpeed". If set to "MultiplyItems", then a combined machine will process multiple quantity of the same item each cycle, but each cycle will have the regular duration. If set to "IncreaseSpeed", then a combined machine will process the normal amount of items per cycle, but each processing cycle will be faster. For example, if Processing Power = 200%, then using "MultiplyItems" allows you to process 2 bars at a time with a furnace, whereas using "IncreaseSpeed" allows your furnace to process 1 bar at a time, but it finishes smelting twice as fast.
  • ProcessingModeExclusions: Default value = empty list. This list should contain names of machines that you want to use the opposite processing mode on. For example, if ProcessingMode is set to "MultiplyItems", and ProcessingModeExclusions is set to [ "Furnace", "Worm Bin" ], then all machines EXCEPT Furnaces and Worm Bins will use mode = "MultiplyItems", while Furnaces and Worm Bins will instead use mode = "IncreaseSpeed"


Additional settings that mostly don't matter:

  • NumberOpacity: Default value = 1.0. An alpha to use when rendering the number of combined machines. Recommended value = 1.0 (100% opacity, 0% transparency)
  • DrawToolTip: Default value = true. Possible values are true or false. If set to false, then a tooltip will not be displayed when hovering over a machine placed on a tile. Recommended value = true.
  • ToolTipOffset: Default value = "0, 0". Possible values are a comma separated coordinate: "x, y". An offset from the mouse cursor to use when positioning the tooltip. If you have other mods that display tooltips when hovering over a machine, you may want to change this offset so that the tooltips don't get drawn on top of each other. Note that in the context of computer graphics, the positive Y-axis is down instead of up.
  • ToolTipShowDuration: Default value = true. Possible values are true or false. If set to true, then the tooltip will display the days until aged to iridium quality (for casks) or the minutes until finished processing (for other types of machines, if the ProcessingMode is set to "IncreaseSpeed").
  • ToolTipShowQuantity: Default value = true. Possible values are true or false. If set to true, then the tooltip will display the produced item quantity if the ProcessingMode is set to "MultiplyItems"
  • AllowCombiningScarecrows: Default value = true. Possible values are true or false. If set to false, then you will not be able to combine scarecrows to increase their radius, and vanilla game logic for handling scarecrows and spawning crows will not be patched. The patches to the game code are somewhat significant for this feature, so if you're having any issues, consider setting this to false.
  • FurnaceMultiplyCoalInputs: Default value = true. Possible values are true or false. Only relevant if furnaces are using ProcessingMode="MultiplyItems". If true, then combined furnaces will consume 1 coal per bar produced. If false, furnaces will only consume 1 coal per processing cycle, regardless of how many bars are produced. Set this to false if you're feeling a bit cheaty and want to use less coal.


Source code