Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Heater

Heater

A bare minimal tech mod for centralised furnace fuel management.

8,884
60
Technology

Compatibility

Minecraft: Java Edition

1.21.x
1.20.1–1.20.4

Platforms

Fabric

Supported environments

Client and server

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source

Creators

Niv Oridocs
Niv Oridocs Owner
StarOcean
StarOcean Artist

Details

Licensed MIT
Published last year
Updated 2 days ago
DescriptionGalleryChangelogVersions

Heater

Heater is a straightforward tech mod about centralizing fuel consumption and how to propagate the produced heat to nearby furnaces and furnaces-adjacent blocks.

Heater Showcase

(Credits to StarOcean for the fantastic textures they created!)

It only adds three blocks: the namesake Heater, the Heat Pipe, and the new and shiny Thermostat.

Here's what they do.

Heater

As its namesake block, the Heater is this mod's core. Its role is to burn fuel and propagate the generated heat to nearby compatible blocks, such as Furnaces, Blast Furnaces, and Smokers from vanilla Minecraft, but also many other furnace variants from other mods if they are interoperable (see below).

Heater Interface

Heater Interface


Heater Recipe

Heater Recipe

Heat Pipe

The Heat Pipe is a pipe-like block which works as you may imagine. Heat produced by a Heater can travel through it, basically extending the Heater's reach. But be aware that heat can only propagate a certain distance before dissipating, and the oxidization state of the Heat Pipe can only reduce said distance.

Heat Pipe Recipe

Heat Pipe Recipe


The Heat Pipe is entity-free, so you can fully fulfil your pipe dreams without concerns about dropping performances.

Thermostat

Only from version 2.0 forward.

The Thermostat allows heat to propagate only in the direction it is facing and only if powered. When unpowered, it acts like any other heat-inert block.

The Thermostat is also the only block that can "push" heat into a Heater, doubling as a heat repeater of sorts.

Thermostat Recipe

Thermostat Recipe


The Thermostat is entity-free, too.

Interoperability

From Heater 4.0 onwards, I moved the interoperability logic to the Burning library mod, so look there. Spoiler: it's basically the same.

Deprecated

If you don't want to read on, for it does become a bit technical, but found a furnace-like block that you feel Heater should propagate heat to but doesn't, then I invite you to check if an issue regarding said block already exists or, if it doesn't, to open a new one. If you open a new one, I ask you to specify the mod name and possibly a source-code link, the furnace-like block or blocks, and the Minecraft version. Note that if a mod isn't open source, I can do close to nothing to make it compatible.

That said, Heater should be automatically interoperable with any 3rd party mod's block whose entity extends the AbstractFurnaceBlockEntity (as from Mojang mappings) class.

This is because every entity extending such a class has the litTime and litDuration (as from Mojang mappings) fields, which this mod interacts with to propagate heat.

However, some mods (like Heater, paradoxically) don't extend said class for the furnace-like blocks they add but still have two fields that work the same as litTime and litDuration.

To make such blocks interoperable, you can create a data pack containing one or more furnace adapters, as in the following examples.

Data Pack Structure
<datapack>.zip
├── data
│   └── <datapack>
│       └── heater
│           └── adapters
│               └── furnace
│                   └── <block_entity_type_1>.json (content example below)
│                   └── <block_entity_type_2>.json
│                   └── ...
├── pack.mcmeta
└── pack.png (optional)
JSON File Content
// custom_furnace.json
{
    // The id of the 3rd party mod's furnace-like block's entity' type
    "type": "example_mod:custom_furnace_entity_type",
    // The name of the field corresponding in function to `litTime`
    "lit_time": "burnTime",
    // The name of the field corresponding in function to `litDuration`
    "lit_duration": "fuelTime"
}

Modrinth is open source.

main@4b75cb8

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.