How the config works#

Enthalpy has one config file, and it is a server config. That has three consequences for a pack:

  • Each world has its own copy. The game writes enthalpy-server.toml into the world's serverconfig folder the first time the world loads. Editing it changes that world only.
  • Ship your values in defaultconfigs. A file of the same name in the instance's defaultconfigs folder is copied into each new world. It does not touch worlds that already exist, so for those, edit the world's own file.
  • On a server, the server's values win. Players need no copy of the file, and a client only sees the server's numbers once it has joined.

The file is grouped into sections such as [ecotone] and [upgrades]. Every setting has a default, a minimum and a maximum; a value outside its range is replaced by the default when the file loads. The config reference lists every setting with its range and what it does, and each recipe below links the groups it touches.

Settings that hold one value per tier are lists of five numbers, in the order of the tier kits: base, Tempered, Fortified, Luminous, Harmonic. Write all five. A list that is too short falls back to the defaults for the tiers it leaves out, which is rarely what you meant.

Slower or faster Ecotones#

Three things set how quickly an Ecotone produces: how long a pair takes to breed, how long a crop takes to ripen, and the tier's speed multiplier. Lower the tick values to speed it up; raise them to slow it down. The power draw per tick does not change, so a faster Ecotone also spends less FE per breeding.

SettingDefaultRangeWhat it does
ecotone.breedTicks2001 to no limitAverage ticks for each pair of fish to breed one more, before tier speed (200 = one every 10 seconds)
ecotone.harvestTicks4801 to no limitTicks between harvests for each planted crop, before tier speed. 480 matches one and a half fully planted 9x9 fields of wheat
ecotone.speed1 / 1.5 / 2 / 2.5 / 3Ecotone speed per tier, which also scales its FE and water use: base, tempered, fortified, luminous, harmonic
ecotone.energyPerTick600 to no limitFE per tick the Ecotone draws by day, before its tier speed. After dark it draws twice this, and needs a Lumen module
ecotone.waterPerTick500 to no limitWater the Ecotone uses per tick, in mB, before its tier speed

Example: twice as slow to breed, crops unchanged, and a flatter climb through the tiers.

[ecotone]
    breedTicks = 400
    speed = [1.0, 1.25, 1.5, 1.75, 2.0]

The tier speed also scales the FE and water the Ecotone uses, so a higher tier costs more per second but not more per breeding. See the Ecotone settings for the rest, including the Fish Meal, Prized and Infusion bonuses.

Cheaper or dearer machines to run#

A processing recipe has a fixed energy cost written in its recipe. A machine spends a fixed number of FE each tick while it works, so a recipe's time is its cost divided by that rate. That gives two different levers:

  • Change the rate (machines.energyPerTick) and every processing machine gets faster or slower, and draws more or less power while it runs. The FE for each item stays the same.
  • Change the cost in the recipe's energy field, by datapack, to make one item cheaper or dearer. The recipe formats list the default for each machine.
SettingDefaultRangeWhat it does
machines.energyPerTick201 to no limitFE per tick a processing machine spends while working, before upgrades
machines.energyCapacity20,0001 to no limitEnergy buffer of processing machines before upgrades, in FE
machines.maxEnergyInput1,0001 to no limitMaximum FE per tick a processing machine accepts before upgrades
machines.kilnEnergyPerCookingTick101 to no limitFE the Resistive Kiln spends per tick of a smelting recipe's vanilla cooking time
brineAccretor.energyPerTick1001 to no limitFE per tick the Brine Accretor spends growing a crystal; it takes no kits, so this sets its speed

Two machines differ. The Resistive Kiln has no recipe cost of its own; it spends the setting above for each tick of the smelting recipe's normal cooking time, so changing it changes the cost per item. The Brine Accretor takes no tier kits, so its own rate sets its speed.

Keep the input limit (which grows with tier through the capacity multipliers) above the rate times the tier's rate multiplier, or a machine cannot take the power it asks for. The module bonuses (upgrades.celeritySpeedBonus, upgrades.celerityCostIncrease and upgrades.economizerEfficiency) are the third lever, and apply to every machine at once; Upgrades and modules works the maths through.

[machines]
    energyPerTick = 40
    kilnEnergyPerCookingTick = 20

That doubles the speed and power draw of processing machines, and doubles what the Kiln spends per smelt. See the machine settings and the upgrade settings.

Stronger or weaker engines#

Each engine has an output in FE per tick while it burns, an energy buffer and an output limit. The four engines have separate output settings, so you can favour one fuel family over the others. How much energy a fuel holds is separate again: the Caloric Engine reads its burn-time rate and efficiency from the config, while fluid fuels and a few special items have fixed values in data maps.

SettingDefaultRangeWhat it does
engines.energyPerTick401 to no limitFE per tick the Caloric Engine generates while burning, before upgrades
engines.igneousEnergyPerTick801 to no limitFE per tick the Igneous Engine generates while burning, before upgrades. Fuel values are in data/enthalpy/data_maps/fluid/igneous_fuels.json
engines.ignitionEnergyPerTick1001 to no limitFE per tick the Ignition Engine generates while burning, before upgrades. Fuel values are in data/enthalpy/data_maps/fluid/ignition_fuels.json
engines.kettleEnergyPerTick801 to no limitFE per tick the Kettle Engine generates while burning, before upgrades. Fuel values are in data/enthalpy/data_maps/fluid/kettle_fuels.json
engines.energyCapacity20,0001 to no limitEnergy buffer of the Caloric Engine before upgrades, in FE
engines.maxEnergyOutput1,0001 to no limitMaximum FE per tick the Caloric Engine pushes out before upgrades
engines.fluidTankCapacity8,0001,000 to no limitFuel tank size of the Igneous, Ignition and Kettle engines, in mB
engines.caloricEnergyPerBurnTick251 to no limitCaloric Engine FE per tick of a fuel's furnace burn time, before caloricFuelEfficiency Items in data/enthalpy/data_maps/item/caloric_fuels.json use their fixed value instead
engines.caloricFuelEfficiency1.50.01 to 100Multiplies the FE the Caloric Engine gets from burn time, rounded to the nearest 250 FE (1.5: coal gives 60,000 FE)

Raising an engine's output makes it burn its fuel faster for the same energy per unit, so it drains fuel sooner but never makes more of it. To make a fuel itself worth more or less, raise engines.caloricFuelEfficiency for burnable items, or change the entry in the fuel's data map (enthalpy:caloric_fuels, enthalpy:ignition_fuels and the others).

[engines]
    energyPerTick = 60
    caloricFuelEfficiency = 1.0
    maxEnergyOutput = 2000

A stronger Caloric Engine, with items that burn in a furnace worth less. An engine hands on at most its output limit each tick, so keep the limit at or above the output rate. See the engine settings.

Voltaic Cell capacity#

The Voltaic Cell has two lists, one value per tier: how much energy it holds, and how fast it takes in and gives out FE.

SettingDefaultRangeWhat it does
voltaicCell.capacity1,250,000 / 2,500,000 / 3,750,000 / 5,000,000 / 7,500,000Voltaic Cell energy capacity per tier, in FE: base, tempered, fortified, luminous, harmonic
voltaicCell.transfer1,000 / 2,000 / 3,000 / 4,000 / 6,000Voltaic Cell input and output limit per tier, in FE/t: base, tempered, fortified, luminous, harmonic. The Tesla module's wireless output shares the output limit
[voltaicCell]
    capacity = [2000000, 4000000, 8000000, 16000000, 32000000]
    transfer = [2000, 4000, 8000, 16000, 32000]

The Tesla module's wireless output shares the output limit, so raising the capacity without the transfer makes a big cell that is slow to fill and drain. See the Voltaic Cell settings.

Tier multipliers#

Four groups of settings set what a tier kit is worth. Each is a list of five values, base to Harmonic.

  • upgrades.rateMultipliers: how much faster (and more power-hungry) processing machines and engines run at each tier.
  • upgrades.capacityMultipliers: the energy buffer and transfer limit at each tier.
  • ecotone.speed and spawningBasin.speed: the same idea for those two machines, which have their own lists.
  • aquifer.waterPerTick: water made at each tier.
SettingDefaultRangeWhat it does
upgrades.rateMultipliers1 / 2 / 3 / 4 / 6Energy rate (and therefore speed) multiplier per tier: base, tempered, fortified, luminous, harmonic
upgrades.capacityMultipliers1 / 2 / 4 / 8 / 16Energy buffer and transfer multiplier per tier: base, tempered, fortified, luminous, harmonic
ecotone.speed1 / 1.5 / 2 / 2.5 / 3Ecotone speed per tier, which also scales its FE and water use: base, tempered, fortified, luminous, harmonic
spawningBasin.speed1 / 1.5 / 2 / 3 / 4Spawning Basin speed per tier, which also scales its FE and water use: base, tempered, fortified, luminous, harmonic
aquifer.waterPerTick250 / 1,000 / 8,000 / 64,000 / 2,147,483,647Water the Aquifer makes per tick, in mB, per tier: base, tempered, fortified, luminous, harmonic
[upgrades]
    rateMultipliers = [1.0, 1.5, 2.0, 3.0, 4.0]

That flattens the climb, so kits are a smaller jump. The tier kits still open two more module slots each; the slot counts are fixed. See the upgrade settings and the Aquifer settings.

Spawning Basin speed#

The Spawning Basin breeds one pair every set number of ticks, divided by its tier speed. A pair without a catalyst to mutate with works at a fraction of that speed on the same power and water, which is what keeps plain copying slow.

SettingDefaultRangeWhat it does
spawningBasin.breedTicks2001 to no limitTicks for the Spawning Basin's pair to breed once, before tier speed (200 = every 10 seconds). Each breeding eats one fish food
spawningBasin.speed1 / 1.5 / 2 / 3 / 4Spawning Basin speed per tier, which also scales its FE and water use: base, tempered, fortified, luminous, harmonic
spawningBasin.uncatalysedSpeed0.250.01 to 1Speed of the Spawning Basin when its pair has no catalyst to mutate with, using the same FE and water per tick
spawningBasin.energyPerTick400 to no limitFE per tick the Spawning Basin draws while breeding, before its tier speed
spawningBasin.waterPerTick50 to no limitWater the Spawning Basin uses per tick while breeding, in mB, before its tier speed
[spawningBasin]
    breedTicks = 100
    uncatalysedSpeed = 0.5

Each breeding eats one item of fish food, so a faster Basin eats faster too. See the Spawning Basin settings.

Weapon balance#

The Haddock Howitzer and the Kingfish Katana have the most settings of any part of the mod: damage, power, ranges, cooldowns, per-element effects and the Rail Scale and katana tiers. Packs rebalance them more than anything else, and they are all in the same file, in the [haddockHowitzer] and [kingfishKatana] sections. The per-fish ammo bonuses are a data map instead.

Every weapon key, with its default and range, is in the Haddock Howitzer settings and the Kingfish Katana settings on the config reference. Change the defaults there one at a time and test them in play; the settings interact.

Beyond the config#