All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Cold Sweat

Cold Sweat

by Mikul • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions
Cold Sweat

Cold Sweat is a Vanilla-friendly, deeply customizeable, and performant temperature mod for Minecraft. It leverages an advanced temperature system to give a well-rounded experience, packed with features that help or harm you.

A prepared player can weather the elements of Minecraft's hostile environments, but if you strand yourself in the middle of nowhere, there's no second chance!

Wiki Docs Fair Use

2.4 Release Logo

A dynamic temperature system that is affected by the world and the player (biomes, blocks, items, weather, altitude, etc.)

Items and blocks that help the player survive against the world

Insulate armor to resist the elements

Stay next to blocks to warm up or cool down

The thermometer shows precise temperature

Use waterskins for quick relief or as cooling/heating packs

**

Detailed in-game and file-based configs

Please do not use Configured with this mod Please do not ask for a Fabric port 

~ Special Integration With ~

Serene Seasons

Better Weather (Discontinued)

Biomes O' Plenty

Armor Underwear

Oh, the Biomes You'll Go

Curios

Atmospheric

Environmental

Terralith

Thirst Was Taken

Create

Enhanced Visuals

Vampirism

WW's Overhauled Overworld

WW's Expanded Ecosphere

Weather, Storms, & Tornadoes

In vanilla, every biome has its own temperature. This mod uses that property for the temperature system, which means that this mod should be compatible with almost all modded biomes (given their temperatures are configured correctly ;) ).

~

Cold Sweat

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.20.1
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.1
Neoforge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.x
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.x
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.21.x
Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.19.4
Forge
19h ago 1
1.20.1
Forge Neoforge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.19.4
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.19.4
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
1.19.4
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.20.1
Forge
19h ago 1
1.19.4
Forge
19h ago 1
1.16.5
Forge
19h ago 1
1.18.2
Forge
19h ago 1
1.19.2
Forge
19h ago 1
Re-upload of 2.4.3.1 for 1.20.1, since that file seems to be corrupted
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3.1</span><br><br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li>(1.20 - 1.21) Fixed crash when loading the game without Create installed</li>
</ul>
<br>
</div>
[2.4.3] Cold Sweat 2.4.3 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Overhauled the hearth's spreading algorithm to more evenly distribute its area of effect</span>
<ul style="margin-left: 10px;">
<li>Especially noticeable when being routed through pipes</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The hottest and coldest times of day are now configurable</span>
<ul style="margin-left: 10px;">
<li>Configurable in world.toml as "Hottest Time" and "Coldest Time"</li>
<li>Default to 6000 (noon) and 18000 (midnight) respectively, as they have been</li>
</ul>
</li>
<li>Removed built-in compatibility with Aquamirae and Boatload, as they were problematic in some versions
<ul style="margin-left: 10px;">
<li>This compat was defined purely in JSON configs, so it can be re-added by users if desired</li>
</ul>
</li>
<li>Improved performance when multiple block temperature calculations happen in the same tick</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed advancements not loading</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed the temperature at the world's build limit not being as cold as intended</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed block temperature not working in Sable (Create: Aeronautics) contraptions in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed Create fluid tanks and pipes having unlimited maximum temperature</span></li>
<li>Fixed the hearth's top half being broken when assembled on a Create train</li>
<li>Fixed uncommon crash when loading some armor sets in the creative menu</li>
<li>Fixed item requirements not being checked before applying attributes from insulation</li>
<li>Fixed icebox with smokestack spawning air particles less frequently than intended</li>
<li>Fixed filled waterskins sometimes becoming desynchronized on server/client</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! BlockTemp's "maxEffect(), minTemp(), range() etc. fields have been migrated to methods that receive full world, position, and blockstate context"</span>
<ul style="margin-left: 10px;">
<li>Example: maxEffect() -> getMaxEffect(LivingEntity, Level, BlockPos, BlockState)</li>
<li>This means that these values can be more intelligently calculated rather than effectively being static</li>
<li>The new methods delegate to the old (deprecated) methods by default, so mods that rely on the old system will still work</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.3] Cold Sweat 2.4.3 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Overhauled the hearth's spreading algorithm to more evenly distribute its area of effect</span>
<ul style="margin-left: 10px;">
<li>Especially noticeable when being routed through pipes</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The hottest and coldest times of day are now configurable</span>
<ul style="margin-left: 10px;">
<li>Configurable in world.toml as "Hottest Time" and "Coldest Time"</li>
<li>Default to 6000 (noon) and 18000 (midnight) respectively, as they have been</li>
</ul>
</li>
<li>Removed built-in compatibility with Aquamirae and Boatload, as they were problematic in some versions
<ul style="margin-left: 10px;">
<li>This compat was defined purely in JSON configs, so it can be re-added by users if desired</li>
</ul>
</li>
<li>Improved performance when multiple block temperature calculations happen in the same tick</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed advancements not loading</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed the temperature at the world's build limit not being as cold as intended</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed block temperature not working in Sable (Create: Aeronautics) contraptions in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed Create fluid tanks and pipes having unlimited maximum temperature</span></li>
<li>Fixed the hearth's top half being broken when assembled on a Create train</li>
<li>Fixed uncommon crash when loading some armor sets in the creative menu</li>
<li>Fixed item requirements not being checked before applying attributes from insulation</li>
<li>Fixed icebox with smokestack spawning air particles less frequently than intended</li>
<li>Fixed filled waterskins sometimes becoming desynchronized on server/client</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! BlockTemp's "maxEffect(), minTemp(), range() etc. fields have been migrated to methods that receive full world, position, and blockstate context"</span>
<ul style="margin-left: 10px;">
<li>Example: maxEffect() -> getMaxEffect(LivingEntity, Level, BlockPos, BlockState)</li>
<li>This means that these values can be more intelligently calculated rather than effectively being static</li>
<li>The new methods delegate to the old (deprecated) methods by default, so mods that rely on the old system will still work</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.3] Cold Sweat 2.4.3 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Overhauled the hearth's spreading algorithm to more evenly distribute its area of effect</span>
<ul style="margin-left: 10px;">
<li>Especially noticeable when being routed through pipes</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The hottest and coldest times of day are now configurable</span>
<ul style="margin-left: 10px;">
<li>Configurable in world.toml as "Hottest Time" and "Coldest Time"</li>
<li>Default to 6000 (noon) and 18000 (midnight) respectively, as they have been</li>
</ul>
</li>
<li>Removed built-in compatibility with Aquamirae and Boatload, as they were problematic in some versions
<ul style="margin-left: 10px;">
<li>This compat was defined purely in JSON configs, so it can be re-added by users if desired</li>
</ul>
</li>
<li>Improved performance when multiple block temperature calculations happen in the same tick</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed advancements not loading</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed the temperature at the world's build limit not being as cold as intended</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed block temperature not working in Sable (Create: Aeronautics) contraptions in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed Create fluid tanks and pipes having unlimited maximum temperature</span></li>
<li>Fixed the hearth's top half being broken when assembled on a Create train</li>
<li>Fixed uncommon crash when loading some armor sets in the creative menu</li>
<li>Fixed item requirements not being checked before applying attributes from insulation</li>
<li>Fixed icebox with smokestack spawning air particles less frequently than intended</li>
<li>Fixed filled waterskins sometimes becoming desynchronized on server/client</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! BlockTemp's "maxEffect(), minTemp(), range() etc. fields have been migrated to methods that receive full world, position, and blockstate context"</span>
<ul style="margin-left: 10px;">
<li>Example: maxEffect() -> getMaxEffect(LivingEntity, Level, BlockPos, BlockState)</li>
<li>This means that these values can be more intelligently calculated rather than effectively being static</li>
<li>The new methods delegate to the old (deprecated) methods by default, so mods that rely on the old system will still work</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.3] Cold Sweat 2.4.3 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Overhauled the hearth's spreading algorithm to more evenly distribute its area of effect</span>
<ul style="margin-left: 10px;">
<li>Especially noticeable when being routed through pipes</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The hottest and coldest times of day are now configurable</span>
<ul style="margin-left: 10px;">
<li>Configurable in world.toml as "Hottest Time" and "Coldest Time"</li>
<li>Default to 6000 (noon) and 18000 (midnight) respectively, as they have been</li>
</ul>
</li>
<li>Removed built-in compatibility with Aquamirae and Boatload, as they were problematic in some versions
<ul style="margin-left: 10px;">
<li>This compat was defined purely in JSON configs, so it can be re-added by users if desired</li>
</ul>
</li>
<li>Improved performance when multiple block temperature calculations happen in the same tick</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed advancements not loading</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed the temperature at the world's build limit not being as cold as intended</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed block temperature not working in Sable (Create: Aeronautics) contraptions in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed Create fluid tanks and pipes having unlimited maximum temperature</span></li>
<li>Fixed the hearth's top half being broken when assembled on a Create train</li>
<li>Fixed uncommon crash when loading some armor sets in the creative menu</li>
<li>Fixed item requirements not being checked before applying attributes from insulation</li>
<li>Fixed icebox with smokestack spawning air particles less frequently than intended</li>
<li>Fixed filled waterskins sometimes becoming desynchronized on server/client</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! BlockTemp's "maxEffect(), minTemp(), range() etc. fields have been migrated to methods that receive full world, position, and blockstate context"</span>
<ul style="margin-left: 10px;">
<li>Example: maxEffect() -> getMaxEffect(LivingEntity, Level, BlockPos, BlockState)</li>
<li>This means that these values can be more intelligently calculated rather than effectively being static</li>
<li>The new methods delegate to the old (deprecated) methods by default, so mods that rely on the old system will still work</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.3] Cold Sweat 2.4.3 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.3</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Overhauled the hearth's spreading algorithm to more evenly distribute its area of effect</span>
<ul style="margin-left: 10px;">
<li>Especially noticeable when being routed through pipes</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The hottest and coldest times of day are now configurable</span>
<ul style="margin-left: 10px;">
<li>Configurable in world.toml as "Hottest Time" and "Coldest Time"</li>
<li>Default to 6000 (noon) and 18000 (midnight) respectively, as they have been</li>
</ul>
</li>
<li>Removed built-in compatibility with Aquamirae and Boatload, as they were problematic in some versions
<ul style="margin-left: 10px;">
<li>This compat was defined purely in JSON configs, so it can be re-added by users if desired</li>
</ul>
</li>
<li>Improved performance when multiple block temperature calculations happen in the same tick</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed advancements not loading</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed the temperature at the world's build limit not being as cold as intended</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed block temperature not working in Sable (Create: Aeronautics) contraptions in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed Create fluid tanks and pipes having unlimited maximum temperature</span></li>
<li>Fixed the hearth's top half being broken when assembled on a Create train</li>
<li>Fixed uncommon crash when loading some armor sets in the creative menu</li>
<li>Fixed item requirements not being checked before applying attributes from insulation</li>
<li>Fixed icebox with smokestack spawning air particles less frequently than intended</li>
<li>Fixed filled waterskins sometimes becoming desynchronized on server/client</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! BlockTemp's "maxEffect(), minTemp(), range() etc. fields have been migrated to methods that receive full world, position, and blockstate context"</span>
<ul style="margin-left: 10px;">
<li>Example: maxEffect() -> getMaxEffect(LivingEntity, Level, BlockPos, BlockState)</li>
<li>This means that these values can be more intelligently calculated rather than effectively being static</li>
<li>The new methods delegate to the old (deprecated) methods by default, so mods that rely on the old system will still work</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.2] Cold Sweat 2.4.2 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.2</span><br><br>
<ul style="font-size: 13;">
<li>Updated Spanish translation (thanks Jeshua on GitHub)</li>
<li>Added support for using Immersive Engineering's external heater with boilers and hearths (thanks manhtuan on GitHub)</li>
<li>Updated Thirst Was Taken support to target Thirst Was Reclaimed instead</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16-1.20) Fixed temperature data persisting and/or becoming frozen after dying or changing dimensions</span></li>
<li>(1.19-1.20) Fixed error logs about Cold Sweat packets</li>
<li>(1.16) Fixed structure-related configs not working</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed temperature not emitting from blocks that are part of Sable (Create: Aeronautics) objects</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed KubeJS insulator configs not working properly in some cases</span></li>
<li>Fixed some cases in which tooltips would flicker when hovering over items</li>
</ul>
<br>
</div>
[2.4.2] Cold Sweat 2.4.2 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.2</span><br><br>
<ul style="font-size: 13;">
<li>Updated Spanish translation (thanks Jeshua on GitHub)</li>
<li>Added support for using Immersive Engineering's external heater with boilers and hearths (thanks manhtuan on GitHub)</li>
<li>Updated Thirst Was Taken support to target Thirst Was Reclaimed instead</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16-1.20) Fixed temperature data persisting and/or becoming frozen after dying or changing dimensions</span></li>
<li>(1.19-1.20) Fixed error logs about Cold Sweat packets</li>
<li>(1.16) Fixed structure-related configs not working</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed temperature not emitting from blocks that are part of Sable (Create: Aeronautics) objects</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed KubeJS insulator configs not working properly in some cases</span></li>
<li>Fixed some cases in which tooltips would flicker when hovering over items</li>
</ul>
<br>
</div>
[2.4.2] Cold Sweat 2.4.2 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.2</span><br><br>
<ul style="font-size: 13;">
<li>Updated Spanish translation (thanks Jeshua on GitHub)</li>
<li>Added support for using Immersive Engineering's external heater with boilers and hearths (thanks manhtuan on GitHub)</li>
<li>Updated Thirst Was Taken support to target Thirst Was Reclaimed instead</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16-1.20) Fixed temperature data persisting and/or becoming frozen after dying or changing dimensions</span></li>
<li>(1.19-1.20) Fixed error logs about Cold Sweat packets</li>
<li>(1.16) Fixed structure-related configs not working</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed temperature not emitting from blocks that are part of Sable (Create: Aeronautics) objects</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed KubeJS insulator configs not working properly in some cases</span></li>
<li>Fixed some cases in which tooltips would flicker when hovering over items</li>
</ul>
<br>
</div>
[2.4.2] Cold Sweat 2.4.2 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.2</span><br><br>
<ul style="font-size: 13;">
<li>Updated Spanish translation (thanks Jeshua on GitHub)</li>
<li>Added support for using Immersive Engineering's external heater with boilers and hearths (thanks manhtuan on GitHub)</li>
<li>Updated Thirst Was Taken support to target Thirst Was Reclaimed instead</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16-1.20) Fixed temperature data persisting and/or becoming frozen after dying or changing dimensions</span></li>
<li>(1.19-1.20) Fixed error logs about Cold Sweat packets</li>
<li>(1.16) Fixed structure-related configs not working</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed temperature not emitting from blocks that are part of Sable (Create: Aeronautics) objects</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed KubeJS insulator configs not working properly in some cases</span></li>
<li>Fixed some cases in which tooltips would flicker when hovering over items</li>
</ul>
<br>
</div>
[2.4.2] Cold Sweat 2.4.2 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.2</span><br><br>
<ul style="font-size: 13;">
<li>Updated Spanish translation (thanks Jeshua on GitHub)</li>
<li>Added support for using Immersive Engineering's external heater with boilers and hearths (thanks manhtuan on GitHub)</li>
<li>Updated Thirst Was Taken support to target Thirst Was Reclaimed instead</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16-1.20) Fixed temperature data persisting and/or becoming frozen after dying or changing dimensions</span></li>
<li>(1.19-1.20) Fixed error logs about Cold Sweat packets</li>
<li>(1.16) Fixed structure-related configs not working</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed temperature not emitting from blocks that are part of Sable (Create: Aeronautics) objects</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed KubeJS insulator configs not working properly in some cases</span></li>
<li>Fixed some cases in which tooltips would flicker when hovering over items</li>
</ul>
<br>
</div>
[2.4.1] Cold Sweat 2.4.1 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.1</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added compatibility with Sable (Create: Aeronautics)</span>
<ul style="margin-left: 10px;">
<li>Block temperature and air-conditioning blocks now work like normal when part of contraptions</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Made some changes to chameleons:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons will now shed naturally after 5 minutes of no player interaction</span>
<ul style="margin-left: 15px;">
<li>No items will be dropped if they shed naturally</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new ambient, hurt, and shedding sounds</span></li>
</ul>
</li>
<li>Rivers no longer impact biome temperature</li>
<li><span style="color: #ffffff; font-weight: bold;">Item temperatures how have tooltips explaining their effects, as well as which inventory slots they apply to</span></li>
<li><span style="color: #ffffff; font-weight: bold;">The temperature effects of waterskins are now fully controlled by TOML configs</span>
<ul style="margin-left: 10px;">
<li>Its temperature when held in the player's hotbar is controlled by an Item Temperature config</li>
<li>Its temperature when used/consumed is controlled by a Food Temperature config</li>
</ul>
</li>
<li>Adjusted the temperatures of most blocks to be more extreme</li>
<li>Food temperature JSON and KubeJS configs can now add temperature modifiers to the player
<ul style="margin-left: 10px;">
<li>Refer to the updated documentation for examples</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed soulspring lamps obtained by crafting or upgrading from a pre-2.4 world not draining fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed partially-unimplemented compatibility for Weather, Storms, & Tornadoes mod]</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed crash when inserting a potion into the hearth</span></li>
<li>(1.16-1.19) Fixed the "overflow" insulation tooltip not showing text</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed crash when an air-conditioning block's smokestack is blocked</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed memory leak in which entities that had left the world were not released from memory</span></li>
<li>Fixed clientside lag caused by calculating temperature for other players on servers</li>
<li>Fixed "midpoint" in temperature regions not returning the right temperature</li>
<li>Fixed the player receiving the effects of being in shade when their feet are inside a block</li>
<li>Fixed tempLimit not working for TOML block configs in some cases if the temperature is a negative number</li>
<li>Fixed chameleons sometimes being attacted to players who are not holding tempting items</li>
<li>Fixed chameleons sometimes going invisible when they shouldn't</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! TempModifier.calculate() is no longer called for other players/entities in the world on the clientside</span>
<ul style="margin-left: 10px;">
<li>This dramatically reduces unnecessary clientside load in many cases, as clientside temperature calculations aren't used for anything</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new system for configs, temporarily called "value getters"</span>
<ul style="margin-left: 10px;">
<li>In place of most static values, a function that retrieves data from the entity/item can be defined instead</li>
<li>For example, a food item's temperature can be based on NBT data on the item, rather than being a static number</li>
<li>Some examples of this system can be seen in the new waterskin configs</li>
</ul>
</li>
<li>TempModifiers are now serialized/deserialized via a codec rather than NBTHelper methods
<ul style="margin-left: 10px;">
<li>Old player data will be automatically converted to the new format upon loading</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.1] Cold Sweat 2.4.1 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.1</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added compatibility with Sable (Create: Aeronautics)</span>
<ul style="margin-left: 10px;">
<li>Block temperature and air-conditioning blocks now work like normal when part of contraptions</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Made some changes to chameleons:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons will now shed naturally after 5 minutes of no player interaction</span>
<ul style="margin-left: 15px;">
<li>No items will be dropped if they shed naturally</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new ambient, hurt, and shedding sounds</span></li>
</ul>
</li>
<li>Rivers no longer impact biome temperature</li>
<li><span style="color: #ffffff; font-weight: bold;">Item temperatures how have tooltips explaining their effects, as well as which inventory slots they apply to</span></li>
<li><span style="color: #ffffff; font-weight: bold;">The temperature effects of waterskins are now fully controlled by TOML configs</span>
<ul style="margin-left: 10px;">
<li>Its temperature when held in the player's hotbar is controlled by an Item Temperature config</li>
<li>Its temperature when used/consumed is controlled by a Food Temperature config</li>
</ul>
</li>
<li>Adjusted the temperatures of most blocks to be more extreme</li>
<li>Food temperature JSON and KubeJS configs can now add temperature modifiers to the player
<ul style="margin-left: 10px;">
<li>Refer to the updated documentation for examples</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed soulspring lamps obtained by crafting or upgrading from a pre-2.4 world not draining fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed partially-unimplemented compatibility for Weather, Storms, & Tornadoes mod]</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed crash when inserting a potion into the hearth</span></li>
<li>(1.16-1.19) Fixed the "overflow" insulation tooltip not showing text</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed crash when an air-conditioning block's smokestack is blocked</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed memory leak in which entities that had left the world were not released from memory</span></li>
<li>Fixed clientside lag caused by calculating temperature for other players on servers</li>
<li>Fixed "midpoint" in temperature regions not returning the right temperature</li>
<li>Fixed the player receiving the effects of being in shade when their feet are inside a block</li>
<li>Fixed tempLimit not working for TOML block configs in some cases if the temperature is a negative number</li>
<li>Fixed chameleons sometimes being attacted to players who are not holding tempting items</li>
<li>Fixed chameleons sometimes going invisible when they shouldn't</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! TempModifier.calculate() is no longer called for other players/entities in the world on the clientside</span>
<ul style="margin-left: 10px;">
<li>This dramatically reduces unnecessary clientside load in many cases, as clientside temperature calculations aren't used for anything</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new system for configs, temporarily called "value getters"</span>
<ul style="margin-left: 10px;">
<li>In place of most static values, a function that retrieves data from the entity/item can be defined instead</li>
<li>For example, a food item's temperature can be based on NBT data on the item, rather than being a static number</li>
<li>Some examples of this system can be seen in the new waterskin configs</li>
</ul>
</li>
<li>TempModifiers are now serialized/deserialized via a codec rather than NBTHelper methods
<ul style="margin-left: 10px;">
<li>Old player data will be automatically converted to the new format upon loading</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.1] Cold Sweat 2.4.1 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.1</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added compatibility with Sable (Create: Aeronautics)</span>
<ul style="margin-left: 10px;">
<li>Block temperature and air-conditioning blocks now work like normal when part of contraptions</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Made some changes to chameleons:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons will now shed naturally after 5 minutes of no player interaction</span>
<ul style="margin-left: 15px;">
<li>No items will be dropped if they shed naturally</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new ambient, hurt, and shedding sounds</span></li>
</ul>
</li>
<li>Rivers no longer impact biome temperature</li>
<li><span style="color: #ffffff; font-weight: bold;">Item temperatures how have tooltips explaining their effects, as well as which inventory slots they apply to</span></li>
<li><span style="color: #ffffff; font-weight: bold;">The temperature effects of waterskins are now fully controlled by TOML configs</span>
<ul style="margin-left: 10px;">
<li>Its temperature when held in the player's hotbar is controlled by an Item Temperature config</li>
<li>Its temperature when used/consumed is controlled by a Food Temperature config</li>
</ul>
</li>
<li>Adjusted the temperatures of most blocks to be more extreme</li>
<li>Food temperature JSON and KubeJS configs can now add temperature modifiers to the player
<ul style="margin-left: 10px;">
<li>Refer to the updated documentation for examples</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed soulspring lamps obtained by crafting or upgrading from a pre-2.4 world not draining fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed partially-unimplemented compatibility for Weather, Storms, & Tornadoes mod]</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed crash when inserting a potion into the hearth</span></li>
<li>(1.16-1.19) Fixed the "overflow" insulation tooltip not showing text</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed crash when an air-conditioning block's smokestack is blocked</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed memory leak in which entities that had left the world were not released from memory</span></li>
<li>Fixed clientside lag caused by calculating temperature for other players on servers</li>
<li>Fixed "midpoint" in temperature regions not returning the right temperature</li>
<li>Fixed the player receiving the effects of being in shade when their feet are inside a block</li>
<li>Fixed tempLimit not working for TOML block configs in some cases if the temperature is a negative number</li>
<li>Fixed chameleons sometimes being attacted to players who are not holding tempting items</li>
<li>Fixed chameleons sometimes going invisible when they shouldn't</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! TempModifier.calculate() is no longer called for other players/entities in the world on the clientside</span>
<ul style="margin-left: 10px;">
<li>This dramatically reduces unnecessary clientside load in many cases, as clientside temperature calculations aren't used for anything</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new system for configs, temporarily called "value getters"</span>
<ul style="margin-left: 10px;">
<li>In place of most static values, a function that retrieves data from the entity/item can be defined instead</li>
<li>For example, a food item's temperature can be based on NBT data on the item, rather than being a static number</li>
<li>Some examples of this system can be seen in the new waterskin configs</li>
</ul>
</li>
<li>TempModifiers are now serialized/deserialized via a codec rather than NBTHelper methods
<ul style="margin-left: 10px;">
<li>Old player data will be automatically converted to the new format upon loading</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.1] Cold Sweat 2.4.1 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.1</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added compatibility with Sable (Create: Aeronautics)</span>
<ul style="margin-left: 10px;">
<li>Block temperature and air-conditioning blocks now work like normal when part of contraptions</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Made some changes to chameleons:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons will now shed naturally after 5 minutes of no player interaction</span>
<ul style="margin-left: 15px;">
<li>No items will be dropped if they shed naturally</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new ambient, hurt, and shedding sounds</span></li>
</ul>
</li>
<li>Rivers no longer impact biome temperature</li>
<li><span style="color: #ffffff; font-weight: bold;">Item temperatures how have tooltips explaining their effects, as well as which inventory slots they apply to</span></li>
<li><span style="color: #ffffff; font-weight: bold;">The temperature effects of waterskins are now fully controlled by TOML configs</span>
<ul style="margin-left: 10px;">
<li>Its temperature when held in the player's hotbar is controlled by an Item Temperature config</li>
<li>Its temperature when used/consumed is controlled by a Food Temperature config</li>
</ul>
</li>
<li>Adjusted the temperatures of most blocks to be more extreme</li>
<li>Food temperature JSON and KubeJS configs can now add temperature modifiers to the player
<ul style="margin-left: 10px;">
<li>Refer to the updated documentation for examples</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed soulspring lamps obtained by crafting or upgrading from a pre-2.4 world not draining fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed partially-unimplemented compatibility for Weather, Storms, & Tornadoes mod]</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed crash when inserting a potion into the hearth</span></li>
<li>(1.16-1.19) Fixed the "overflow" insulation tooltip not showing text</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed crash when an air-conditioning block's smokestack is blocked</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed memory leak in which entities that had left the world were not released from memory</span></li>
<li>Fixed clientside lag caused by calculating temperature for other players on servers</li>
<li>Fixed "midpoint" in temperature regions not returning the right temperature</li>
<li>Fixed the player receiving the effects of being in shade when their feet are inside a block</li>
<li>Fixed tempLimit not working for TOML block configs in some cases if the temperature is a negative number</li>
<li>Fixed chameleons sometimes being attacted to players who are not holding tempting items</li>
<li>Fixed chameleons sometimes going invisible when they shouldn't</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! TempModifier.calculate() is no longer called for other players/entities in the world on the clientside</span>
<ul style="margin-left: 10px;">
<li>This dramatically reduces unnecessary clientside load in many cases, as clientside temperature calculations aren't used for anything</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new system for configs, temporarily called "value getters"</span>
<ul style="margin-left: 10px;">
<li>In place of most static values, a function that retrieves data from the entity/item can be defined instead</li>
<li>For example, a food item's temperature can be based on NBT data on the item, rather than being a static number</li>
<li>Some examples of this system can be seen in the new waterskin configs</li>
</ul>
</li>
<li>TempModifiers are now serialized/deserialized via a codec rather than NBTHelper methods
<ul style="margin-left: 10px;">
<li>Old player data will be automatically converted to the new format upon loading</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4.1] Cold Sweat 2.4.1 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4.1</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added compatibility with Sable (Create: Aeronautics)</span>
<ul style="margin-left: 10px;">
<li>Block temperature and air-conditioning blocks now work like normal when part of contraptions</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Made some changes to chameleons:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons will now shed naturally after 5 minutes of no player interaction</span>
<ul style="margin-left: 15px;">
<li>No items will be dropped if they shed naturally</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new ambient, hurt, and shedding sounds</span></li>
</ul>
</li>
<li>Rivers no longer impact biome temperature</li>
<li><span style="color: #ffffff; font-weight: bold;">Item temperatures how have tooltips explaining their effects, as well as which inventory slots they apply to</span></li>
<li><span style="color: #ffffff; font-weight: bold;">The temperature effects of waterskins are now fully controlled by TOML configs</span>
<ul style="margin-left: 10px;">
<li>Its temperature when held in the player's hotbar is controlled by an Item Temperature config</li>
<li>Its temperature when used/consumed is controlled by a Food Temperature config</li>
</ul>
</li>
<li>Adjusted the temperatures of most blocks to be more extreme</li>
<li>Food temperature JSON and KubeJS configs can now add temperature modifiers to the player
<ul style="margin-left: 10px;">
<li>Refer to the updated documentation for examples</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Fixes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed soulspring lamps obtained by crafting or upgrading from a pre-2.4 world not draining fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed partially-unimplemented compatibility for Weather, Storms, & Tornadoes mod]</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed crash when inserting a potion into the hearth</span></li>
<li>(1.16-1.19) Fixed the "overflow" insulation tooltip not showing text</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed crash when an air-conditioning block's smokestack is blocked</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed memory leak in which entities that had left the world were not released from memory</span></li>
<li>Fixed clientside lag caused by calculating temperature for other players on servers</li>
<li>Fixed "midpoint" in temperature regions not returning the right temperature</li>
<li>Fixed the player receiving the effects of being in shade when their feet are inside a block</li>
<li>Fixed tempLimit not working for TOML block configs in some cases if the temperature is a negative number</li>
<li>Fixed chameleons sometimes being attacted to players who are not holding tempting items</li>
<li>Fixed chameleons sometimes going invisible when they shouldn't</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<ul style="font-size: 13;">
<li><span style="color: orange;">! TempModifier.calculate() is no longer called for other players/entities in the world on the clientside</span>
<ul style="margin-left: 10px;">
<li>This dramatically reduces unnecessary clientside load in many cases, as clientside temperature calculations aren't used for anything</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new system for configs, temporarily called "value getters"</span>
<ul style="margin-left: 10px;">
<li>In place of most static values, a function that retrieves data from the entity/item can be defined instead</li>
<li>For example, a food item's temperature can be based on NBT data on the item, rather than being a static number</li>
<li>Some examples of this system can be seen in the new waterskin configs</li>
</ul>
</li>
<li>TempModifiers are now serialized/deserialized via a codec rather than NBTHelper methods
<ul style="margin-left: 10px;">
<li>Old player data will be automatically converted to the new format upon loading</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4] Cold Sweat 2.4 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Mod Compatibility Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added integration with JEI:</span>
<ul style="margin-left: 10px;">
<li>Insulation items have "sewing" recipes, showing how they can be applied to armor</li>
<li>Fuel items for the hearth, boiler, and icebox have recipes showing how long they last</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded/Tweaked integration with Create:</span>
<ul style="margin-left: 10px;">
<li>Pipes and fluid tanks now emit temperature if they contain fluids that emit temperature</li>
<li>Boilers now emit temperature based on the temperature of the water inside them</li>
<li>Blaze burners now emit heat when fueled</li>
<li>The netherite jetpack from Create: Stuff n' Additions now grants 90% heat dampening when the full set is worn</li>
<li>Create's netherite backtank no longer provides cold protection by default</li>
<li>The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
<ul style="margin-left: 15px;">
<li>The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)</li>
</ul>
</li>
</ul>
</li>
<li>Added integration with Iron's Spells & Spellbooks:
<ul style="margin-left: 10px;">
<li>The Frostward and Fireward rings now give buffs that allow the player to survive in colder/hotter climates</li>
</ul>
</li>
<li>Added integration with Boatload:
<ul style="margin-left: 10px;">
<li>Furnace boats now emit temperature if fueled</li>
<li>For parity, furnace minecarts now also emit temperature if fueled</li>
</ul>
</li>
<li>Added integration with Ad Astra:
<ul style="margin-left: 10px;">
<li>This is an updated and fixed port of Mars Popsicle by igalaxy</li>
</ul>
</li>
<li>Added integration with Regions Unexplored:
<ul style="margin-left: 10px;">
<li>Added custom temperatures to many biomes</li>
</ul>
</li>
<li>Added integration with Soul Fire'd:
<ul style="margin-left: 10px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Added integration with some Tough as Nails items:
<ul style="margin-left: 10px;">
<li>Wool armor: provides the same insulation as wool</li>
<li>Leaf armor: provides the same insulation as leather, but with no cold protection</li>
<li>Thermoregulator: now gives warmth & frigidness as a hearth would</li>
</ul>
</li>
<li>Improved Primal Winter support:
<ul style="margin-left: 10px;">
<li>Now respects disabled biomes/dimensions in Primal Winter's config</li>
<li>Only decreases the temperature for configured biomes, since Primal Winter already changes default biome temperatures</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">New armor set: Chameleon Scale:</span>
<ul style="font-size: 13;">
<li>Crafted with chameleon molt in typical armor patterns</li>
<li><span style="color: #ffffff; font-weight: bold;">Visually adapts to the ambient temperature</span></li>
<li>Each armor piece provides 20% more than maximum adaptive insulation</li>
<li>Cannot be insulated in the sewing table</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Smokestack Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The smokestack block can now be placed in all directions</span>
<ul style="margin-left: 10px;">
<li>This allows for creating "pipes" that transport air from the hearth/boiler/icebox</li>
<li>This is a built-in alternative to using Create's pipes, but those still work as well</li>
<li>A smokestack connected on more than one axis (like in corners) will become a "junction", which takes up a full block</li>
<li>Junctions do not allow air to pass around them- only through them via connected smokestacks</li>
<li>A smokestack can be right-clicked with cobblestone to create a junction, which is useful for venting air through walls</li>
<li>The smoke & steam emitted from the thermal sources will travel through the smokestack line and emit from the end(s)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed the smokestack recipe:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">No longer require redstone to craft</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Now gives 4 smokestacks</span>
<ul style="margin-left: 15px;">
<li>This is more efficient with resources and will hopefully clue players into the fact that multiple can be connected together</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Insulation Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Tweaked how the insulation system works:</span>
<ul style="margin-left: 10px;">
<li>Each insulation slot now represents an item, rather than 2 insulation points</li>
<li>This enables more powerful insulation items to take up only one slot</li>
<li>Added custom tooltip graphic for "compound" insulation items</li>
<li>Added new parameter to insulator configs: "fill_slots"
<ul style="margin-left: 15px;">
<li>This will make the insulator take up multiple slots as normal</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Armor now drops its insulation upon breaking</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Armor items that provide built-in insulation can now accept insulation themselves</span>
<ul style="margin-left: 10px;">
<li>Built-in armor insulation can also be configured to either take up the item's available insulation slots, or not</li>
</ul>
</li>
<li>Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
<ul style="margin-left: 10px;">
<li>Added leather and goat fur to the tag by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation-granting armors (leather, hoglin hide, goat fur, chameleon scale) can no longer be sewn into other armor by default</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Increased the amount of insulation provided by leather, hoglin hide, goat fur, and chameleon scale armor when worn by 20%</span>
<ul style="margin-left: 10px;">
<li>This incentivizes players to</li>
</ul>
</li>
<li>Adaptive insulation now adapts at a consistent rate instead of slowing down as it reaches its target</li>
<li>Minecart insulation can now be crafted with fur instead of wool</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Hearth, Boiler & Icebox Changes:</span>
<ul style="font-size: 13;">
<li>The hearth/boiler now emit warm air particles from their smokestacks, rather than smoke</li>
<li>The fuel slot of iceboxes/boilers can no longer be taken from by automation (i.e. hoppers)
<ul style="margin-left: 10px;">
<li>This makes automation easier and more consistent with Vanilla blocks like furnaces</li>
</ul>
</li>
<li>Moved the hearth's fluid intakes to coincide with its fuel inputs</li>
<li><span style="color: #ffffff; font-weight: bold;">The hearth's redstone inputs have been changed:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Heat is now emitted if the left or back side is powered</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Cold is not emitted if the right or bottom side is powered</span></li>
<li>Tweaked the design of the redstone inputs to be more obvious</li>
<li>The redstone inputs are now hidden if "Automatic Hearth" is enabled in the configs</li>
</ul>
</li>
<li>Dried kelp blocks can now be used as fuel in hearths and boilers</li>
<li>Adjusted the fuel values of some items:
<ul style="margin-left: 10px;">
<li>Coal: 37 -> 55</li>
<li>Logs: 37 -> 40</li>
<li>Dried Kelp Block: 92 -> 40</li>
<li>Coal Block: 333 -> 500</li>
<li>Snow Block: 100 -> 40</li>
<li><span style="color: #ffffff; font-weight: bold;">These changes will be applied automatically upon updating</span></li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 10px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Soul Sprout/Stalk Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 10px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul sprouts can now be planted with dispensers</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Removed sticks from the loot table for soul stalk</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 10px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>Soul stalk now generates more commonly in the soul sand valley biome</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Texture Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added new block textures to the hearth for when it is burning hot fuel or has cold fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Redesigned some parts of the hearth, boiler, and icebox GUIs</span>
<ul style="margin-left: 10px;">
<li>New fuel gauge textures that are more in line with Vanilla</li>
<li>Less prominent particle visibility toggle button</li>
<li>Tweaked the position & design of redstone current indicators</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Tweaked sewing table block and GUI textures</span></li>
<li>Tweaked textures for several other things:
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Items:</span>
<ul style="margin-left: 15px;">
<li>Chameleon Molt</li>
<li>Chameleon Scale Armor</li>
<li>Goat Fur Parka</li>
<li>Hoglin Hide Armor</li>
<li>Hearth</li>
<li>Insulated Minecart (very slightly)</li>
<li>These changes are a mix of general design improvements and more closely aligning them with the Vanilla style</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Blocks:</span>
<ul style="margin-left: 15px;">
<li>Boiler, Icebox</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">UI:</span>
<ul style="margin-left: 15px;">
<li>World temperature gauge (both with and without thermometer)</li>
<li>Ice Resistance icon</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Water-Related Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Water droplets are now tinted to the biome's water color</span></li>
<li>Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction</li>
<li>Made water droplets more evenly distributed when the player emerges from water</li>
<li><span style="color: #ffffff; font-weight: bold;">Water droplets no longer display if the player is fully immune to water</span></li>
<li>Tweaked water droplet trails to not be so long in colder temperatures</li>
<li>Added option to change the opacity of water droplets on-screen
<ul style="margin-left: 10px;">
<li>Slightly reduced opacity by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Being wet now extinguishes fire, and being on fire now dries the player</span></li>
<li>Waterskins now make the player wet when poured</li>
<li>Removed the cooldown when filling waterskins</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">World Temperature Changes:</span>
<ul style="font-size: 13;">
<li>The temperature underground is now 60 °F instead of 75 °F</li>
<li>Adjusted the temperature of plains biomes to be warmer at night</li>
<li>Adjusted the temperature of river biomes to match plains biomes</li>
<li>Decreased the temperatures of some cold biomes that generate ice, so the ice doesn't immediately melt</li>
<li><span style="color: #ffffff; font-weight: bold;">Water temperature is now biome-dependent</span>
<ul style="margin-left: 10px;">
<li>Each biome has its own "water_temp" field in JSON</li>
<li>Can also be set in toml by adding a parameter after the "units" parameter</li>
<li>Setting this is optional. If unset, a default water temperature will be used</li>
</ul>
</li>
<li>Temperature changes from shade and overcast mechanics are now handled by a single dedicated temperature modifier
<ul style="margin-left: 10px;">
<li>This change "upgrades" the shade mechanic from being a side-effect of the depth system to a real feature</li>
<li>In turn, the depth system now does not count leaf blocks as solid ground</li>
<li>The temperature effect of shade/overcast can be configured with the "Shade Temperature Offset" setting, which replaces "Overcast Temperature Offset"</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases</span>
<ul style="margin-left: 10px;">
<li>This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective</li>
<li>This should make it more fair as both a tool for warming up and a hazard to avoid</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Player Temperature Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added a new "acclimation" mechanic:</span>
<ul style="margin-left: 10px;">
<li>By spending time in hotter or colder climates, player can now adapt to more comfortably live in them</li>
<li>This causes their livable temperature range to be shifted upward or downward</li>
<li>The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)</li>
<li>Complete acclimation takes about 15 minutes (also configurable)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate</li>
<li>If the player is in a 400°F/200°C area, they will take damage much faster</li>
<li>Wearing insulation slows down the rate of damage</li>
</ul>
</li>
<li>Switching to spectator mode now sets your body temperature to 0</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Misc. Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The heart of the sea inside the soulspring lamp is now animated</span></li>
<li>Changed wording of "it is freezing/sweltering outside" messages to "it is freezing/sweltering here" for more clarity</li>
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Removed "un-crafting" recipes for packed ice and blue ice
<ul style="margin-left: 10px;">
<li>These recipes were arbitrary and could lead to duplication with some mods</li>
</ul>
</li>
<li>The thermometer can now be equipped as a curio by right-clicking</li>
<li><span style="color: #ffffff; font-weight: bold;">Increased ice resistance potion durations:</span>
<ul style="margin-left: 10px;">
<li>Normal length: 90 seconds -> 3 minutes</li>
<li>Extended length: 3 minutes -> 6 minutes</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)</li>
<li>Naturally-generated igloos are no longer warmer inside</li>
<li>Changed the sewing table recipe to be consistent with other workstations (like the smithing table)</li>
<li>If the player is on fire and wet, they will now be extinguished and dried off</li>
<li>Eating temperature-affecting foods now properly replaces the preexisting effect for that item
<ul style="margin-left: 10px;">
<li>i.e. eating a soul sprout will now reset the "coldness" timer if its effect is already active, rather than doing nothing</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Advancement Changes:</span>
<ul style="font-size: 13;">
<li>Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack</li>
<li>The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering</li>
<li>Renamed the "Dressed to Go" advancement to "Dressed for a Quest"</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">UI Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added UI element displaying food temperature effects</span>
<ul style="margin-left: 10px;">
<li>Shows a timer for the effect, and its strength</li>
<li>Has settings for repositioning and toggling like other UI elements</li>
</ul>
</li>
<li>Increased the responsiveness of body temperature UI elements</li>
<li>The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used</li>
<li>The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100</li>
<li>ID Changes:-</li>
<li><span style="color: orange;">! Changed armor item IDs to follow the normal helmet/chestplate/leggings/boots convention</span>
<ul style="margin-left: 10px;">
<li>i.e. cold_sweat:goat_fur_parka is now cold_sweat:goat_fur_chestplate</li>
<li>Old configs targeting these IDs will continue to work, but should be updated when possible</li>
<li>Existing items in worlds will be automatically converted to the new IDs</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Config Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Big improvements to config files:</span>
<ul style="margin-left: 10px;">
<li>Improved the formatting and wording of comments, making them more readable and clear</li>
<li>Improved the spacing between config settings and comments, making it easier to locate specific settings</li>
<li>List-based configs are now formatted vertically with one element per line, rather than all elements on one line
<ul style="margin-left: 15px;">
<li>This behavior is indicated by the "//v" tag at the top of the config's comment. Removing the tag reverts this behavior</li>
<li>Formatting changes take effect upon restarting the game</li>
</ul>
</li>
<li><span style="color: orange;">! Existing configs should be updated automatically, but backing up is recommended</span></li>
<li>TOML configs that take in IDs, like blocks, items, entities, biomes, etc. now support negation (i.e. "!minecraft:stone")
<ul style="margin-left: 15px;">
<li>Most useful when used in lists. Excludes the given ID from having the setting applied to it</li>
<li>Also supports negating tags ("!#minecraft:leaves")</li>
<li>i.e. "#forge:dyes,!minecraft:black_dye" applies to all dyes EXCEPT black dye</li>
</ul>
</li>
<li><span style="color: orange;">! Some config settings have been moved:</span>
<ul style="margin-left: 15px;">
<li>"Require Thermometer": main.toml -> item.toml</li>
<li>"Fire/Ice Resistance Immunity" main.toml -> item.toml</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature":</span>
<ul style="margin-left: 10px;">
<li>TOML: "Carried Item Temperatures" -> "Item Temperatures"</li>
<li><span style="color: #ffffff; font-weight: bold;">TOML configs will be RESET. Please back up TOML configs before updating</span></li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Mod compat for specific mods can now be disabled by using the "disabled_mods" file in the CS config folder</span>
<ul style="margin-left: 10px;">
<li>These mods will still work, but special integration features will not be applied</li>
</ul>
</li>
<li>Insulation tooltips can now be configured to show under specific circumstances (client.toml):
<ul style="margin-left: 10px;">
<li>"always": Always show the tooltip (even for armor items with no insulation)</li>
<li>"if_present": The default behavior. Shows the tooltip only if the item gives or has insulation</li>
<li>"on_shift": Show the insulation tooltip if SHIFT is held (even for armor items with no insulation)</li>
<li>"shift_and_present": Show the tooltip if SHIFT is held AND the item gives or has insulation</li>
<li>"never": Never show the insulation tooltip for any items</li>
</ul>
</li>
<li>The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable (client.toml):
<ul style="margin-left: 10px;">
<li>Both can now be set to either drink or pour, so they can be swapped around or disabled</li>
<li>These settings are in client.toml and are player-specific</li>
</ul>
</li>
<li>Added setting to change how often the player takes damage when overheating/freezing (main.toml)
<ul style="margin-left: 10px;">
<li>This is the base value, which will still be increased when the player is in very extreme temperatures</li>
</ul>
</li>
<li>The "Require Thermometer" and "Fire/Ice Resistance Immunity" settings have been moved to item.toml</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>This includes new settings for changing the blur and camera sway effects from overheating</li>
</ul>
</li>
<li>Changed the name of "Temperature Damage" to "Temp. Damage" so it fits better in the config menu</li>
<li>Rearranged some config settings in the in-game menu to be less cramped and more organized</li>
<li>Default water temperature and soak speed are now configurable (world.toml)
<ul style="margin-left: 10px;">
<li>"Soak speed" controls how fast the player becomes wet</li>
<li>Rain soak speed and water soak speed are individually configurable</li>
</ul>
</li>
<li>Added new configs for the waterskin:
<ul style="margin-left: 10px;">
<li>"Waterskin Hotbar Strength": The strength of the gradual cooling/heating of waterskins in the hotbar</li>
<li>"Waterskin Neutralize Speed": The speed at which waterskins' temperature will drain when in the hotbar</li>
</ul>
</li>
<li>Added option to give filled waterskins more than one use when drinking</li>
<li>Lava temperature is now TOML-based so it can be more easily changed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Command Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat reload"</span>
<ul style="margin-left: 10px;">
<li>Reloads all configs (TOML, JSON, KubeJS) live, without having to rejoin the world or restart the server</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat dumpconfigs"</span>
<ul style="margin-left: 10px;">
<li>Dumps all loaded config data into the "config/coldsweat/dump" directory</li>
<li>Useful for debugging or when making datapacks</li>
</ul>
</li>
<li>The "modify" subcommand for /temperature has been renamed to "attribute"</li>
<li>Added "add" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Increases/Decreases the target's body temperature by the specified amount</li>
</ul>
</li>
<li>Added "modifier" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Enables adding/removing temperature modifiers on entities</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tooltip Changes:</span>
<ul style="font-size: 13;">
<li>Some insulators that require certain criteria now display a hint in their tooltip
<ul style="margin-left: 10px;">
<li>i.e. the Create netherite backtank now has the requirement "Wearing full netherite diving suit" in its tooltip</li>
<li>Implementation of this system is explained in the "Technical Changes" section</li>
</ul>
</li>
<li>When hovering over an insulation item, holding CTRL now shows its exact numerical insulation value</li>
<li><span style="color: #ffffff; font-weight: bold;">Adjusted how the tooltip for filled waterskins is displayed:</span>
<ul style="margin-left: 10px;">
<li>No longer shows water temperature in real-world units. This looks arbitrary when the player's body temperature ranges from -100 to 100</li>
<li>Instead, shows a "When Used" tooltip showing the actual effect it has on your temperature (between -50 and 50 by default)</li>
</ul>
</li>
<li>(1.16) Improved the reliability of tooltip image insertions, especially when other mods are installed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Entity Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons now require player interaction to shed</span>
<ul style="margin-left: 10px;">
<li>This is to inhibit very easy farming by putting a chameleon on top of a hopper</li>
<li>When a chameleon is ready to shed, it will start emitting particles and send a vibration with signal strength 4</li>
<li>When the player right-clicks the chameleon, it will shed chameleon molt as normal
<ul style="margin-left: 15px;">
<li>This can also be done with shears in a dispenser</li>
</ul>
</li>
<li>This change can be reverted by enabling "Chameleons Shed Automatically" in entity.toml</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
<ul style="margin-left: 10px;">
<li><span style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml</span></li>
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system
<ul style="margin-left: 15px;">
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
</ul>
</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li>Entities caught on fire will now heat up the nearby area
<ul style="margin-left: 10px;">
<li>You can also warm yourself up this way!</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">General:</span>
<ul style="font-size: 13;">
<li>Added SimpleTempModifier (cold_sweat:simple), a basic TempModifier controlled by NBT
<ul style="margin-left: 10px;">
<li>Good for use in commands or simple KubeJS implementations</li>
<li>Parameters:
<ul style="margin-left: 15px;">
<li>"Temperature": The value to apply to the entity's temperature</li>
<li>"Operation": Any of: add, subtract, multiply, divide, power, root, set, max, min
<ul style="margin-left: 20px;">
<li>Augment what the modifier does to the entity's temperature</li>
<li>"set" overrides the entity's temperature with the modifier's value</li>
<li>"max" ensures the entity's temperature is >= the modifier's value</li>
<li>"min" ensures the entity's temperature is <= the modifier's value</li>
</ul>
</li>
</ul>
</li>
<li>Changes to the modifier's NBT will be reflected immediately</li>
<li>When modifying the NBT in Java or KubeJS, make sure to call markDirty() so the changes are sent to clients</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tags:</span>
<ul style="font-size: 13;">
<li>Chameleons will now target and eat any entities in the #cold_sweat:chameleon_eats tag</li>
<li>Create backtank pressure now drains if the player has any insulator equipped that is in the #drains_backtank tag and passes its requirements</li>
<li>Added #forge:soul_campfires tag (#c:soul_campfires in NeoForge), which is now used by the block temperature of soul campfires</li>
<li>Blocks which are affected by the "Cold Soul Fire" setting are now controlled by the "forge:soul_fire" tag ("c:soul_fire" in NeoForge)
<ul style="margin-left: 10px;">
<li>Any blocks in this tag will have their temperatures inverted if the setting is enabled</li>
</ul>
</li>
<li>Armor crafting and repair materials are now handled by tags:
<ul style="margin-left: 10px;">
<li>Hoglin: #forge:leathers/hoglin</li>
<li>Goat Fur: #forge:furs/goat</li>
<li>Chameleon: #forge:scales/chameleon</li>
<li>These tags are in the "c" domain in 1.21 (i.e. "c:furs/goat")</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">JSON:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! The "data" field in item JSON configs has been renamed to "item" for consistency with other configs</span></li>
<li><span style="color: orange;">! (1.16) The file structure of JSON registries has changed to match that of other versions:</span>
<ul style="margin-left: 10px;">
<li>Registries are now located in data/<yourmod>/cold_sweat/* (instead of data/cold_sweat/config/*)</li>
<li>This means that JSON registries registered by other mods will have that mod's namespace in their IDs</li>
<li>Datapacks still do not work. This is only for mod developers</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature" (item/carried_temp -> item/item_temp)</span>
<ul style="margin-left: 10px;">
<li>JSON configs will not work until they are put in the new directory. No formatting changes are required</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Some arguments for JSON configs now support a new type "Negatable List":</span>
<ul style="margin-left: 10px;">
<li>Defines a list of "requirements" and "exclusions" which must be met</li>
<li>Example: "entity":{"require":[{"entities":[#minecraft:skeletons]}],"exclude":[{"entities":[minecraft:wither_skeleton]}]}
<ul style="margin-left: 15px;">
<li>Applies to all skeleton types except wither skeletons</li>
</ul>
</li>
<li>Any block, entity, item, or location requirement can be negated in this way (except fields defined within requirements themselves)</li>
<li>The "old" format of these arguments will continue to be supported (i.e. "entity":{"entities":[#minecraft:skeletons]})</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded the registry removal system into a new system called "registry modifiers"</span>
<ul style="margin-left: 10px;">
<li>Registry modifiers can edit the data of existing configs, or disable them like before</li>
<li>A registry modifier contains a list of operations, which support the following:
<ul style="margin-left: 15px;">
<li>"disable": Disables the config (same as before)</li>
<li>"replace": Replaces a field with the given data</li>
<li>"merge": Merges the given data with the existing data, with the new data overwriting the existing data
<ul style="margin-left: 20px;">
<li>If the data contains a list, the new list will be appended to the existing list</li>
</ul>
</li>
<li>"append": Merges the given data without overwriting any existing data
<ul style="margin-left: 20px;">
<li>Does not affect lists</li>
</ul>
</li>
<li>"remove": Removes the specified keys from the config. Also supports removing list elements</li>
</ul>
</li>
<li><span style="color: orange;">! Because this new system introduces formatting changes, existing registry removal configs will need to be updated</span></li>
<li><span style="color: #ffffff; font-weight: bold;">See the documentation for formatting guides and examples</span></li>
</ul>
</li>
<li>The "matches" field in registry modifiers now uses NBT requirements instead of normal NBT
<ul style="margin-left: 10px;">
<li>This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used</li>
</ul>
</li>
<li>Registry modifiers can now choose which config types to target via the "config_type" field
<ul style="margin-left: 10px;">
<li>Accepts a list of strings ("toml", "json", or "kubejs")</li>
</ul>
</li>
<li>Registry modifiers now support targeting JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
<ul style="margin-left: 10px;">
<li>This does not work for TOML or KubeJS configs, as they do not have registry IDs</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">JSON configs can now use a wildcard "*" to apply to all objects in a registry</span>
<ul style="margin-left: 10px;">
<li>i.e. {"items": ["*"]} applies to all items</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The "items" field in JSON item requirements, and "entities" field in entity requirements, are now required</span>
<ul style="margin-left: 10px;">
<li>This is because configs now do nothing if these fields are empty</li>
</ul>
</li>
<li>Enum-type config fields in JSON are now case-insensitive (previously required lower-case)
<ul style="margin-left: 10px;">
<li>Examples of field types affected:
<ul style="margin-left: 15px;">
<li>Temperature Units (i.e. "f", "C", "Mc")</li>
<li>Temperature Type (i.e. "world", "CORE", "fReEzInG_pOiNt")</li>
<li>Config Type (i.e. "toml", "JSON", "KubeJS")</li>
<li>Slot Type (i.e. "head", "CHEST", "Inventory")</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation item configs now accept a list of insulation</span>
<ul style="margin-left: 10px;">
<li>This allows for adding multiple types (or slots) of insulation to a single item</li>
<li>Example: "insulation": [{"cold": 1, "hot": 0}, {"cold": 1, "hot": 0} (occupies 2 slots with lesser cold insulation)</li>
<li>Defining a single insulation is still allowed as to not break existing JSON</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "world temp" requirement for JSON</span>
<ul style="margin-left: 10px;">
<li>Accepts decimal values</li>
<li>Also accepts some preset string values:
<ul style="margin-left: 15px;">
<li>"freezing", "cold", "cool", "temperate", "warm", "hot", "burning"</li>
<li>Ordered from coldest to hottest. Based on the min/max temperature config settings</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Now used in the min/max_temp fields in block temperature JSON</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Added as "world temp bounds" to location requirement JSON:</span>
<ul style="margin-left: 15px;">
<li>Has min/max values, each of which is a world temp requirement</li>
</ul>
</li>
</ul>
</li>
<li>Block temperature JSON configs can now be added to "effect groups"
<ul style="margin-left: 10px;">
<li>Block temperatures in an effect group will count towards each other's max effect limits</li>
<li>i.e. if redstone lamps and copper bulbs are part of the same group, redstone lamps will count towards the max number of copper bulbs and vice-versa</li>
<li>Implemented via the "effect_group" field in block temperature JSON configs
<ul style="margin-left: 15px;">
<li>This field takes in a tag ID containing block temps (i.e. "yourpack:yourtag" [no #hashtag])</li>
<li>Add your block temp tag to data/<yourpack>/tags/cold_sweat/block/block_temp/<yourtag>.json</li>
<li>Include the IDs of the block temps in the tag (i.e. "yourpack:your_block_temp")</li>
</ul>
</li>
</ul>
</li>
<li>The min/max temperature fields in block temperature JSON are now world temp requirements</li>
<li>Added "temperature" field to location requirement</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added a "hint" field that takes two optional arguments:
<ul style="margin-left: 15px;">
<li>"text": Display static text</li>
<li>"key": Use a translation key</li>
<li>Usage: "hint": {"text": "Wearing full iron armor", "key": "tooltip.cold_sweat.example"}</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "key" will be tried first and "text" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added optional "affects_self" field to entity temperature JSON configs
<ul style="margin-left: 10px;">
<li>This will cause the entity to be affected by its own temperature (defaults to "false")</li>
</ul>
</li>
<li>Added optional fields "count" and "location" to entity spawn biome configs:
<ul style="margin-left: 10px;">
<li>"count": The number of entities that can spawn in a group</li>
<li>"location": A negatable list of location requirements that must be met for the entity to spawn</li>
</ul>
</li>
<li>Added optional "location" field to block temperature JSON</li>
<li>Added new field to insulator configs: "fill_slots"
<ul style="margin-left: 10px;">
<li>This will make the insulator take up multiple slots if its total insulation is more than 2 (reverts the new "one item per slot" system)</li>
<li>This is "true" by default</li>
</ul>
</li>
<li>(1.20-) Added new type-specific entity requirements (ported from 1.21):
<ul style="margin-left: 10px;">
<li>(1.18+) "variant": Checks the entity's variant (cat color, axolotl color, etc.)</li>
<li>"fishing_hook": Checks if the fishing bobber entity is in open water (this is a Vanilla thing, IDK)</li>
<li>(1.18+) "lightning_bolt": Checks blocks set on fire and entities struck by the lightning</li>
<li>"piglin_neutral_armor": Checks if the entity is wearing armor that pacifies piglins</li>
<li>"player": Checks player-specific data (game mode, stats, advancements, etc.)</li>
<li>"raider": Checks pillager-specific data (part of an active raid, is the raid captain)</li>
<li>"slime": Checks the size of the slime</li>
<li>(1.18+) "snow_boots": Checks if the player is wearing boots that prevent falling through powder snow</li>
</ul>
</li>
<li>All JSON configs that start with the word "default" will be loaded last, rather than just the ones named "default"</li>
<li>Insulating mount JSON now has an "immune_temp_modifiers" field, similar to insulator items</li>
<li>The "cold_insulation" and "heat_insulation" fields in insulating mount JSON are now optional (defaulting to 0)</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])</li>
<li><span style="color: orange;">! Formatting changes to numerical ranges in NBT</span>
<ul style="margin-left: 10px;">
<li>Now separated by a colon (:) instead of a hyphen (-)
<ul style="margin-left: 15px;">
<li>This is to enable the use of negative numbers, which was previously not possible</li>
<li>Example: {"Damage": "5-10"} -> {"Damage": "5:10"}</li>
</ul>
</li>
<li>Now support boundless ranges
<ul style="margin-left: 15px;">
<li>Example: {"Damage": "5:"} means 5 or more, {"Damage": ":10"} means 10 or less</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">KubeJS:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature"</span>
<ul style="margin-left: 10px;">
<li>In ModRegistriesEvent: addCarriedItemTemperature() -> addItemTemperature()</li>
</ul>
</li>
<li>Added entity temperature, spawn biome, and insulating mount configs support to KubeJS</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added "hintText" and "hintKey" methods to insulator builders:
<ul style="margin-left: 15px;">
<li>hintText: Text to be displayed</li>
<li>hintKey: A translation key for the text to be displayed</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "hintKey" will be tried first and "hintText" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)</li>
<li>KubeJS configs are now passed through the normal config pipeline
<ul style="margin-left: 10px;">
<li>They are now present in CreateRegistriesEvent</li>
<li>They can now be targeted by registry modifiers</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Java:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Custom Cold Sweat registries are now officially unsupported in 1.18</span>
<ul style="margin-left: 10px;">
<li>This is because 1.18's registry loading system disallows initializing registries outside the standard time during mod loading</li>
<li>Because not all mods have been loaded yet at this stage, there is no guarantee that all registries will load successfully</li>
</ul>
</li>
<li><span style="color: orange;">! Rearranged/simplified some methods in ItemInsulationManager</span>
<ul style="margin-left: 10px;">
<li>Some methods have been removed or renamed. See the code for details</li>
</ul>
</li>
<li><span style="color: orange;">! Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 10px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 10px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 10px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Temperature effects are now a modular system</span>
<ul style="margin-left: 10px;">
<li>Added a new TempEffect Forge (Java-based) registry</li>
<li>Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect</li>
<li>TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
<ul style="margin-left: 15px;">
<li>i.e. health freezes over if the player's temperature is between -50 and -100</li>
</ul>
</li>
<li>This system will be expanded upon and more thoroughly documented in the future</li>
</ul>
</li>
<li>TemperatureChangedEvent now fires every time an entity's temperature changes, instead of only when it is changed manually</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 10px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 10px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise but more performant than getTemperatureAt()</li>
</ul>
</li>
<li>CreateRegistriesEvent has been broken up into two events:
<ul style="margin-left: 10px;">
<li>AddRegistriesEvent: Fires right before Cold Sweat registers its registries to Minecraft's datapack system.
<ul style="margin-left: 15px;">
<li>Use this event to make new registries. They will now be properly registered as Minecraft registries</li>
</ul>
</li>
<li>LoadRegistriesEvent: Drop-in replacement for CreateRegistriesEvent. Has Pre/Post sub-classes that fire at the same stages of registry loading</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Custom registries are now initialized during startup immediately after mods are loaded, instead of upon joining a world/server</span></li>
<li>registerByClassName() in TempModifierRegisterEvent now accepts constructor arguments as its last parameter (varargs)
<ul style="margin-left: 10px;">
<li>These arguments will be passed to the constructor of the modifier class upon creation</li>
</ul>
</li>
<li>Added new methods to TempModifier that fire when they are are added/removed on an entity:
<ul style="margin-left: 10px;">
<li>onAdded/onRemoved: Fires on the TempModifier immediately when it is added/removed</li>
<li>onSiblingAdded/onSiblingRemoved: Fires on all other TempModifiers applied to a trait when a new modifier is added/removed</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4] Cold Sweat 2.4 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Mod Compatibility Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added integration with JEI:</span>
<ul style="margin-left: 10px;">
<li>Insulation items have "sewing" recipes, showing how they can be applied to armor</li>
<li>Fuel items for the hearth, boiler, and icebox have recipes showing how long they last</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded/Tweaked integration with Create:</span>
<ul style="margin-left: 10px;">
<li>Pipes and fluid tanks now emit temperature if they contain fluids that emit temperature</li>
<li>Boilers now emit temperature based on the temperature of the water inside them</li>
<li>Blaze burners now emit heat when fueled</li>
<li>The netherite jetpack from Create: Stuff n' Additions now grants 90% heat dampening when the full set is worn</li>
<li>Create's netherite backtank no longer provides cold protection by default</li>
<li>The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
<ul style="margin-left: 15px;">
<li>The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)</li>
</ul>
</li>
</ul>
</li>
<li>Added integration with Iron's Spells & Spellbooks:
<ul style="margin-left: 10px;">
<li>The Frostward and Fireward rings now give buffs that allow the player to survive in colder/hotter climates</li>
</ul>
</li>
<li>Added integration with Boatload:
<ul style="margin-left: 10px;">
<li>Furnace boats now emit temperature if fueled</li>
<li>For parity, furnace minecarts now also emit temperature if fueled</li>
</ul>
</li>
<li>Added integration with Ad Astra:
<ul style="margin-left: 10px;">
<li>This is an updated and fixed port of Mars Popsicle by igalaxy</li>
</ul>
</li>
<li>Added integration with Regions Unexplored:
<ul style="margin-left: 10px;">
<li>Added custom temperatures to many biomes</li>
</ul>
</li>
<li>Added integration with Soul Fire'd:
<ul style="margin-left: 10px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Added integration with some Tough as Nails items:
<ul style="margin-left: 10px;">
<li>Wool armor: provides the same insulation as wool</li>
<li>Leaf armor: provides the same insulation as leather, but with no cold protection</li>
<li>Thermoregulator: now gives warmth & frigidness as a hearth would</li>
</ul>
</li>
<li>Improved Primal Winter support:
<ul style="margin-left: 10px;">
<li>Now respects disabled biomes/dimensions in Primal Winter's config</li>
<li>Only decreases the temperature for configured biomes, since Primal Winter already changes default biome temperatures</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">New armor set: Chameleon Scale:</span>
<ul style="font-size: 13;">
<li>Crafted with chameleon molt in typical armor patterns</li>
<li><span style="color: #ffffff; font-weight: bold;">Visually adapts to the ambient temperature</span></li>
<li>Each armor piece provides 20% more than maximum adaptive insulation</li>
<li>Cannot be insulated in the sewing table</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Smokestack Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The smokestack block can now be placed in all directions</span>
<ul style="margin-left: 10px;">
<li>This allows for creating "pipes" that transport air from the hearth/boiler/icebox</li>
<li>This is a built-in alternative to using Create's pipes, but those still work as well</li>
<li>A smokestack connected on more than one axis (like in corners) will become a "junction", which takes up a full block</li>
<li>Junctions do not allow air to pass around them- only through them via connected smokestacks</li>
<li>A smokestack can be right-clicked with cobblestone to create a junction, which is useful for venting air through walls</li>
<li>The smoke & steam emitted from the thermal sources will travel through the smokestack line and emit from the end(s)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed the smokestack recipe:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">No longer require redstone to craft</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Now gives 4 smokestacks</span>
<ul style="margin-left: 15px;">
<li>This is more efficient with resources and will hopefully clue players into the fact that multiple can be connected together</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Insulation Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Tweaked how the insulation system works:</span>
<ul style="margin-left: 10px;">
<li>Each insulation slot now represents an item, rather than 2 insulation points</li>
<li>This enables more powerful insulation items to take up only one slot</li>
<li>Added custom tooltip graphic for "compound" insulation items</li>
<li>Added new parameter to insulator configs: "fill_slots"
<ul style="margin-left: 15px;">
<li>This will make the insulator take up multiple slots as normal</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Armor now drops its insulation upon breaking</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Armor items that provide built-in insulation can now accept insulation themselves</span>
<ul style="margin-left: 10px;">
<li>Built-in armor insulation can also be configured to either take up the item's available insulation slots, or not</li>
</ul>
</li>
<li>Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
<ul style="margin-left: 10px;">
<li>Added leather and goat fur to the tag by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation-granting armors (leather, hoglin hide, goat fur, chameleon scale) can no longer be sewn into other armor by default</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Increased the amount of insulation provided by leather, hoglin hide, goat fur, and chameleon scale armor when worn by 20%</span>
<ul style="margin-left: 10px;">
<li>This incentivizes players to</li>
</ul>
</li>
<li>Adaptive insulation now adapts at a consistent rate instead of slowing down as it reaches its target</li>
<li>Minecart insulation can now be crafted with fur instead of wool</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Hearth, Boiler & Icebox Changes:</span>
<ul style="font-size: 13;">
<li>The hearth/boiler now emit warm air particles from their smokestacks, rather than smoke</li>
<li>The fuel slot of iceboxes/boilers can no longer be taken from by automation (i.e. hoppers)
<ul style="margin-left: 10px;">
<li>This makes automation easier and more consistent with Vanilla blocks like furnaces</li>
</ul>
</li>
<li>Moved the hearth's fluid intakes to coincide with its fuel inputs</li>
<li><span style="color: #ffffff; font-weight: bold;">The hearth's redstone inputs have been changed:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Heat is now emitted if the left or back side is powered</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Cold is not emitted if the right or bottom side is powered</span></li>
<li>Tweaked the design of the redstone inputs to be more obvious</li>
<li>The redstone inputs are now hidden if "Automatic Hearth" is enabled in the configs</li>
</ul>
</li>
<li>Dried kelp blocks can now be used as fuel in hearths and boilers</li>
<li>Adjusted the fuel values of some items:
<ul style="margin-left: 10px;">
<li>Coal: 37 -> 55</li>
<li>Logs: 37 -> 40</li>
<li>Dried Kelp Block: 92 -> 40</li>
<li>Coal Block: 333 -> 500</li>
<li>Snow Block: 100 -> 40</li>
<li><span style="color: #ffffff; font-weight: bold;">These changes will be applied automatically upon updating</span></li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 10px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Soul Sprout/Stalk Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 10px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul sprouts can now be planted with dispensers</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Removed sticks from the loot table for soul stalk</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 10px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>Soul stalk now generates more commonly in the soul sand valley biome</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Texture Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added new block textures to the hearth for when it is burning hot fuel or has cold fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Redesigned some parts of the hearth, boiler, and icebox GUIs</span>
<ul style="margin-left: 10px;">
<li>New fuel gauge textures that are more in line with Vanilla</li>
<li>Less prominent particle visibility toggle button</li>
<li>Tweaked the position & design of redstone current indicators</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Tweaked sewing table block and GUI textures</span></li>
<li>Tweaked textures for several other things:
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Items:</span>
<ul style="margin-left: 15px;">
<li>Chameleon Molt</li>
<li>Chameleon Scale Armor</li>
<li>Goat Fur Parka</li>
<li>Hoglin Hide Armor</li>
<li>Hearth</li>
<li>Insulated Minecart (very slightly)</li>
<li>These changes are a mix of general design improvements and more closely aligning them with the Vanilla style</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Blocks:</span>
<ul style="margin-left: 15px;">
<li>Boiler, Icebox</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">UI:</span>
<ul style="margin-left: 15px;">
<li>World temperature gauge (both with and without thermometer)</li>
<li>Ice Resistance icon</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Water-Related Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Water droplets are now tinted to the biome's water color</span></li>
<li>Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction</li>
<li>Made water droplets more evenly distributed when the player emerges from water</li>
<li><span style="color: #ffffff; font-weight: bold;">Water droplets no longer display if the player is fully immune to water</span></li>
<li>Tweaked water droplet trails to not be so long in colder temperatures</li>
<li>Added option to change the opacity of water droplets on-screen
<ul style="margin-left: 10px;">
<li>Slightly reduced opacity by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Being wet now extinguishes fire, and being on fire now dries the player</span></li>
<li>Waterskins now make the player wet when poured</li>
<li>Removed the cooldown when filling waterskins</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">World Temperature Changes:</span>
<ul style="font-size: 13;">
<li>The temperature underground is now 60 °F instead of 75 °F</li>
<li>Adjusted the temperature of plains biomes to be warmer at night</li>
<li>Adjusted the temperature of river biomes to match plains biomes</li>
<li>Decreased the temperatures of some cold biomes that generate ice, so the ice doesn't immediately melt</li>
<li><span style="color: #ffffff; font-weight: bold;">Water temperature is now biome-dependent</span>
<ul style="margin-left: 10px;">
<li>Each biome has its own "water_temp" field in JSON</li>
<li>Can also be set in toml by adding a parameter after the "units" parameter</li>
<li>Setting this is optional. If unset, a default water temperature will be used</li>
</ul>
</li>
<li>Temperature changes from shade and overcast mechanics are now handled by a single dedicated temperature modifier
<ul style="margin-left: 10px;">
<li>This change "upgrades" the shade mechanic from being a side-effect of the depth system to a real feature</li>
<li>In turn, the depth system now does not count leaf blocks as solid ground</li>
<li>The temperature effect of shade/overcast can be configured with the "Shade Temperature Offset" setting, which replaces "Overcast Temperature Offset"</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases</span>
<ul style="margin-left: 10px;">
<li>This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective</li>
<li>This should make it more fair as both a tool for warming up and a hazard to avoid</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Player Temperature Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added a new "acclimation" mechanic:</span>
<ul style="margin-left: 10px;">
<li>By spending time in hotter or colder climates, player can now adapt to more comfortably live in them</li>
<li>This causes their livable temperature range to be shifted upward or downward</li>
<li>The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)</li>
<li>Complete acclimation takes about 15 minutes (also configurable)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate</li>
<li>If the player is in a 400°F/200°C area, they will take damage much faster</li>
<li>Wearing insulation slows down the rate of damage</li>
</ul>
</li>
<li>Switching to spectator mode now sets your body temperature to 0</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Misc. Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The heart of the sea inside the soulspring lamp is now animated</span></li>
<li>Changed wording of "it is freezing/sweltering outside" messages to "it is freezing/sweltering here" for more clarity</li>
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Removed "un-crafting" recipes for packed ice and blue ice
<ul style="margin-left: 10px;">
<li>These recipes were arbitrary and could lead to duplication with some mods</li>
</ul>
</li>
<li>The thermometer can now be equipped as a curio by right-clicking</li>
<li><span style="color: #ffffff; font-weight: bold;">Increased ice resistance potion durations:</span>
<ul style="margin-left: 10px;">
<li>Normal length: 90 seconds -> 3 minutes</li>
<li>Extended length: 3 minutes -> 6 minutes</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)</li>
<li>Naturally-generated igloos are no longer warmer inside</li>
<li>Changed the sewing table recipe to be consistent with other workstations (like the smithing table)</li>
<li>If the player is on fire and wet, they will now be extinguished and dried off</li>
<li>Eating temperature-affecting foods now properly replaces the preexisting effect for that item
<ul style="margin-left: 10px;">
<li>i.e. eating a soul sprout will now reset the "coldness" timer if its effect is already active, rather than doing nothing</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Advancement Changes:</span>
<ul style="font-size: 13;">
<li>Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack</li>
<li>The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering</li>
<li>Renamed the "Dressed to Go" advancement to "Dressed for a Quest"</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">UI Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added UI element displaying food temperature effects</span>
<ul style="margin-left: 10px;">
<li>Shows a timer for the effect, and its strength</li>
<li>Has settings for repositioning and toggling like other UI elements</li>
</ul>
</li>
<li>Increased the responsiveness of body temperature UI elements</li>
<li>The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used</li>
<li>The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100</li>
<li>ID Changes:-</li>
<li><span style="color: orange;">! Changed armor item IDs to follow the normal helmet/chestplate/leggings/boots convention</span>
<ul style="margin-left: 10px;">
<li>i.e. cold_sweat:goat_fur_parka is now cold_sweat:goat_fur_chestplate</li>
<li>Old configs targeting these IDs will continue to work, but should be updated when possible</li>
<li>Existing items in worlds will be automatically converted to the new IDs</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Config Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Big improvements to config files:</span>
<ul style="margin-left: 10px;">
<li>Improved the formatting and wording of comments, making them more readable and clear</li>
<li>Improved the spacing between config settings and comments, making it easier to locate specific settings</li>
<li>List-based configs are now formatted vertically with one element per line, rather than all elements on one line
<ul style="margin-left: 15px;">
<li>This behavior is indicated by the "//v" tag at the top of the config's comment. Removing the tag reverts this behavior</li>
<li>Formatting changes take effect upon restarting the game</li>
</ul>
</li>
<li><span style="color: orange;">! Existing configs should be updated automatically, but backing up is recommended</span></li>
<li>TOML configs that take in IDs, like blocks, items, entities, biomes, etc. now support negation (i.e. "!minecraft:stone")
<ul style="margin-left: 15px;">
<li>Most useful when used in lists. Excludes the given ID from having the setting applied to it</li>
<li>Also supports negating tags ("!#minecraft:leaves")</li>
<li>i.e. "#forge:dyes,!minecraft:black_dye" applies to all dyes EXCEPT black dye</li>
</ul>
</li>
<li><span style="color: orange;">! Some config settings have been moved:</span>
<ul style="margin-left: 15px;">
<li>"Require Thermometer": main.toml -> item.toml</li>
<li>"Fire/Ice Resistance Immunity" main.toml -> item.toml</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature":</span>
<ul style="margin-left: 10px;">
<li>TOML: "Carried Item Temperatures" -> "Item Temperatures"</li>
<li><span style="color: #ffffff; font-weight: bold;">TOML configs will be RESET. Please back up TOML configs before updating</span></li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Mod compat for specific mods can now be disabled by using the "disabled_mods" file in the CS config folder</span>
<ul style="margin-left: 10px;">
<li>These mods will still work, but special integration features will not be applied</li>
</ul>
</li>
<li>Insulation tooltips can now be configured to show under specific circumstances (client.toml):
<ul style="margin-left: 10px;">
<li>"always": Always show the tooltip (even for armor items with no insulation)</li>
<li>"if_present": The default behavior. Shows the tooltip only if the item gives or has insulation</li>
<li>"on_shift": Show the insulation tooltip if SHIFT is held (even for armor items with no insulation)</li>
<li>"shift_and_present": Show the tooltip if SHIFT is held AND the item gives or has insulation</li>
<li>"never": Never show the insulation tooltip for any items</li>
</ul>
</li>
<li>The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable (client.toml):
<ul style="margin-left: 10px;">
<li>Both can now be set to either drink or pour, so they can be swapped around or disabled</li>
<li>These settings are in client.toml and are player-specific</li>
</ul>
</li>
<li>Added setting to change how often the player takes damage when overheating/freezing (main.toml)
<ul style="margin-left: 10px;">
<li>This is the base value, which will still be increased when the player is in very extreme temperatures</li>
</ul>
</li>
<li>The "Require Thermometer" and "Fire/Ice Resistance Immunity" settings have been moved to item.toml</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>This includes new settings for changing the blur and camera sway effects from overheating</li>
</ul>
</li>
<li>Changed the name of "Temperature Damage" to "Temp. Damage" so it fits better in the config menu</li>
<li>Rearranged some config settings in the in-game menu to be less cramped and more organized</li>
<li>Default water temperature and soak speed are now configurable (world.toml)
<ul style="margin-left: 10px;">
<li>"Soak speed" controls how fast the player becomes wet</li>
<li>Rain soak speed and water soak speed are individually configurable</li>
</ul>
</li>
<li>Added new configs for the waterskin:
<ul style="margin-left: 10px;">
<li>"Waterskin Hotbar Strength": The strength of the gradual cooling/heating of waterskins in the hotbar</li>
<li>"Waterskin Neutralize Speed": The speed at which waterskins' temperature will drain when in the hotbar</li>
</ul>
</li>
<li>Added option to give filled waterskins more than one use when drinking</li>
<li>Lava temperature is now TOML-based so it can be more easily changed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Command Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat reload"</span>
<ul style="margin-left: 10px;">
<li>Reloads all configs (TOML, JSON, KubeJS) live, without having to rejoin the world or restart the server</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat dumpconfigs"</span>
<ul style="margin-left: 10px;">
<li>Dumps all loaded config data into the "config/coldsweat/dump" directory</li>
<li>Useful for debugging or when making datapacks</li>
</ul>
</li>
<li>The "modify" subcommand for /temperature has been renamed to "attribute"</li>
<li>Added "add" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Increases/Decreases the target's body temperature by the specified amount</li>
</ul>
</li>
<li>Added "modifier" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Enables adding/removing temperature modifiers on entities</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tooltip Changes:</span>
<ul style="font-size: 13;">
<li>Some insulators that require certain criteria now display a hint in their tooltip
<ul style="margin-left: 10px;">
<li>i.e. the Create netherite backtank now has the requirement "Wearing full netherite diving suit" in its tooltip</li>
<li>Implementation of this system is explained in the "Technical Changes" section</li>
</ul>
</li>
<li>When hovering over an insulation item, holding CTRL now shows its exact numerical insulation value</li>
<li><span style="color: #ffffff; font-weight: bold;">Adjusted how the tooltip for filled waterskins is displayed:</span>
<ul style="margin-left: 10px;">
<li>No longer shows water temperature in real-world units. This looks arbitrary when the player's body temperature ranges from -100 to 100</li>
<li>Instead, shows a "When Used" tooltip showing the actual effect it has on your temperature (between -50 and 50 by default)</li>
</ul>
</li>
<li>(1.16) Improved the reliability of tooltip image insertions, especially when other mods are installed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Entity Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons now require player interaction to shed</span>
<ul style="margin-left: 10px;">
<li>This is to inhibit very easy farming by putting a chameleon on top of a hopper</li>
<li>When a chameleon is ready to shed, it will start emitting particles and send a vibration with signal strength 4</li>
<li>When the player right-clicks the chameleon, it will shed chameleon molt as normal
<ul style="margin-left: 15px;">
<li>This can also be done with shears in a dispenser</li>
</ul>
</li>
<li>This change can be reverted by enabling "Chameleons Shed Automatically" in entity.toml</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
<ul style="margin-left: 10px;">
<li><span style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml</span></li>
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system
<ul style="margin-left: 15px;">
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
</ul>
</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li>Entities caught on fire will now heat up the nearby area
<ul style="margin-left: 10px;">
<li>You can also warm yourself up this way!</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">General:</span>
<ul style="font-size: 13;">
<li>Added SimpleTempModifier (cold_sweat:simple), a basic TempModifier controlled by NBT
<ul style="margin-left: 10px;">
<li>Good for use in commands or simple KubeJS implementations</li>
<li>Parameters:
<ul style="margin-left: 15px;">
<li>"Temperature": The value to apply to the entity's temperature</li>
<li>"Operation": Any of: add, subtract, multiply, divide, power, root, set, max, min
<ul style="margin-left: 20px;">
<li>Augment what the modifier does to the entity's temperature</li>
<li>"set" overrides the entity's temperature with the modifier's value</li>
<li>"max" ensures the entity's temperature is >= the modifier's value</li>
<li>"min" ensures the entity's temperature is <= the modifier's value</li>
</ul>
</li>
</ul>
</li>
<li>Changes to the modifier's NBT will be reflected immediately</li>
<li>When modifying the NBT in Java or KubeJS, make sure to call markDirty() so the changes are sent to clients</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tags:</span>
<ul style="font-size: 13;">
<li>Chameleons will now target and eat any entities in the #cold_sweat:chameleon_eats tag</li>
<li>Create backtank pressure now drains if the player has any insulator equipped that is in the #drains_backtank tag and passes its requirements</li>
<li>Added #forge:soul_campfires tag (#c:soul_campfires in NeoForge), which is now used by the block temperature of soul campfires</li>
<li>Blocks which are affected by the "Cold Soul Fire" setting are now controlled by the "forge:soul_fire" tag ("c:soul_fire" in NeoForge)
<ul style="margin-left: 10px;">
<li>Any blocks in this tag will have their temperatures inverted if the setting is enabled</li>
</ul>
</li>
<li>Armor crafting and repair materials are now handled by tags:
<ul style="margin-left: 10px;">
<li>Hoglin: #forge:leathers/hoglin</li>
<li>Goat Fur: #forge:furs/goat</li>
<li>Chameleon: #forge:scales/chameleon</li>
<li>These tags are in the "c" domain in 1.21 (i.e. "c:furs/goat")</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">JSON:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! The "data" field in item JSON configs has been renamed to "item" for consistency with other configs</span></li>
<li><span style="color: orange;">! (1.16) The file structure of JSON registries has changed to match that of other versions:</span>
<ul style="margin-left: 10px;">
<li>Registries are now located in data/<yourmod>/cold_sweat/* (instead of data/cold_sweat/config/*)</li>
<li>This means that JSON registries registered by other mods will have that mod's namespace in their IDs</li>
<li>Datapacks still do not work. This is only for mod developers</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature" (item/carried_temp -> item/item_temp)</span>
<ul style="margin-left: 10px;">
<li>JSON configs will not work until they are put in the new directory. No formatting changes are required</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Some arguments for JSON configs now support a new type "Negatable List":</span>
<ul style="margin-left: 10px;">
<li>Defines a list of "requirements" and "exclusions" which must be met</li>
<li>Example: "entity":{"require":[{"entities":[#minecraft:skeletons]}],"exclude":[{"entities":[minecraft:wither_skeleton]}]}
<ul style="margin-left: 15px;">
<li>Applies to all skeleton types except wither skeletons</li>
</ul>
</li>
<li>Any block, entity, item, or location requirement can be negated in this way (except fields defined within requirements themselves)</li>
<li>The "old" format of these arguments will continue to be supported (i.e. "entity":{"entities":[#minecraft:skeletons]})</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded the registry removal system into a new system called "registry modifiers"</span>
<ul style="margin-left: 10px;">
<li>Registry modifiers can edit the data of existing configs, or disable them like before</li>
<li>A registry modifier contains a list of operations, which support the following:
<ul style="margin-left: 15px;">
<li>"disable": Disables the config (same as before)</li>
<li>"replace": Replaces a field with the given data</li>
<li>"merge": Merges the given data with the existing data, with the new data overwriting the existing data
<ul style="margin-left: 20px;">
<li>If the data contains a list, the new list will be appended to the existing list</li>
</ul>
</li>
<li>"append": Merges the given data without overwriting any existing data
<ul style="margin-left: 20px;">
<li>Does not affect lists</li>
</ul>
</li>
<li>"remove": Removes the specified keys from the config. Also supports removing list elements</li>
</ul>
</li>
<li><span style="color: orange;">! Because this new system introduces formatting changes, existing registry removal configs will need to be updated</span></li>
<li><span style="color: #ffffff; font-weight: bold;">See the documentation for formatting guides and examples</span></li>
</ul>
</li>
<li>The "matches" field in registry modifiers now uses NBT requirements instead of normal NBT
<ul style="margin-left: 10px;">
<li>This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used</li>
</ul>
</li>
<li>Registry modifiers can now choose which config types to target via the "config_type" field
<ul style="margin-left: 10px;">
<li>Accepts a list of strings ("toml", "json", or "kubejs")</li>
</ul>
</li>
<li>Registry modifiers now support targeting JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
<ul style="margin-left: 10px;">
<li>This does not work for TOML or KubeJS configs, as they do not have registry IDs</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">JSON configs can now use a wildcard "*" to apply to all objects in a registry</span>
<ul style="margin-left: 10px;">
<li>i.e. {"items": ["*"]} applies to all items</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The "items" field in JSON item requirements, and "entities" field in entity requirements, are now required</span>
<ul style="margin-left: 10px;">
<li>This is because configs now do nothing if these fields are empty</li>
</ul>
</li>
<li>Enum-type config fields in JSON are now case-insensitive (previously required lower-case)
<ul style="margin-left: 10px;">
<li>Examples of field types affected:
<ul style="margin-left: 15px;">
<li>Temperature Units (i.e. "f", "C", "Mc")</li>
<li>Temperature Type (i.e. "world", "CORE", "fReEzInG_pOiNt")</li>
<li>Config Type (i.e. "toml", "JSON", "KubeJS")</li>
<li>Slot Type (i.e. "head", "CHEST", "Inventory")</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation item configs now accept a list of insulation</span>
<ul style="margin-left: 10px;">
<li>This allows for adding multiple types (or slots) of insulation to a single item</li>
<li>Example: "insulation": [{"cold": 1, "hot": 0}, {"cold": 1, "hot": 0} (occupies 2 slots with lesser cold insulation)</li>
<li>Defining a single insulation is still allowed as to not break existing JSON</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "world temp" requirement for JSON</span>
<ul style="margin-left: 10px;">
<li>Accepts decimal values</li>
<li>Also accepts some preset string values:
<ul style="margin-left: 15px;">
<li>"freezing", "cold", "cool", "temperate", "warm", "hot", "burning"</li>
<li>Ordered from coldest to hottest. Based on the min/max temperature config settings</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Now used in the min/max_temp fields in block temperature JSON</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Added as "world temp bounds" to location requirement JSON:</span>
<ul style="margin-left: 15px;">
<li>Has min/max values, each of which is a world temp requirement</li>
</ul>
</li>
</ul>
</li>
<li>Block temperature JSON configs can now be added to "effect groups"
<ul style="margin-left: 10px;">
<li>Block temperatures in an effect group will count towards each other's max effect limits</li>
<li>i.e. if redstone lamps and copper bulbs are part of the same group, redstone lamps will count towards the max number of copper bulbs and vice-versa</li>
<li>Implemented via the "effect_group" field in block temperature JSON configs
<ul style="margin-left: 15px;">
<li>This field takes in a tag ID containing block temps (i.e. "yourpack:yourtag" [no #hashtag])</li>
<li>Add your block temp tag to data/<yourpack>/tags/cold_sweat/block/block_temp/<yourtag>.json</li>
<li>Include the IDs of the block temps in the tag (i.e. "yourpack:your_block_temp")</li>
</ul>
</li>
</ul>
</li>
<li>The min/max temperature fields in block temperature JSON are now world temp requirements</li>
<li>Added "temperature" field to location requirement</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added a "hint" field that takes two optional arguments:
<ul style="margin-left: 15px;">
<li>"text": Display static text</li>
<li>"key": Use a translation key</li>
<li>Usage: "hint": {"text": "Wearing full iron armor", "key": "tooltip.cold_sweat.example"}</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "key" will be tried first and "text" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added optional "affects_self" field to entity temperature JSON configs
<ul style="margin-left: 10px;">
<li>This will cause the entity to be affected by its own temperature (defaults to "false")</li>
</ul>
</li>
<li>Added optional fields "count" and "location" to entity spawn biome configs:
<ul style="margin-left: 10px;">
<li>"count": The number of entities that can spawn in a group</li>
<li>"location": A negatable list of location requirements that must be met for the entity to spawn</li>
</ul>
</li>
<li>Added optional "location" field to block temperature JSON</li>
<li>Added new field to insulator configs: "fill_slots"
<ul style="margin-left: 10px;">
<li>This will make the insulator take up multiple slots if its total insulation is more than 2 (reverts the new "one item per slot" system)</li>
<li>This is "true" by default</li>
</ul>
</li>
<li>(1.20-) Added new type-specific entity requirements (ported from 1.21):
<ul style="margin-left: 10px;">
<li>(1.18+) "variant": Checks the entity's variant (cat color, axolotl color, etc.)</li>
<li>"fishing_hook": Checks if the fishing bobber entity is in open water (this is a Vanilla thing, IDK)</li>
<li>(1.18+) "lightning_bolt": Checks blocks set on fire and entities struck by the lightning</li>
<li>"piglin_neutral_armor": Checks if the entity is wearing armor that pacifies piglins</li>
<li>"player": Checks player-specific data (game mode, stats, advancements, etc.)</li>
<li>"raider": Checks pillager-specific data (part of an active raid, is the raid captain)</li>
<li>"slime": Checks the size of the slime</li>
<li>(1.18+) "snow_boots": Checks if the player is wearing boots that prevent falling through powder snow</li>
</ul>
</li>
<li>All JSON configs that start with the word "default" will be loaded last, rather than just the ones named "default"</li>
<li>Insulating mount JSON now has an "immune_temp_modifiers" field, similar to insulator items</li>
<li>The "cold_insulation" and "heat_insulation" fields in insulating mount JSON are now optional (defaulting to 0)</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])</li>
<li><span style="color: orange;">! Formatting changes to numerical ranges in NBT</span>
<ul style="margin-left: 10px;">
<li>Now separated by a colon (:) instead of a hyphen (-)
<ul style="margin-left: 15px;">
<li>This is to enable the use of negative numbers, which was previously not possible</li>
<li>Example: {"Damage": "5-10"} -> {"Damage": "5:10"}</li>
</ul>
</li>
<li>Now support boundless ranges
<ul style="margin-left: 15px;">
<li>Example: {"Damage": "5:"} means 5 or more, {"Damage": ":10"} means 10 or less</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">KubeJS:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature"</span>
<ul style="margin-left: 10px;">
<li>In ModRegistriesEvent: addCarriedItemTemperature() -> addItemTemperature()</li>
</ul>
</li>
<li>Added entity temperature, spawn biome, and insulating mount configs support to KubeJS</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added "hintText" and "hintKey" methods to insulator builders:
<ul style="margin-left: 15px;">
<li>hintText: Text to be displayed</li>
<li>hintKey: A translation key for the text to be displayed</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "hintKey" will be tried first and "hintText" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)</li>
<li>KubeJS configs are now passed through the normal config pipeline
<ul style="margin-left: 10px;">
<li>They are now present in CreateRegistriesEvent</li>
<li>They can now be targeted by registry modifiers</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Java:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Custom Cold Sweat registries are now officially unsupported in 1.18</span>
<ul style="margin-left: 10px;">
<li>This is because 1.18's registry loading system disallows initializing registries outside the standard time during mod loading</li>
<li>Because not all mods have been loaded yet at this stage, there is no guarantee that all registries will load successfully</li>
</ul>
</li>
<li><span style="color: orange;">! Rearranged/simplified some methods in ItemInsulationManager</span>
<ul style="margin-left: 10px;">
<li>Some methods have been removed or renamed. See the code for details</li>
</ul>
</li>
<li><span style="color: orange;">! Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 10px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 10px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 10px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Temperature effects are now a modular system</span>
<ul style="margin-left: 10px;">
<li>Added a new TempEffect Forge (Java-based) registry</li>
<li>Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect</li>
<li>TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
<ul style="margin-left: 15px;">
<li>i.e. health freezes over if the player's temperature is between -50 and -100</li>
</ul>
</li>
<li>This system will be expanded upon and more thoroughly documented in the future</li>
</ul>
</li>
<li>TemperatureChangedEvent now fires every time an entity's temperature changes, instead of only when it is changed manually</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 10px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 10px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise but more performant than getTemperatureAt()</li>
</ul>
</li>
<li>CreateRegistriesEvent has been broken up into two events:
<ul style="margin-left: 10px;">
<li>AddRegistriesEvent: Fires right before Cold Sweat registers its registries to Minecraft's datapack system.
<ul style="margin-left: 15px;">
<li>Use this event to make new registries. They will now be properly registered as Minecraft registries</li>
</ul>
</li>
<li>LoadRegistriesEvent: Drop-in replacement for CreateRegistriesEvent. Has Pre/Post sub-classes that fire at the same stages of registry loading</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Custom registries are now initialized during startup immediately after mods are loaded, instead of upon joining a world/server</span></li>
<li>registerByClassName() in TempModifierRegisterEvent now accepts constructor arguments as its last parameter (varargs)
<ul style="margin-left: 10px;">
<li>These arguments will be passed to the constructor of the modifier class upon creation</li>
</ul>
</li>
<li>Added new methods to TempModifier that fire when they are are added/removed on an entity:
<ul style="margin-left: 10px;">
<li>onAdded/onRemoved: Fires on the TempModifier immediately when it is added/removed</li>
<li>onSiblingAdded/onSiblingRemoved: Fires on all other TempModifiers applied to a trait when a new modifier is added/removed</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4] Cold Sweat 2.4 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Mod Compatibility Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added integration with JEI:</span>
<ul style="margin-left: 10px;">
<li>Insulation items have "sewing" recipes, showing how they can be applied to armor</li>
<li>Fuel items for the hearth, boiler, and icebox have recipes showing how long they last</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded/Tweaked integration with Create:</span>
<ul style="margin-left: 10px;">
<li>Pipes and fluid tanks now emit temperature if they contain fluids that emit temperature</li>
<li>Boilers now emit temperature based on the temperature of the water inside them</li>
<li>Blaze burners now emit heat when fueled</li>
<li>The netherite jetpack from Create: Stuff n' Additions now grants 90% heat dampening when the full set is worn</li>
<li>Create's netherite backtank no longer provides cold protection by default</li>
<li>The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
<ul style="margin-left: 15px;">
<li>The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)</li>
</ul>
</li>
</ul>
</li>
<li>Added integration with Iron's Spells & Spellbooks:
<ul style="margin-left: 10px;">
<li>The Frostward and Fireward rings now give buffs that allow the player to survive in colder/hotter climates</li>
</ul>
</li>
<li>Added integration with Boatload:
<ul style="margin-left: 10px;">
<li>Furnace boats now emit temperature if fueled</li>
<li>For parity, furnace minecarts now also emit temperature if fueled</li>
</ul>
</li>
<li>Added integration with Ad Astra:
<ul style="margin-left: 10px;">
<li>This is an updated and fixed port of Mars Popsicle by igalaxy</li>
</ul>
</li>
<li>Added integration with Regions Unexplored:
<ul style="margin-left: 10px;">
<li>Added custom temperatures to many biomes</li>
</ul>
</li>
<li>Added integration with Soul Fire'd:
<ul style="margin-left: 10px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Added integration with some Tough as Nails items:
<ul style="margin-left: 10px;">
<li>Wool armor: provides the same insulation as wool</li>
<li>Leaf armor: provides the same insulation as leather, but with no cold protection</li>
<li>Thermoregulator: now gives warmth & frigidness as a hearth would</li>
</ul>
</li>
<li>Improved Primal Winter support:
<ul style="margin-left: 10px;">
<li>Now respects disabled biomes/dimensions in Primal Winter's config</li>
<li>Only decreases the temperature for configured biomes, since Primal Winter already changes default biome temperatures</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">New armor set: Chameleon Scale:</span>
<ul style="font-size: 13;">
<li>Crafted with chameleon molt in typical armor patterns</li>
<li><span style="color: #ffffff; font-weight: bold;">Visually adapts to the ambient temperature</span></li>
<li>Each armor piece provides 20% more than maximum adaptive insulation</li>
<li>Cannot be insulated in the sewing table</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Smokestack Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The smokestack block can now be placed in all directions</span>
<ul style="margin-left: 10px;">
<li>This allows for creating "pipes" that transport air from the hearth/boiler/icebox</li>
<li>This is a built-in alternative to using Create's pipes, but those still work as well</li>
<li>A smokestack connected on more than one axis (like in corners) will become a "junction", which takes up a full block</li>
<li>Junctions do not allow air to pass around them- only through them via connected smokestacks</li>
<li>A smokestack can be right-clicked with cobblestone to create a junction, which is useful for venting air through walls</li>
<li>The smoke & steam emitted from the thermal sources will travel through the smokestack line and emit from the end(s)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed the smokestack recipe:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">No longer require redstone to craft</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Now gives 4 smokestacks</span>
<ul style="margin-left: 15px;">
<li>This is more efficient with resources and will hopefully clue players into the fact that multiple can be connected together</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Insulation Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Tweaked how the insulation system works:</span>
<ul style="margin-left: 10px;">
<li>Each insulation slot now represents an item, rather than 2 insulation points</li>
<li>This enables more powerful insulation items to take up only one slot</li>
<li>Added custom tooltip graphic for "compound" insulation items</li>
<li>Added new parameter to insulator configs: "fill_slots"
<ul style="margin-left: 15px;">
<li>This will make the insulator take up multiple slots as normal</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Armor now drops its insulation upon breaking</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Armor items that provide built-in insulation can now accept insulation themselves</span>
<ul style="margin-left: 10px;">
<li>Built-in armor insulation can also be configured to either take up the item's available insulation slots, or not</li>
</ul>
</li>
<li>Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
<ul style="margin-left: 10px;">
<li>Added leather and goat fur to the tag by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation-granting armors (leather, hoglin hide, goat fur, chameleon scale) can no longer be sewn into other armor by default</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Increased the amount of insulation provided by leather, hoglin hide, goat fur, and chameleon scale armor when worn by 20%</span>
<ul style="margin-left: 10px;">
<li>This incentivizes players to</li>
</ul>
</li>
<li>Adaptive insulation now adapts at a consistent rate instead of slowing down as it reaches its target</li>
<li>Minecart insulation can now be crafted with fur instead of wool</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Hearth, Boiler & Icebox Changes:</span>
<ul style="font-size: 13;">
<li>The hearth/boiler now emit warm air particles from their smokestacks, rather than smoke</li>
<li>The fuel slot of iceboxes/boilers can no longer be taken from by automation (i.e. hoppers)
<ul style="margin-left: 10px;">
<li>This makes automation easier and more consistent with Vanilla blocks like furnaces</li>
</ul>
</li>
<li>Moved the hearth's fluid intakes to coincide with its fuel inputs</li>
<li><span style="color: #ffffff; font-weight: bold;">The hearth's redstone inputs have been changed:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Heat is now emitted if the left or back side is powered</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Cold is not emitted if the right or bottom side is powered</span></li>
<li>Tweaked the design of the redstone inputs to be more obvious</li>
<li>The redstone inputs are now hidden if "Automatic Hearth" is enabled in the configs</li>
</ul>
</li>
<li>Dried kelp blocks can now be used as fuel in hearths and boilers</li>
<li>Adjusted the fuel values of some items:
<ul style="margin-left: 10px;">
<li>Coal: 37 -> 55</li>
<li>Logs: 37 -> 40</li>
<li>Dried Kelp Block: 92 -> 40</li>
<li>Coal Block: 333 -> 500</li>
<li>Snow Block: 100 -> 40</li>
<li><span style="color: #ffffff; font-weight: bold;">These changes will be applied automatically upon updating</span></li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 10px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Soul Sprout/Stalk Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 10px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul sprouts can now be planted with dispensers</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Removed sticks from the loot table for soul stalk</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 10px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>Soul stalk now generates more commonly in the soul sand valley biome</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Texture Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added new block textures to the hearth for when it is burning hot fuel or has cold fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Redesigned some parts of the hearth, boiler, and icebox GUIs</span>
<ul style="margin-left: 10px;">
<li>New fuel gauge textures that are more in line with Vanilla</li>
<li>Less prominent particle visibility toggle button</li>
<li>Tweaked the position & design of redstone current indicators</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Tweaked sewing table block and GUI textures</span></li>
<li>Tweaked textures for several other things:
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Items:</span>
<ul style="margin-left: 15px;">
<li>Chameleon Molt</li>
<li>Chameleon Scale Armor</li>
<li>Goat Fur Parka</li>
<li>Hoglin Hide Armor</li>
<li>Hearth</li>
<li>Insulated Minecart (very slightly)</li>
<li>These changes are a mix of general design improvements and more closely aligning them with the Vanilla style</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Blocks:</span>
<ul style="margin-left: 15px;">
<li>Boiler, Icebox</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">UI:</span>
<ul style="margin-left: 15px;">
<li>World temperature gauge (both with and without thermometer)</li>
<li>Ice Resistance icon</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Water-Related Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Water droplets are now tinted to the biome's water color</span></li>
<li>Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction</li>
<li>Made water droplets more evenly distributed when the player emerges from water</li>
<li><span style="color: #ffffff; font-weight: bold;">Water droplets no longer display if the player is fully immune to water</span></li>
<li>Tweaked water droplet trails to not be so long in colder temperatures</li>
<li>Added option to change the opacity of water droplets on-screen
<ul style="margin-left: 10px;">
<li>Slightly reduced opacity by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Being wet now extinguishes fire, and being on fire now dries the player</span></li>
<li>Waterskins now make the player wet when poured</li>
<li>Removed the cooldown when filling waterskins</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">World Temperature Changes:</span>
<ul style="font-size: 13;">
<li>The temperature underground is now 60 °F instead of 75 °F</li>
<li>Adjusted the temperature of plains biomes to be warmer at night</li>
<li>Adjusted the temperature of river biomes to match plains biomes</li>
<li>Decreased the temperatures of some cold biomes that generate ice, so the ice doesn't immediately melt</li>
<li><span style="color: #ffffff; font-weight: bold;">Water temperature is now biome-dependent</span>
<ul style="margin-left: 10px;">
<li>Each biome has its own "water_temp" field in JSON</li>
<li>Can also be set in toml by adding a parameter after the "units" parameter</li>
<li>Setting this is optional. If unset, a default water temperature will be used</li>
</ul>
</li>
<li>Temperature changes from shade and overcast mechanics are now handled by a single dedicated temperature modifier
<ul style="margin-left: 10px;">
<li>This change "upgrades" the shade mechanic from being a side-effect of the depth system to a real feature</li>
<li>In turn, the depth system now does not count leaf blocks as solid ground</li>
<li>The temperature effect of shade/overcast can be configured with the "Shade Temperature Offset" setting, which replaces "Overcast Temperature Offset"</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases</span>
<ul style="margin-left: 10px;">
<li>This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective</li>
<li>This should make it more fair as both a tool for warming up and a hazard to avoid</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Player Temperature Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added a new "acclimation" mechanic:</span>
<ul style="margin-left: 10px;">
<li>By spending time in hotter or colder climates, player can now adapt to more comfortably live in them</li>
<li>This causes their livable temperature range to be shifted upward or downward</li>
<li>The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)</li>
<li>Complete acclimation takes about 15 minutes (also configurable)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate</li>
<li>If the player is in a 400°F/200°C area, they will take damage much faster</li>
<li>Wearing insulation slows down the rate of damage</li>
</ul>
</li>
<li>Switching to spectator mode now sets your body temperature to 0</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Misc. Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The heart of the sea inside the soulspring lamp is now animated</span></li>
<li>Changed wording of "it is freezing/sweltering outside" messages to "it is freezing/sweltering here" for more clarity</li>
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Removed "un-crafting" recipes for packed ice and blue ice
<ul style="margin-left: 10px;">
<li>These recipes were arbitrary and could lead to duplication with some mods</li>
</ul>
</li>
<li>The thermometer can now be equipped as a curio by right-clicking</li>
<li><span style="color: #ffffff; font-weight: bold;">Increased ice resistance potion durations:</span>
<ul style="margin-left: 10px;">
<li>Normal length: 90 seconds -> 3 minutes</li>
<li>Extended length: 3 minutes -> 6 minutes</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)</li>
<li>Naturally-generated igloos are no longer warmer inside</li>
<li>Changed the sewing table recipe to be consistent with other workstations (like the smithing table)</li>
<li>If the player is on fire and wet, they will now be extinguished and dried off</li>
<li>Eating temperature-affecting foods now properly replaces the preexisting effect for that item
<ul style="margin-left: 10px;">
<li>i.e. eating a soul sprout will now reset the "coldness" timer if its effect is already active, rather than doing nothing</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Advancement Changes:</span>
<ul style="font-size: 13;">
<li>Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack</li>
<li>The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering</li>
<li>Renamed the "Dressed to Go" advancement to "Dressed for a Quest"</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">UI Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added UI element displaying food temperature effects</span>
<ul style="margin-left: 10px;">
<li>Shows a timer for the effect, and its strength</li>
<li>Has settings for repositioning and toggling like other UI elements</li>
</ul>
</li>
<li>Increased the responsiveness of body temperature UI elements</li>
<li>The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used</li>
<li>The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100</li>
<li>ID Changes:-</li>
<li><span style="color: orange;">! Changed armor item IDs to follow the normal helmet/chestplate/leggings/boots convention</span>
<ul style="margin-left: 10px;">
<li>i.e. cold_sweat:goat_fur_parka is now cold_sweat:goat_fur_chestplate</li>
<li>Old configs targeting these IDs will continue to work, but should be updated when possible</li>
<li>Existing items in worlds will be automatically converted to the new IDs</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Config Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Big improvements to config files:</span>
<ul style="margin-left: 10px;">
<li>Improved the formatting and wording of comments, making them more readable and clear</li>
<li>Improved the spacing between config settings and comments, making it easier to locate specific settings</li>
<li>List-based configs are now formatted vertically with one element per line, rather than all elements on one line
<ul style="margin-left: 15px;">
<li>This behavior is indicated by the "//v" tag at the top of the config's comment. Removing the tag reverts this behavior</li>
<li>Formatting changes take effect upon restarting the game</li>
</ul>
</li>
<li><span style="color: orange;">! Existing configs should be updated automatically, but backing up is recommended</span></li>
<li>TOML configs that take in IDs, like blocks, items, entities, biomes, etc. now support negation (i.e. "!minecraft:stone")
<ul style="margin-left: 15px;">
<li>Most useful when used in lists. Excludes the given ID from having the setting applied to it</li>
<li>Also supports negating tags ("!#minecraft:leaves")</li>
<li>i.e. "#forge:dyes,!minecraft:black_dye" applies to all dyes EXCEPT black dye</li>
</ul>
</li>
<li><span style="color: orange;">! Some config settings have been moved:</span>
<ul style="margin-left: 15px;">
<li>"Require Thermometer": main.toml -> item.toml</li>
<li>"Fire/Ice Resistance Immunity" main.toml -> item.toml</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature":</span>
<ul style="margin-left: 10px;">
<li>TOML: "Carried Item Temperatures" -> "Item Temperatures"</li>
<li><span style="color: #ffffff; font-weight: bold;">TOML configs will be RESET. Please back up TOML configs before updating</span></li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Mod compat for specific mods can now be disabled by using the "disabled_mods" file in the CS config folder</span>
<ul style="margin-left: 10px;">
<li>These mods will still work, but special integration features will not be applied</li>
</ul>
</li>
<li>Insulation tooltips can now be configured to show under specific circumstances (client.toml):
<ul style="margin-left: 10px;">
<li>"always": Always show the tooltip (even for armor items with no insulation)</li>
<li>"if_present": The default behavior. Shows the tooltip only if the item gives or has insulation</li>
<li>"on_shift": Show the insulation tooltip if SHIFT is held (even for armor items with no insulation)</li>
<li>"shift_and_present": Show the tooltip if SHIFT is held AND the item gives or has insulation</li>
<li>"never": Never show the insulation tooltip for any items</li>
</ul>
</li>
<li>The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable (client.toml):
<ul style="margin-left: 10px;">
<li>Both can now be set to either drink or pour, so they can be swapped around or disabled</li>
<li>These settings are in client.toml and are player-specific</li>
</ul>
</li>
<li>Added setting to change how often the player takes damage when overheating/freezing (main.toml)
<ul style="margin-left: 10px;">
<li>This is the base value, which will still be increased when the player is in very extreme temperatures</li>
</ul>
</li>
<li>The "Require Thermometer" and "Fire/Ice Resistance Immunity" settings have been moved to item.toml</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>This includes new settings for changing the blur and camera sway effects from overheating</li>
</ul>
</li>
<li>Changed the name of "Temperature Damage" to "Temp. Damage" so it fits better in the config menu</li>
<li>Rearranged some config settings in the in-game menu to be less cramped and more organized</li>
<li>Default water temperature and soak speed are now configurable (world.toml)
<ul style="margin-left: 10px;">
<li>"Soak speed" controls how fast the player becomes wet</li>
<li>Rain soak speed and water soak speed are individually configurable</li>
</ul>
</li>
<li>Added new configs for the waterskin:
<ul style="margin-left: 10px;">
<li>"Waterskin Hotbar Strength": The strength of the gradual cooling/heating of waterskins in the hotbar</li>
<li>"Waterskin Neutralize Speed": The speed at which waterskins' temperature will drain when in the hotbar</li>
</ul>
</li>
<li>Added option to give filled waterskins more than one use when drinking</li>
<li>Lava temperature is now TOML-based so it can be more easily changed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Command Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat reload"</span>
<ul style="margin-left: 10px;">
<li>Reloads all configs (TOML, JSON, KubeJS) live, without having to rejoin the world or restart the server</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat dumpconfigs"</span>
<ul style="margin-left: 10px;">
<li>Dumps all loaded config data into the "config/coldsweat/dump" directory</li>
<li>Useful for debugging or when making datapacks</li>
</ul>
</li>
<li>The "modify" subcommand for /temperature has been renamed to "attribute"</li>
<li>Added "add" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Increases/Decreases the target's body temperature by the specified amount</li>
</ul>
</li>
<li>Added "modifier" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Enables adding/removing temperature modifiers on entities</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tooltip Changes:</span>
<ul style="font-size: 13;">
<li>Some insulators that require certain criteria now display a hint in their tooltip
<ul style="margin-left: 10px;">
<li>i.e. the Create netherite backtank now has the requirement "Wearing full netherite diving suit" in its tooltip</li>
<li>Implementation of this system is explained in the "Technical Changes" section</li>
</ul>
</li>
<li>When hovering over an insulation item, holding CTRL now shows its exact numerical insulation value</li>
<li><span style="color: #ffffff; font-weight: bold;">Adjusted how the tooltip for filled waterskins is displayed:</span>
<ul style="margin-left: 10px;">
<li>No longer shows water temperature in real-world units. This looks arbitrary when the player's body temperature ranges from -100 to 100</li>
<li>Instead, shows a "When Used" tooltip showing the actual effect it has on your temperature (between -50 and 50 by default)</li>
</ul>
</li>
<li>(1.16) Improved the reliability of tooltip image insertions, especially when other mods are installed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Entity Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons now require player interaction to shed</span>
<ul style="margin-left: 10px;">
<li>This is to inhibit very easy farming by putting a chameleon on top of a hopper</li>
<li>When a chameleon is ready to shed, it will start emitting particles and send a vibration with signal strength 4</li>
<li>When the player right-clicks the chameleon, it will shed chameleon molt as normal
<ul style="margin-left: 15px;">
<li>This can also be done with shears in a dispenser</li>
</ul>
</li>
<li>This change can be reverted by enabling "Chameleons Shed Automatically" in entity.toml</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
<ul style="margin-left: 10px;">
<li><span style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml</span></li>
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system
<ul style="margin-left: 15px;">
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
</ul>
</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li>Entities caught on fire will now heat up the nearby area
<ul style="margin-left: 10px;">
<li>You can also warm yourself up this way!</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">General:</span>
<ul style="font-size: 13;">
<li>Added SimpleTempModifier (cold_sweat:simple), a basic TempModifier controlled by NBT
<ul style="margin-left: 10px;">
<li>Good for use in commands or simple KubeJS implementations</li>
<li>Parameters:
<ul style="margin-left: 15px;">
<li>"Temperature": The value to apply to the entity's temperature</li>
<li>"Operation": Any of: add, subtract, multiply, divide, power, root, set, max, min
<ul style="margin-left: 20px;">
<li>Augment what the modifier does to the entity's temperature</li>
<li>"set" overrides the entity's temperature with the modifier's value</li>
<li>"max" ensures the entity's temperature is >= the modifier's value</li>
<li>"min" ensures the entity's temperature is <= the modifier's value</li>
</ul>
</li>
</ul>
</li>
<li>Changes to the modifier's NBT will be reflected immediately</li>
<li>When modifying the NBT in Java or KubeJS, make sure to call markDirty() so the changes are sent to clients</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tags:</span>
<ul style="font-size: 13;">
<li>Chameleons will now target and eat any entities in the #cold_sweat:chameleon_eats tag</li>
<li>Create backtank pressure now drains if the player has any insulator equipped that is in the #drains_backtank tag and passes its requirements</li>
<li>Added #forge:soul_campfires tag (#c:soul_campfires in NeoForge), which is now used by the block temperature of soul campfires</li>
<li>Blocks which are affected by the "Cold Soul Fire" setting are now controlled by the "forge:soul_fire" tag ("c:soul_fire" in NeoForge)
<ul style="margin-left: 10px;">
<li>Any blocks in this tag will have their temperatures inverted if the setting is enabled</li>
</ul>
</li>
<li>Armor crafting and repair materials are now handled by tags:
<ul style="margin-left: 10px;">
<li>Hoglin: #forge:leathers/hoglin</li>
<li>Goat Fur: #forge:furs/goat</li>
<li>Chameleon: #forge:scales/chameleon</li>
<li>These tags are in the "c" domain in 1.21 (i.e. "c:furs/goat")</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">JSON:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! The "data" field in item JSON configs has been renamed to "item" for consistency with other configs</span></li>
<li><span style="color: orange;">! (1.16) The file structure of JSON registries has changed to match that of other versions:</span>
<ul style="margin-left: 10px;">
<li>Registries are now located in data/<yourmod>/cold_sweat/* (instead of data/cold_sweat/config/*)</li>
<li>This means that JSON registries registered by other mods will have that mod's namespace in their IDs</li>
<li>Datapacks still do not work. This is only for mod developers</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature" (item/carried_temp -> item/item_temp)</span>
<ul style="margin-left: 10px;">
<li>JSON configs will not work until they are put in the new directory. No formatting changes are required</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Some arguments for JSON configs now support a new type "Negatable List":</span>
<ul style="margin-left: 10px;">
<li>Defines a list of "requirements" and "exclusions" which must be met</li>
<li>Example: "entity":{"require":[{"entities":[#minecraft:skeletons]}],"exclude":[{"entities":[minecraft:wither_skeleton]}]}
<ul style="margin-left: 15px;">
<li>Applies to all skeleton types except wither skeletons</li>
</ul>
</li>
<li>Any block, entity, item, or location requirement can be negated in this way (except fields defined within requirements themselves)</li>
<li>The "old" format of these arguments will continue to be supported (i.e. "entity":{"entities":[#minecraft:skeletons]})</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded the registry removal system into a new system called "registry modifiers"</span>
<ul style="margin-left: 10px;">
<li>Registry modifiers can edit the data of existing configs, or disable them like before</li>
<li>A registry modifier contains a list of operations, which support the following:
<ul style="margin-left: 15px;">
<li>"disable": Disables the config (same as before)</li>
<li>"replace": Replaces a field with the given data</li>
<li>"merge": Merges the given data with the existing data, with the new data overwriting the existing data
<ul style="margin-left: 20px;">
<li>If the data contains a list, the new list will be appended to the existing list</li>
</ul>
</li>
<li>"append": Merges the given data without overwriting any existing data
<ul style="margin-left: 20px;">
<li>Does not affect lists</li>
</ul>
</li>
<li>"remove": Removes the specified keys from the config. Also supports removing list elements</li>
</ul>
</li>
<li><span style="color: orange;">! Because this new system introduces formatting changes, existing registry removal configs will need to be updated</span></li>
<li><span style="color: #ffffff; font-weight: bold;">See the documentation for formatting guides and examples</span></li>
</ul>
</li>
<li>The "matches" field in registry modifiers now uses NBT requirements instead of normal NBT
<ul style="margin-left: 10px;">
<li>This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used</li>
</ul>
</li>
<li>Registry modifiers can now choose which config types to target via the "config_type" field
<ul style="margin-left: 10px;">
<li>Accepts a list of strings ("toml", "json", or "kubejs")</li>
</ul>
</li>
<li>Registry modifiers now support targeting JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
<ul style="margin-left: 10px;">
<li>This does not work for TOML or KubeJS configs, as they do not have registry IDs</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">JSON configs can now use a wildcard "*" to apply to all objects in a registry</span>
<ul style="margin-left: 10px;">
<li>i.e. {"items": ["*"]} applies to all items</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The "items" field in JSON item requirements, and "entities" field in entity requirements, are now required</span>
<ul style="margin-left: 10px;">
<li>This is because configs now do nothing if these fields are empty</li>
</ul>
</li>
<li>Enum-type config fields in JSON are now case-insensitive (previously required lower-case)
<ul style="margin-left: 10px;">
<li>Examples of field types affected:
<ul style="margin-left: 15px;">
<li>Temperature Units (i.e. "f", "C", "Mc")</li>
<li>Temperature Type (i.e. "world", "CORE", "fReEzInG_pOiNt")</li>
<li>Config Type (i.e. "toml", "JSON", "KubeJS")</li>
<li>Slot Type (i.e. "head", "CHEST", "Inventory")</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation item configs now accept a list of insulation</span>
<ul style="margin-left: 10px;">
<li>This allows for adding multiple types (or slots) of insulation to a single item</li>
<li>Example: "insulation": [{"cold": 1, "hot": 0}, {"cold": 1, "hot": 0} (occupies 2 slots with lesser cold insulation)</li>
<li>Defining a single insulation is still allowed as to not break existing JSON</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "world temp" requirement for JSON</span>
<ul style="margin-left: 10px;">
<li>Accepts decimal values</li>
<li>Also accepts some preset string values:
<ul style="margin-left: 15px;">
<li>"freezing", "cold", "cool", "temperate", "warm", "hot", "burning"</li>
<li>Ordered from coldest to hottest. Based on the min/max temperature config settings</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Now used in the min/max_temp fields in block temperature JSON</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Added as "world temp bounds" to location requirement JSON:</span>
<ul style="margin-left: 15px;">
<li>Has min/max values, each of which is a world temp requirement</li>
</ul>
</li>
</ul>
</li>
<li>Block temperature JSON configs can now be added to "effect groups"
<ul style="margin-left: 10px;">
<li>Block temperatures in an effect group will count towards each other's max effect limits</li>
<li>i.e. if redstone lamps and copper bulbs are part of the same group, redstone lamps will count towards the max number of copper bulbs and vice-versa</li>
<li>Implemented via the "effect_group" field in block temperature JSON configs
<ul style="margin-left: 15px;">
<li>This field takes in a tag ID containing block temps (i.e. "yourpack:yourtag" [no #hashtag])</li>
<li>Add your block temp tag to data/<yourpack>/tags/cold_sweat/block/block_temp/<yourtag>.json</li>
<li>Include the IDs of the block temps in the tag (i.e. "yourpack:your_block_temp")</li>
</ul>
</li>
</ul>
</li>
<li>The min/max temperature fields in block temperature JSON are now world temp requirements</li>
<li>Added "temperature" field to location requirement</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added a "hint" field that takes two optional arguments:
<ul style="margin-left: 15px;">
<li>"text": Display static text</li>
<li>"key": Use a translation key</li>
<li>Usage: "hint": {"text": "Wearing full iron armor", "key": "tooltip.cold_sweat.example"}</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "key" will be tried first and "text" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added optional "affects_self" field to entity temperature JSON configs
<ul style="margin-left: 10px;">
<li>This will cause the entity to be affected by its own temperature (defaults to "false")</li>
</ul>
</li>
<li>Added optional fields "count" and "location" to entity spawn biome configs:
<ul style="margin-left: 10px;">
<li>"count": The number of entities that can spawn in a group</li>
<li>"location": A negatable list of location requirements that must be met for the entity to spawn</li>
</ul>
</li>
<li>Added optional "location" field to block temperature JSON</li>
<li>Added new field to insulator configs: "fill_slots"
<ul style="margin-left: 10px;">
<li>This will make the insulator take up multiple slots if its total insulation is more than 2 (reverts the new "one item per slot" system)</li>
<li>This is "true" by default</li>
</ul>
</li>
<li>(1.20-) Added new type-specific entity requirements (ported from 1.21):
<ul style="margin-left: 10px;">
<li>(1.18+) "variant": Checks the entity's variant (cat color, axolotl color, etc.)</li>
<li>"fishing_hook": Checks if the fishing bobber entity is in open water (this is a Vanilla thing, IDK)</li>
<li>(1.18+) "lightning_bolt": Checks blocks set on fire and entities struck by the lightning</li>
<li>"piglin_neutral_armor": Checks if the entity is wearing armor that pacifies piglins</li>
<li>"player": Checks player-specific data (game mode, stats, advancements, etc.)</li>
<li>"raider": Checks pillager-specific data (part of an active raid, is the raid captain)</li>
<li>"slime": Checks the size of the slime</li>
<li>(1.18+) "snow_boots": Checks if the player is wearing boots that prevent falling through powder snow</li>
</ul>
</li>
<li>All JSON configs that start with the word "default" will be loaded last, rather than just the ones named "default"</li>
<li>Insulating mount JSON now has an "immune_temp_modifiers" field, similar to insulator items</li>
<li>The "cold_insulation" and "heat_insulation" fields in insulating mount JSON are now optional (defaulting to 0)</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])</li>
<li><span style="color: orange;">! Formatting changes to numerical ranges in NBT</span>
<ul style="margin-left: 10px;">
<li>Now separated by a colon (:) instead of a hyphen (-)
<ul style="margin-left: 15px;">
<li>This is to enable the use of negative numbers, which was previously not possible</li>
<li>Example: {"Damage": "5-10"} -> {"Damage": "5:10"}</li>
</ul>
</li>
<li>Now support boundless ranges
<ul style="margin-left: 15px;">
<li>Example: {"Damage": "5:"} means 5 or more, {"Damage": ":10"} means 10 or less</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">KubeJS:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature"</span>
<ul style="margin-left: 10px;">
<li>In ModRegistriesEvent: addCarriedItemTemperature() -> addItemTemperature()</li>
</ul>
</li>
<li>Added entity temperature, spawn biome, and insulating mount configs support to KubeJS</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added "hintText" and "hintKey" methods to insulator builders:
<ul style="margin-left: 15px;">
<li>hintText: Text to be displayed</li>
<li>hintKey: A translation key for the text to be displayed</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "hintKey" will be tried first and "hintText" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)</li>
<li>KubeJS configs are now passed through the normal config pipeline
<ul style="margin-left: 10px;">
<li>They are now present in CreateRegistriesEvent</li>
<li>They can now be targeted by registry modifiers</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Java:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Custom Cold Sweat registries are now officially unsupported in 1.18</span>
<ul style="margin-left: 10px;">
<li>This is because 1.18's registry loading system disallows initializing registries outside the standard time during mod loading</li>
<li>Because not all mods have been loaded yet at this stage, there is no guarantee that all registries will load successfully</li>
</ul>
</li>
<li><span style="color: orange;">! Rearranged/simplified some methods in ItemInsulationManager</span>
<ul style="margin-left: 10px;">
<li>Some methods have been removed or renamed. See the code for details</li>
</ul>
</li>
<li><span style="color: orange;">! Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 10px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 10px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 10px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Temperature effects are now a modular system</span>
<ul style="margin-left: 10px;">
<li>Added a new TempEffect Forge (Java-based) registry</li>
<li>Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect</li>
<li>TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
<ul style="margin-left: 15px;">
<li>i.e. health freezes over if the player's temperature is between -50 and -100</li>
</ul>
</li>
<li>This system will be expanded upon and more thoroughly documented in the future</li>
</ul>
</li>
<li>TemperatureChangedEvent now fires every time an entity's temperature changes, instead of only when it is changed manually</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 10px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 10px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise but more performant than getTemperatureAt()</li>
</ul>
</li>
<li>CreateRegistriesEvent has been broken up into two events:
<ul style="margin-left: 10px;">
<li>AddRegistriesEvent: Fires right before Cold Sweat registers its registries to Minecraft's datapack system.
<ul style="margin-left: 15px;">
<li>Use this event to make new registries. They will now be properly registered as Minecraft registries</li>
</ul>
</li>
<li>LoadRegistriesEvent: Drop-in replacement for CreateRegistriesEvent. Has Pre/Post sub-classes that fire at the same stages of registry loading</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Custom registries are now initialized during startup immediately after mods are loaded, instead of upon joining a world/server</span></li>
<li>registerByClassName() in TempModifierRegisterEvent now accepts constructor arguments as its last parameter (varargs)
<ul style="margin-left: 10px;">
<li>These arguments will be passed to the constructor of the modifier class upon creation</li>
</ul>
</li>
<li>Added new methods to TempModifier that fire when they are are added/removed on an entity:
<ul style="margin-left: 10px;">
<li>onAdded/onRemoved: Fires on the TempModifier immediately when it is added/removed</li>
<li>onSiblingAdded/onSiblingRemoved: Fires on all other TempModifiers applied to a trait when a new modifier is added/removed</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4] Cold Sweat 2.4 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Mod Compatibility Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added integration with JEI:</span>
<ul style="margin-left: 10px;">
<li>Insulation items have "sewing" recipes, showing how they can be applied to armor</li>
<li>Fuel items for the hearth, boiler, and icebox have recipes showing how long they last</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded/Tweaked integration with Create:</span>
<ul style="margin-left: 10px;">
<li>Pipes and fluid tanks now emit temperature if they contain fluids that emit temperature</li>
<li>Boilers now emit temperature based on the temperature of the water inside them</li>
<li>Blaze burners now emit heat when fueled</li>
<li>The netherite jetpack from Create: Stuff n' Additions now grants 90% heat dampening when the full set is worn</li>
<li>Create's netherite backtank no longer provides cold protection by default</li>
<li>The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
<ul style="margin-left: 15px;">
<li>The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)</li>
</ul>
</li>
</ul>
</li>
<li>Added integration with Iron's Spells & Spellbooks:
<ul style="margin-left: 10px;">
<li>The Frostward and Fireward rings now give buffs that allow the player to survive in colder/hotter climates</li>
</ul>
</li>
<li>Added integration with Boatload:
<ul style="margin-left: 10px;">
<li>Furnace boats now emit temperature if fueled</li>
<li>For parity, furnace minecarts now also emit temperature if fueled</li>
</ul>
</li>
<li>Added integration with Ad Astra:
<ul style="margin-left: 10px;">
<li>This is an updated and fixed port of Mars Popsicle by igalaxy</li>
</ul>
</li>
<li>Added integration with Regions Unexplored:
<ul style="margin-left: 10px;">
<li>Added custom temperatures to many biomes</li>
</ul>
</li>
<li>Added integration with Soul Fire'd:
<ul style="margin-left: 10px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Added integration with some Tough as Nails items:
<ul style="margin-left: 10px;">
<li>Wool armor: provides the same insulation as wool</li>
<li>Leaf armor: provides the same insulation as leather, but with no cold protection</li>
<li>Thermoregulator: now gives warmth & frigidness as a hearth would</li>
</ul>
</li>
<li>Improved Primal Winter support:
<ul style="margin-left: 10px;">
<li>Now respects disabled biomes/dimensions in Primal Winter's config</li>
<li>Only decreases the temperature for configured biomes, since Primal Winter already changes default biome temperatures</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">New armor set: Chameleon Scale:</span>
<ul style="font-size: 13;">
<li>Crafted with chameleon molt in typical armor patterns</li>
<li><span style="color: #ffffff; font-weight: bold;">Visually adapts to the ambient temperature</span></li>
<li>Each armor piece provides 20% more than maximum adaptive insulation</li>
<li>Cannot be insulated in the sewing table</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Smokestack Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The smokestack block can now be placed in all directions</span>
<ul style="margin-left: 10px;">
<li>This allows for creating "pipes" that transport air from the hearth/boiler/icebox</li>
<li>This is a built-in alternative to using Create's pipes, but those still work as well</li>
<li>A smokestack connected on more than one axis (like in corners) will become a "junction", which takes up a full block</li>
<li>Junctions do not allow air to pass around them- only through them via connected smokestacks</li>
<li>A smokestack can be right-clicked with cobblestone to create a junction, which is useful for venting air through walls</li>
<li>The smoke & steam emitted from the thermal sources will travel through the smokestack line and emit from the end(s)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed the smokestack recipe:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">No longer require redstone to craft</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Now gives 4 smokestacks</span>
<ul style="margin-left: 15px;">
<li>This is more efficient with resources and will hopefully clue players into the fact that multiple can be connected together</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Insulation Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Tweaked how the insulation system works:</span>
<ul style="margin-left: 10px;">
<li>Each insulation slot now represents an item, rather than 2 insulation points</li>
<li>This enables more powerful insulation items to take up only one slot</li>
<li>Added custom tooltip graphic for "compound" insulation items</li>
<li>Added new parameter to insulator configs: "fill_slots"
<ul style="margin-left: 15px;">
<li>This will make the insulator take up multiple slots as normal</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Armor now drops its insulation upon breaking</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Armor items that provide built-in insulation can now accept insulation themselves</span>
<ul style="margin-left: 10px;">
<li>Built-in armor insulation can also be configured to either take up the item's available insulation slots, or not</li>
</ul>
</li>
<li>Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
<ul style="margin-left: 10px;">
<li>Added leather and goat fur to the tag by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation-granting armors (leather, hoglin hide, goat fur, chameleon scale) can no longer be sewn into other armor by default</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Increased the amount of insulation provided by leather, hoglin hide, goat fur, and chameleon scale armor when worn by 20%</span>
<ul style="margin-left: 10px;">
<li>This incentivizes players to</li>
</ul>
</li>
<li>Adaptive insulation now adapts at a consistent rate instead of slowing down as it reaches its target</li>
<li>Minecart insulation can now be crafted with fur instead of wool</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Hearth, Boiler & Icebox Changes:</span>
<ul style="font-size: 13;">
<li>The hearth/boiler now emit warm air particles from their smokestacks, rather than smoke</li>
<li>The fuel slot of iceboxes/boilers can no longer be taken from by automation (i.e. hoppers)
<ul style="margin-left: 10px;">
<li>This makes automation easier and more consistent with Vanilla blocks like furnaces</li>
</ul>
</li>
<li>Moved the hearth's fluid intakes to coincide with its fuel inputs</li>
<li><span style="color: #ffffff; font-weight: bold;">The hearth's redstone inputs have been changed:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Heat is now emitted if the left or back side is powered</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Cold is not emitted if the right or bottom side is powered</span></li>
<li>Tweaked the design of the redstone inputs to be more obvious</li>
<li>The redstone inputs are now hidden if "Automatic Hearth" is enabled in the configs</li>
</ul>
</li>
<li>Dried kelp blocks can now be used as fuel in hearths and boilers</li>
<li>Adjusted the fuel values of some items:
<ul style="margin-left: 10px;">
<li>Coal: 37 -> 55</li>
<li>Logs: 37 -> 40</li>
<li>Dried Kelp Block: 92 -> 40</li>
<li>Coal Block: 333 -> 500</li>
<li>Snow Block: 100 -> 40</li>
<li><span style="color: #ffffff; font-weight: bold;">These changes will be applied automatically upon updating</span></li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 10px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Soul Sprout/Stalk Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 10px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul sprouts can now be planted with dispensers</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Removed sticks from the loot table for soul stalk</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 10px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>Soul stalk now generates more commonly in the soul sand valley biome</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Texture Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added new block textures to the hearth for when it is burning hot fuel or has cold fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Redesigned some parts of the hearth, boiler, and icebox GUIs</span>
<ul style="margin-left: 10px;">
<li>New fuel gauge textures that are more in line with Vanilla</li>
<li>Less prominent particle visibility toggle button</li>
<li>Tweaked the position & design of redstone current indicators</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Tweaked sewing table block and GUI textures</span></li>
<li>Tweaked textures for several other things:
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Items:</span>
<ul style="margin-left: 15px;">
<li>Chameleon Molt</li>
<li>Chameleon Scale Armor</li>
<li>Goat Fur Parka</li>
<li>Hoglin Hide Armor</li>
<li>Hearth</li>
<li>Insulated Minecart (very slightly)</li>
<li>These changes are a mix of general design improvements and more closely aligning them with the Vanilla style</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Blocks:</span>
<ul style="margin-left: 15px;">
<li>Boiler, Icebox</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">UI:</span>
<ul style="margin-left: 15px;">
<li>World temperature gauge (both with and without thermometer)</li>
<li>Ice Resistance icon</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Water-Related Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Water droplets are now tinted to the biome's water color</span></li>
<li>Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction</li>
<li>Made water droplets more evenly distributed when the player emerges from water</li>
<li><span style="color: #ffffff; font-weight: bold;">Water droplets no longer display if the player is fully immune to water</span></li>
<li>Tweaked water droplet trails to not be so long in colder temperatures</li>
<li>Added option to change the opacity of water droplets on-screen
<ul style="margin-left: 10px;">
<li>Slightly reduced opacity by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Being wet now extinguishes fire, and being on fire now dries the player</span></li>
<li>Waterskins now make the player wet when poured</li>
<li>Removed the cooldown when filling waterskins</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">World Temperature Changes:</span>
<ul style="font-size: 13;">
<li>The temperature underground is now 60 °F instead of 75 °F</li>
<li>Adjusted the temperature of plains biomes to be warmer at night</li>
<li>Adjusted the temperature of river biomes to match plains biomes</li>
<li>Decreased the temperatures of some cold biomes that generate ice, so the ice doesn't immediately melt</li>
<li><span style="color: #ffffff; font-weight: bold;">Water temperature is now biome-dependent</span>
<ul style="margin-left: 10px;">
<li>Each biome has its own "water_temp" field in JSON</li>
<li>Can also be set in toml by adding a parameter after the "units" parameter</li>
<li>Setting this is optional. If unset, a default water temperature will be used</li>
</ul>
</li>
<li>Temperature changes from shade and overcast mechanics are now handled by a single dedicated temperature modifier
<ul style="margin-left: 10px;">
<li>This change "upgrades" the shade mechanic from being a side-effect of the depth system to a real feature</li>
<li>In turn, the depth system now does not count leaf blocks as solid ground</li>
<li>The temperature effect of shade/overcast can be configured with the "Shade Temperature Offset" setting, which replaces "Overcast Temperature Offset"</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases</span>
<ul style="margin-left: 10px;">
<li>This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective</li>
<li>This should make it more fair as both a tool for warming up and a hazard to avoid</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Player Temperature Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added a new "acclimation" mechanic:</span>
<ul style="margin-left: 10px;">
<li>By spending time in hotter or colder climates, player can now adapt to more comfortably live in them</li>
<li>This causes their livable temperature range to be shifted upward or downward</li>
<li>The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)</li>
<li>Complete acclimation takes about 15 minutes (also configurable)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate</li>
<li>If the player is in a 400°F/200°C area, they will take damage much faster</li>
<li>Wearing insulation slows down the rate of damage</li>
</ul>
</li>
<li>Switching to spectator mode now sets your body temperature to 0</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Misc. Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The heart of the sea inside the soulspring lamp is now animated</span></li>
<li>Changed wording of "it is freezing/sweltering outside" messages to "it is freezing/sweltering here" for more clarity</li>
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Removed "un-crafting" recipes for packed ice and blue ice
<ul style="margin-left: 10px;">
<li>These recipes were arbitrary and could lead to duplication with some mods</li>
</ul>
</li>
<li>The thermometer can now be equipped as a curio by right-clicking</li>
<li><span style="color: #ffffff; font-weight: bold;">Increased ice resistance potion durations:</span>
<ul style="margin-left: 10px;">
<li>Normal length: 90 seconds -> 3 minutes</li>
<li>Extended length: 3 minutes -> 6 minutes</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)</li>
<li>Naturally-generated igloos are no longer warmer inside</li>
<li>Changed the sewing table recipe to be consistent with other workstations (like the smithing table)</li>
<li>If the player is on fire and wet, they will now be extinguished and dried off</li>
<li>Eating temperature-affecting foods now properly replaces the preexisting effect for that item
<ul style="margin-left: 10px;">
<li>i.e. eating a soul sprout will now reset the "coldness" timer if its effect is already active, rather than doing nothing</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Advancement Changes:</span>
<ul style="font-size: 13;">
<li>Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack</li>
<li>The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering</li>
<li>Renamed the "Dressed to Go" advancement to "Dressed for a Quest"</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">UI Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added UI element displaying food temperature effects</span>
<ul style="margin-left: 10px;">
<li>Shows a timer for the effect, and its strength</li>
<li>Has settings for repositioning and toggling like other UI elements</li>
</ul>
</li>
<li>Increased the responsiveness of body temperature UI elements</li>
<li>The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used</li>
<li>The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100</li>
<li>ID Changes:-</li>
<li><span style="color: orange;">! Changed armor item IDs to follow the normal helmet/chestplate/leggings/boots convention</span>
<ul style="margin-left: 10px;">
<li>i.e. cold_sweat:goat_fur_parka is now cold_sweat:goat_fur_chestplate</li>
<li>Old configs targeting these IDs will continue to work, but should be updated when possible</li>
<li>Existing items in worlds will be automatically converted to the new IDs</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Config Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Big improvements to config files:</span>
<ul style="margin-left: 10px;">
<li>Improved the formatting and wording of comments, making them more readable and clear</li>
<li>Improved the spacing between config settings and comments, making it easier to locate specific settings</li>
<li>List-based configs are now formatted vertically with one element per line, rather than all elements on one line
<ul style="margin-left: 15px;">
<li>This behavior is indicated by the "//v" tag at the top of the config's comment. Removing the tag reverts this behavior</li>
<li>Formatting changes take effect upon restarting the game</li>
</ul>
</li>
<li><span style="color: orange;">! Existing configs should be updated automatically, but backing up is recommended</span></li>
<li>TOML configs that take in IDs, like blocks, items, entities, biomes, etc. now support negation (i.e. "!minecraft:stone")
<ul style="margin-left: 15px;">
<li>Most useful when used in lists. Excludes the given ID from having the setting applied to it</li>
<li>Also supports negating tags ("!#minecraft:leaves")</li>
<li>i.e. "#forge:dyes,!minecraft:black_dye" applies to all dyes EXCEPT black dye</li>
</ul>
</li>
<li><span style="color: orange;">! Some config settings have been moved:</span>
<ul style="margin-left: 15px;">
<li>"Require Thermometer": main.toml -> item.toml</li>
<li>"Fire/Ice Resistance Immunity" main.toml -> item.toml</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature":</span>
<ul style="margin-left: 10px;">
<li>TOML: "Carried Item Temperatures" -> "Item Temperatures"</li>
<li><span style="color: #ffffff; font-weight: bold;">TOML configs will be RESET. Please back up TOML configs before updating</span></li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Mod compat for specific mods can now be disabled by using the "disabled_mods" file in the CS config folder</span>
<ul style="margin-left: 10px;">
<li>These mods will still work, but special integration features will not be applied</li>
</ul>
</li>
<li>Insulation tooltips can now be configured to show under specific circumstances (client.toml):
<ul style="margin-left: 10px;">
<li>"always": Always show the tooltip (even for armor items with no insulation)</li>
<li>"if_present": The default behavior. Shows the tooltip only if the item gives or has insulation</li>
<li>"on_shift": Show the insulation tooltip if SHIFT is held (even for armor items with no insulation)</li>
<li>"shift_and_present": Show the tooltip if SHIFT is held AND the item gives or has insulation</li>
<li>"never": Never show the insulation tooltip for any items</li>
</ul>
</li>
<li>The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable (client.toml):
<ul style="margin-left: 10px;">
<li>Both can now be set to either drink or pour, so they can be swapped around or disabled</li>
<li>These settings are in client.toml and are player-specific</li>
</ul>
</li>
<li>Added setting to change how often the player takes damage when overheating/freezing (main.toml)
<ul style="margin-left: 10px;">
<li>This is the base value, which will still be increased when the player is in very extreme temperatures</li>
</ul>
</li>
<li>The "Require Thermometer" and "Fire/Ice Resistance Immunity" settings have been moved to item.toml</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>This includes new settings for changing the blur and camera sway effects from overheating</li>
</ul>
</li>
<li>Changed the name of "Temperature Damage" to "Temp. Damage" so it fits better in the config menu</li>
<li>Rearranged some config settings in the in-game menu to be less cramped and more organized</li>
<li>Default water temperature and soak speed are now configurable (world.toml)
<ul style="margin-left: 10px;">
<li>"Soak speed" controls how fast the player becomes wet</li>
<li>Rain soak speed and water soak speed are individually configurable</li>
</ul>
</li>
<li>Added new configs for the waterskin:
<ul style="margin-left: 10px;">
<li>"Waterskin Hotbar Strength": The strength of the gradual cooling/heating of waterskins in the hotbar</li>
<li>"Waterskin Neutralize Speed": The speed at which waterskins' temperature will drain when in the hotbar</li>
</ul>
</li>
<li>Added option to give filled waterskins more than one use when drinking</li>
<li>Lava temperature is now TOML-based so it can be more easily changed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Command Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat reload"</span>
<ul style="margin-left: 10px;">
<li>Reloads all configs (TOML, JSON, KubeJS) live, without having to rejoin the world or restart the server</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat dumpconfigs"</span>
<ul style="margin-left: 10px;">
<li>Dumps all loaded config data into the "config/coldsweat/dump" directory</li>
<li>Useful for debugging or when making datapacks</li>
</ul>
</li>
<li>The "modify" subcommand for /temperature has been renamed to "attribute"</li>
<li>Added "add" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Increases/Decreases the target's body temperature by the specified amount</li>
</ul>
</li>
<li>Added "modifier" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Enables adding/removing temperature modifiers on entities</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tooltip Changes:</span>
<ul style="font-size: 13;">
<li>Some insulators that require certain criteria now display a hint in their tooltip
<ul style="margin-left: 10px;">
<li>i.e. the Create netherite backtank now has the requirement "Wearing full netherite diving suit" in its tooltip</li>
<li>Implementation of this system is explained in the "Technical Changes" section</li>
</ul>
</li>
<li>When hovering over an insulation item, holding CTRL now shows its exact numerical insulation value</li>
<li><span style="color: #ffffff; font-weight: bold;">Adjusted how the tooltip for filled waterskins is displayed:</span>
<ul style="margin-left: 10px;">
<li>No longer shows water temperature in real-world units. This looks arbitrary when the player's body temperature ranges from -100 to 100</li>
<li>Instead, shows a "When Used" tooltip showing the actual effect it has on your temperature (between -50 and 50 by default)</li>
</ul>
</li>
<li>(1.16) Improved the reliability of tooltip image insertions, especially when other mods are installed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Entity Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons now require player interaction to shed</span>
<ul style="margin-left: 10px;">
<li>This is to inhibit very easy farming by putting a chameleon on top of a hopper</li>
<li>When a chameleon is ready to shed, it will start emitting particles and send a vibration with signal strength 4</li>
<li>When the player right-clicks the chameleon, it will shed chameleon molt as normal
<ul style="margin-left: 15px;">
<li>This can also be done with shears in a dispenser</li>
</ul>
</li>
<li>This change can be reverted by enabling "Chameleons Shed Automatically" in entity.toml</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
<ul style="margin-left: 10px;">
<li><span style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml</span></li>
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system
<ul style="margin-left: 15px;">
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
</ul>
</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li>Entities caught on fire will now heat up the nearby area
<ul style="margin-left: 10px;">
<li>You can also warm yourself up this way!</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">General:</span>
<ul style="font-size: 13;">
<li>Added SimpleTempModifier (cold_sweat:simple), a basic TempModifier controlled by NBT
<ul style="margin-left: 10px;">
<li>Good for use in commands or simple KubeJS implementations</li>
<li>Parameters:
<ul style="margin-left: 15px;">
<li>"Temperature": The value to apply to the entity's temperature</li>
<li>"Operation": Any of: add, subtract, multiply, divide, power, root, set, max, min
<ul style="margin-left: 20px;">
<li>Augment what the modifier does to the entity's temperature</li>
<li>"set" overrides the entity's temperature with the modifier's value</li>
<li>"max" ensures the entity's temperature is >= the modifier's value</li>
<li>"min" ensures the entity's temperature is <= the modifier's value</li>
</ul>
</li>
</ul>
</li>
<li>Changes to the modifier's NBT will be reflected immediately</li>
<li>When modifying the NBT in Java or KubeJS, make sure to call markDirty() so the changes are sent to clients</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tags:</span>
<ul style="font-size: 13;">
<li>Chameleons will now target and eat any entities in the #cold_sweat:chameleon_eats tag</li>
<li>Create backtank pressure now drains if the player has any insulator equipped that is in the #drains_backtank tag and passes its requirements</li>
<li>Added #forge:soul_campfires tag (#c:soul_campfires in NeoForge), which is now used by the block temperature of soul campfires</li>
<li>Blocks which are affected by the "Cold Soul Fire" setting are now controlled by the "forge:soul_fire" tag ("c:soul_fire" in NeoForge)
<ul style="margin-left: 10px;">
<li>Any blocks in this tag will have their temperatures inverted if the setting is enabled</li>
</ul>
</li>
<li>Armor crafting and repair materials are now handled by tags:
<ul style="margin-left: 10px;">
<li>Hoglin: #forge:leathers/hoglin</li>
<li>Goat Fur: #forge:furs/goat</li>
<li>Chameleon: #forge:scales/chameleon</li>
<li>These tags are in the "c" domain in 1.21 (i.e. "c:furs/goat")</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">JSON:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! The "data" field in item JSON configs has been renamed to "item" for consistency with other configs</span></li>
<li><span style="color: orange;">! (1.16) The file structure of JSON registries has changed to match that of other versions:</span>
<ul style="margin-left: 10px;">
<li>Registries are now located in data/<yourmod>/cold_sweat/* (instead of data/cold_sweat/config/*)</li>
<li>This means that JSON registries registered by other mods will have that mod's namespace in their IDs</li>
<li>Datapacks still do not work. This is only for mod developers</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature" (item/carried_temp -> item/item_temp)</span>
<ul style="margin-left: 10px;">
<li>JSON configs will not work until they are put in the new directory. No formatting changes are required</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Some arguments for JSON configs now support a new type "Negatable List":</span>
<ul style="margin-left: 10px;">
<li>Defines a list of "requirements" and "exclusions" which must be met</li>
<li>Example: "entity":{"require":[{"entities":[#minecraft:skeletons]}],"exclude":[{"entities":[minecraft:wither_skeleton]}]}
<ul style="margin-left: 15px;">
<li>Applies to all skeleton types except wither skeletons</li>
</ul>
</li>
<li>Any block, entity, item, or location requirement can be negated in this way (except fields defined within requirements themselves)</li>
<li>The "old" format of these arguments will continue to be supported (i.e. "entity":{"entities":[#minecraft:skeletons]})</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded the registry removal system into a new system called "registry modifiers"</span>
<ul style="margin-left: 10px;">
<li>Registry modifiers can edit the data of existing configs, or disable them like before</li>
<li>A registry modifier contains a list of operations, which support the following:
<ul style="margin-left: 15px;">
<li>"disable": Disables the config (same as before)</li>
<li>"replace": Replaces a field with the given data</li>
<li>"merge": Merges the given data with the existing data, with the new data overwriting the existing data
<ul style="margin-left: 20px;">
<li>If the data contains a list, the new list will be appended to the existing list</li>
</ul>
</li>
<li>"append": Merges the given data without overwriting any existing data
<ul style="margin-left: 20px;">
<li>Does not affect lists</li>
</ul>
</li>
<li>"remove": Removes the specified keys from the config. Also supports removing list elements</li>
</ul>
</li>
<li><span style="color: orange;">! Because this new system introduces formatting changes, existing registry removal configs will need to be updated</span></li>
<li><span style="color: #ffffff; font-weight: bold;">See the documentation for formatting guides and examples</span></li>
</ul>
</li>
<li>The "matches" field in registry modifiers now uses NBT requirements instead of normal NBT
<ul style="margin-left: 10px;">
<li>This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used</li>
</ul>
</li>
<li>Registry modifiers can now choose which config types to target via the "config_type" field
<ul style="margin-left: 10px;">
<li>Accepts a list of strings ("toml", "json", or "kubejs")</li>
</ul>
</li>
<li>Registry modifiers now support targeting JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
<ul style="margin-left: 10px;">
<li>This does not work for TOML or KubeJS configs, as they do not have registry IDs</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">JSON configs can now use a wildcard "*" to apply to all objects in a registry</span>
<ul style="margin-left: 10px;">
<li>i.e. {"items": ["*"]} applies to all items</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The "items" field in JSON item requirements, and "entities" field in entity requirements, are now required</span>
<ul style="margin-left: 10px;">
<li>This is because configs now do nothing if these fields are empty</li>
</ul>
</li>
<li>Enum-type config fields in JSON are now case-insensitive (previously required lower-case)
<ul style="margin-left: 10px;">
<li>Examples of field types affected:
<ul style="margin-left: 15px;">
<li>Temperature Units (i.e. "f", "C", "Mc")</li>
<li>Temperature Type (i.e. "world", "CORE", "fReEzInG_pOiNt")</li>
<li>Config Type (i.e. "toml", "JSON", "KubeJS")</li>
<li>Slot Type (i.e. "head", "CHEST", "Inventory")</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation item configs now accept a list of insulation</span>
<ul style="margin-left: 10px;">
<li>This allows for adding multiple types (or slots) of insulation to a single item</li>
<li>Example: "insulation": [{"cold": 1, "hot": 0}, {"cold": 1, "hot": 0} (occupies 2 slots with lesser cold insulation)</li>
<li>Defining a single insulation is still allowed as to not break existing JSON</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "world temp" requirement for JSON</span>
<ul style="margin-left: 10px;">
<li>Accepts decimal values</li>
<li>Also accepts some preset string values:
<ul style="margin-left: 15px;">
<li>"freezing", "cold", "cool", "temperate", "warm", "hot", "burning"</li>
<li>Ordered from coldest to hottest. Based on the min/max temperature config settings</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Now used in the min/max_temp fields in block temperature JSON</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Added as "world temp bounds" to location requirement JSON:</span>
<ul style="margin-left: 15px;">
<li>Has min/max values, each of which is a world temp requirement</li>
</ul>
</li>
</ul>
</li>
<li>Block temperature JSON configs can now be added to "effect groups"
<ul style="margin-left: 10px;">
<li>Block temperatures in an effect group will count towards each other's max effect limits</li>
<li>i.e. if redstone lamps and copper bulbs are part of the same group, redstone lamps will count towards the max number of copper bulbs and vice-versa</li>
<li>Implemented via the "effect_group" field in block temperature JSON configs
<ul style="margin-left: 15px;">
<li>This field takes in a tag ID containing block temps (i.e. "yourpack:yourtag" [no #hashtag])</li>
<li>Add your block temp tag to data/<yourpack>/tags/cold_sweat/block/block_temp/<yourtag>.json</li>
<li>Include the IDs of the block temps in the tag (i.e. "yourpack:your_block_temp")</li>
</ul>
</li>
</ul>
</li>
<li>The min/max temperature fields in block temperature JSON are now world temp requirements</li>
<li>Added "temperature" field to location requirement</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added a "hint" field that takes two optional arguments:
<ul style="margin-left: 15px;">
<li>"text": Display static text</li>
<li>"key": Use a translation key</li>
<li>Usage: "hint": {"text": "Wearing full iron armor", "key": "tooltip.cold_sweat.example"}</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "key" will be tried first and "text" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added optional "affects_self" field to entity temperature JSON configs
<ul style="margin-left: 10px;">
<li>This will cause the entity to be affected by its own temperature (defaults to "false")</li>
</ul>
</li>
<li>Added optional fields "count" and "location" to entity spawn biome configs:
<ul style="margin-left: 10px;">
<li>"count": The number of entities that can spawn in a group</li>
<li>"location": A negatable list of location requirements that must be met for the entity to spawn</li>
</ul>
</li>
<li>Added optional "location" field to block temperature JSON</li>
<li>Added new field to insulator configs: "fill_slots"
<ul style="margin-left: 10px;">
<li>This will make the insulator take up multiple slots if its total insulation is more than 2 (reverts the new "one item per slot" system)</li>
<li>This is "true" by default</li>
</ul>
</li>
<li>(1.20-) Added new type-specific entity requirements (ported from 1.21):
<ul style="margin-left: 10px;">
<li>(1.18+) "variant": Checks the entity's variant (cat color, axolotl color, etc.)</li>
<li>"fishing_hook": Checks if the fishing bobber entity is in open water (this is a Vanilla thing, IDK)</li>
<li>(1.18+) "lightning_bolt": Checks blocks set on fire and entities struck by the lightning</li>
<li>"piglin_neutral_armor": Checks if the entity is wearing armor that pacifies piglins</li>
<li>"player": Checks player-specific data (game mode, stats, advancements, etc.)</li>
<li>"raider": Checks pillager-specific data (part of an active raid, is the raid captain)</li>
<li>"slime": Checks the size of the slime</li>
<li>(1.18+) "snow_boots": Checks if the player is wearing boots that prevent falling through powder snow</li>
</ul>
</li>
<li>All JSON configs that start with the word "default" will be loaded last, rather than just the ones named "default"</li>
<li>Insulating mount JSON now has an "immune_temp_modifiers" field, similar to insulator items</li>
<li>The "cold_insulation" and "heat_insulation" fields in insulating mount JSON are now optional (defaulting to 0)</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])</li>
<li><span style="color: orange;">! Formatting changes to numerical ranges in NBT</span>
<ul style="margin-left: 10px;">
<li>Now separated by a colon (:) instead of a hyphen (-)
<ul style="margin-left: 15px;">
<li>This is to enable the use of negative numbers, which was previously not possible</li>
<li>Example: {"Damage": "5-10"} -> {"Damage": "5:10"}</li>
</ul>
</li>
<li>Now support boundless ranges
<ul style="margin-left: 15px;">
<li>Example: {"Damage": "5:"} means 5 or more, {"Damage": ":10"} means 10 or less</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">KubeJS:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature"</span>
<ul style="margin-left: 10px;">
<li>In ModRegistriesEvent: addCarriedItemTemperature() -> addItemTemperature()</li>
</ul>
</li>
<li>Added entity temperature, spawn biome, and insulating mount configs support to KubeJS</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added "hintText" and "hintKey" methods to insulator builders:
<ul style="margin-left: 15px;">
<li>hintText: Text to be displayed</li>
<li>hintKey: A translation key for the text to be displayed</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "hintKey" will be tried first and "hintText" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)</li>
<li>KubeJS configs are now passed through the normal config pipeline
<ul style="margin-left: 10px;">
<li>They are now present in CreateRegistriesEvent</li>
<li>They can now be targeted by registry modifiers</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Java:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Custom Cold Sweat registries are now officially unsupported in 1.18</span>
<ul style="margin-left: 10px;">
<li>This is because 1.18's registry loading system disallows initializing registries outside the standard time during mod loading</li>
<li>Because not all mods have been loaded yet at this stage, there is no guarantee that all registries will load successfully</li>
</ul>
</li>
<li><span style="color: orange;">! Rearranged/simplified some methods in ItemInsulationManager</span>
<ul style="margin-left: 10px;">
<li>Some methods have been removed or renamed. See the code for details</li>
</ul>
</li>
<li><span style="color: orange;">! Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 10px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 10px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 10px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Temperature effects are now a modular system</span>
<ul style="margin-left: 10px;">
<li>Added a new TempEffect Forge (Java-based) registry</li>
<li>Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect</li>
<li>TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
<ul style="margin-left: 15px;">
<li>i.e. health freezes over if the player's temperature is between -50 and -100</li>
</ul>
</li>
<li>This system will be expanded upon and more thoroughly documented in the future</li>
</ul>
</li>
<li>TemperatureChangedEvent now fires every time an entity's temperature changes, instead of only when it is changed manually</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 10px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 10px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise but more performant than getTemperatureAt()</li>
</ul>
</li>
<li>CreateRegistriesEvent has been broken up into two events:
<ul style="margin-left: 10px;">
<li>AddRegistriesEvent: Fires right before Cold Sweat registers its registries to Minecraft's datapack system.
<ul style="margin-left: 15px;">
<li>Use this event to make new registries. They will now be properly registered as Minecraft registries</li>
</ul>
</li>
<li>LoadRegistriesEvent: Drop-in replacement for CreateRegistriesEvent. Has Pre/Post sub-classes that fire at the same stages of registry loading</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Custom registries are now initialized during startup immediately after mods are loaded, instead of upon joining a world/server</span></li>
<li>registerByClassName() in TempModifierRegisterEvent now accepts constructor arguments as its last parameter (varargs)
<ul style="margin-left: 10px;">
<li>These arguments will be passed to the constructor of the modifier class upon creation</li>
</ul>
</li>
<li>Added new methods to TempModifier that fire when they are are added/removed on an entity:
<ul style="margin-left: 10px;">
<li>onAdded/onRemoved: Fires on the TempModifier immediately when it is added/removed</li>
<li>onSiblingAdded/onSiblingRemoved: Fires on all other TempModifiers applied to a trait when a new modifier is added/removed</li>
</ul>
</li>
</ul>
<br>
</div>
[2.4] Cold Sweat 2.4 by Mikul on Oct 14, 2026
Download
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 22;
font-weight: bold;">2.4</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Mod Compatibility Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added integration with JEI:</span>
<ul style="margin-left: 10px;">
<li>Insulation items have "sewing" recipes, showing how they can be applied to armor</li>
<li>Fuel items for the hearth, boiler, and icebox have recipes showing how long they last</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded/Tweaked integration with Create:</span>
<ul style="margin-left: 10px;">
<li>Pipes and fluid tanks now emit temperature if they contain fluids that emit temperature</li>
<li>Boilers now emit temperature based on the temperature of the water inside them</li>
<li>Blaze burners now emit heat when fueled</li>
<li>The netherite jetpack from Create: Stuff n' Additions now grants 90% heat dampening when the full set is worn</li>
<li>Create's netherite backtank no longer provides cold protection by default</li>
<li>The attribute modifiers for the Create netherite diving set have been removed from the helmet, leggings, and boots
<ul style="margin-left: 15px;">
<li>The backtank now gives the full effect (+100% heat dampening, +50% cold dampening)</li>
</ul>
</li>
</ul>
</li>
<li>Added integration with Iron's Spells & Spellbooks:
<ul style="margin-left: 10px;">
<li>The Frostward and Fireward rings now give buffs that allow the player to survive in colder/hotter climates</li>
</ul>
</li>
<li>Added integration with Boatload:
<ul style="margin-left: 10px;">
<li>Furnace boats now emit temperature if fueled</li>
<li>For parity, furnace minecarts now also emit temperature if fueled</li>
</ul>
</li>
<li>Added integration with Ad Astra:
<ul style="margin-left: 10px;">
<li>This is an updated and fixed port of Mars Popsicle by igalaxy</li>
</ul>
</li>
<li>Added integration with Regions Unexplored:
<ul style="margin-left: 10px;">
<li>Added custom temperatures to many biomes</li>
</ul>
</li>
<li>Added integration with Soul Fire'd:
<ul style="margin-left: 10px;">
<li>When an entity is burning from soul fire, it will now emit cold</li>
<li>This is an entity_temp defined via JSON</li>
</ul>
</li>
<li>Added integration with some Tough as Nails items:
<ul style="margin-left: 10px;">
<li>Wool armor: provides the same insulation as wool</li>
<li>Leaf armor: provides the same insulation as leather, but with no cold protection</li>
<li>Thermoregulator: now gives warmth & frigidness as a hearth would</li>
</ul>
</li>
<li>Improved Primal Winter support:
<ul style="margin-left: 10px;">
<li>Now respects disabled biomes/dimensions in Primal Winter's config</li>
<li>Only decreases the temperature for configured biomes, since Primal Winter already changes default biome temperatures</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">New armor set: Chameleon Scale:</span>
<ul style="font-size: 13;">
<li>Crafted with chameleon molt in typical armor patterns</li>
<li><span style="color: #ffffff; font-weight: bold;">Visually adapts to the ambient temperature</span></li>
<li>Each armor piece provides 20% more than maximum adaptive insulation</li>
<li>Cannot be insulated in the sewing table</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Smokestack Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The smokestack block can now be placed in all directions</span>
<ul style="margin-left: 10px;">
<li>This allows for creating "pipes" that transport air from the hearth/boiler/icebox</li>
<li>This is a built-in alternative to using Create's pipes, but those still work as well</li>
<li>A smokestack connected on more than one axis (like in corners) will become a "junction", which takes up a full block</li>
<li>Junctions do not allow air to pass around them- only through them via connected smokestacks</li>
<li>A smokestack can be right-clicked with cobblestone to create a junction, which is useful for venting air through walls</li>
<li>The smoke & steam emitted from the thermal sources will travel through the smokestack line and emit from the end(s)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Changed the smokestack recipe:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">No longer require redstone to craft</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Now gives 4 smokestacks</span>
<ul style="margin-left: 15px;">
<li>This is more efficient with resources and will hopefully clue players into the fact that multiple can be connected together</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Insulation Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Tweaked how the insulation system works:</span>
<ul style="margin-left: 10px;">
<li>Each insulation slot now represents an item, rather than 2 insulation points</li>
<li>This enables more powerful insulation items to take up only one slot</li>
<li>Added custom tooltip graphic for "compound" insulation items</li>
<li>Added new parameter to insulator configs: "fill_slots"
<ul style="margin-left: 15px;">
<li>This will make the insulator take up multiple slots as normal</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Armor now drops its insulation upon breaking</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Armor items that provide built-in insulation can now accept insulation themselves</span>
<ul style="margin-left: 10px;">
<li>Built-in armor insulation can also be configured to either take up the item's available insulation slots, or not</li>
</ul>
</li>
<li>Using 4 or more insulation items that are part of the #minecraft:freeze_immune_wearables will now prevent the player from freezing in powder snow
<ul style="margin-left: 10px;">
<li>Added leather and goat fur to the tag by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation-granting armors (leather, hoglin hide, goat fur, chameleon scale) can no longer be sewn into other armor by default</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Increased the amount of insulation provided by leather, hoglin hide, goat fur, and chameleon scale armor when worn by 20%</span>
<ul style="margin-left: 10px;">
<li>This incentivizes players to</li>
</ul>
</li>
<li>Adaptive insulation now adapts at a consistent rate instead of slowing down as it reaches its target</li>
<li>Minecart insulation can now be crafted with fur instead of wool</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Hearth, Boiler & Icebox Changes:</span>
<ul style="font-size: 13;">
<li>The hearth/boiler now emit warm air particles from their smokestacks, rather than smoke</li>
<li>The fuel slot of iceboxes/boilers can no longer be taken from by automation (i.e. hoppers)
<ul style="margin-left: 10px;">
<li>This makes automation easier and more consistent with Vanilla blocks like furnaces</li>
</ul>
</li>
<li>Moved the hearth's fluid intakes to coincide with its fuel inputs</li>
<li><span style="color: #ffffff; font-weight: bold;">The hearth's redstone inputs have been changed:</span>
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Heat is now emitted if the left or back side is powered</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Cold is not emitted if the right or bottom side is powered</span></li>
<li>Tweaked the design of the redstone inputs to be more obvious</li>
<li>The redstone inputs are now hidden if "Automatic Hearth" is enabled in the configs</li>
</ul>
</li>
<li>Dried kelp blocks can now be used as fuel in hearths and boilers</li>
<li>Adjusted the fuel values of some items:
<ul style="margin-left: 10px;">
<li>Coal: 37 -> 55</li>
<li>Logs: 37 -> 40</li>
<li>Dried Kelp Block: 92 -> 40</li>
<li>Coal Block: 333 -> 500</li>
<li>Snow Block: 100 -> 40</li>
<li><span style="color: #ffffff; font-weight: bold;">These changes will be applied automatically upon updating</span></li>
</ul>
</li>
<li>The boiler now only lights up when it is performing a fuel-draining task:
<ul style="margin-left: 10px;">
<li>Heating waterskins</li>
<li>Purifying drinkable items (with Thirst Was Taken)</li>
<li>Warming a room with a smokestack</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Soul Sprout/Stalk Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Soul stalks now have an initial "bud" stage when placed</span>
<ul style="margin-left: 10px;">
<li>This is a small, 1-block-tall stage that will grow into a full stalk</li>
</ul>
</li>
<li>Soul stalks now grow twice as fast, and bear soul sprouts 60% more often</li>
<li><span style="color: #ffffff; font-weight: bold;">Soul sprouts can now be planted with dispensers</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Removed sticks from the loot table for soul stalk</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Glowstone can now be used to "bonemeal" soul stalks (#cold_sweat:grows_soul_stalk)</span>
<ul style="margin-left: 10px;">
<li>It can also be applied by a dispenser</li>
</ul>
</li>
<li>Soul stalk now generates more commonly in the soul sand valley biome</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Texture Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added new block textures to the hearth for when it is burning hot fuel or has cold fuel</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Redesigned some parts of the hearth, boiler, and icebox GUIs</span>
<ul style="margin-left: 10px;">
<li>New fuel gauge textures that are more in line with Vanilla</li>
<li>Less prominent particle visibility toggle button</li>
<li>Tweaked the position & design of redstone current indicators</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Tweaked sewing table block and GUI textures</span></li>
<li>Tweaked textures for several other things:
<ul style="margin-left: 10px;">
<li><span style="color: #ffffff; font-weight: bold;">Items:</span>
<ul style="margin-left: 15px;">
<li>Chameleon Molt</li>
<li>Chameleon Scale Armor</li>
<li>Goat Fur Parka</li>
<li>Hoglin Hide Armor</li>
<li>Hearth</li>
<li>Insulated Minecart (very slightly)</li>
<li>These changes are a mix of general design improvements and more closely aligning them with the Vanilla style</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Blocks:</span>
<ul style="margin-left: 15px;">
<li>Boiler, Icebox</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">UI:</span>
<ul style="margin-left: 15px;">
<li>World temperature gauge (both with and without thermometer)</li>
<li>Ice Resistance icon</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Water-Related Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Water droplets are now tinted to the biome's water color</span></li>
<li>Water droplets caused by being wet now only show on the sides of the screen to reduce obstruction</li>
<li>Made water droplets more evenly distributed when the player emerges from water</li>
<li><span style="color: #ffffff; font-weight: bold;">Water droplets no longer display if the player is fully immune to water</span></li>
<li>Tweaked water droplet trails to not be so long in colder temperatures</li>
<li>Added option to change the opacity of water droplets on-screen
<ul style="margin-left: 10px;">
<li>Slightly reduced opacity by default</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Being wet now extinguishes fire, and being on fire now dries the player</span></li>
<li>Waterskins now make the player wet when poured</li>
<li>Removed the cooldown when filling waterskins</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">World Temperature Changes:</span>
<ul style="font-size: 13;">
<li>The temperature underground is now 60 °F instead of 75 °F</li>
<li>Adjusted the temperature of plains biomes to be warmer at night</li>
<li>Adjusted the temperature of river biomes to match plains biomes</li>
<li>Decreased the temperatures of some cold biomes that generate ice, so the ice doesn't immediately melt</li>
<li><span style="color: #ffffff; font-weight: bold;">Water temperature is now biome-dependent</span>
<ul style="margin-left: 10px;">
<li>Each biome has its own "water_temp" field in JSON</li>
<li>Can also be set in toml by adding a parameter after the "units" parameter</li>
<li>Setting this is optional. If unset, a default water temperature will be used</li>
</ul>
</li>
<li>Temperature changes from shade and overcast mechanics are now handled by a single dedicated temperature modifier
<ul style="margin-left: 10px;">
<li>This change "upgrades" the shade mechanic from being a side-effect of the depth system to a real feature</li>
<li>In turn, the depth system now does not count leaf blocks as solid ground</li>
<li>The temperature effect of shade/overcast can be configured with the "Shade Temperature Offset" setting, which replaces "Overcast Temperature Offset"</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Lava now increases the player's temperature logarithmically (A.K.A. diminishing returns), as the amount of lava increases</span>
<ul style="margin-left: 10px;">
<li>This means one block of lava is more effective than before, but a whole pool of lava is slightly less effective</li>
<li>This should make it more fair as both a tool for warming up and a hazard to avoid</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Player Temperature Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added a new "acclimation" mechanic:</span>
<ul style="margin-left: 10px;">
<li>By spending time in hotter or colder climates, player can now adapt to more comfortably live in them</li>
<li>This causes their livable temperature range to be shifted upward or downward</li>
<li>The player can acclimate to live in climates up to 20°F/10°C hotter or colder than normal (configurable)</li>
<li>Complete acclimation takes about 15 minutes (also configurable)</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The rate at which the player is damaged by freezing/overheating is now dependent on how fast they are freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>For example, if the player is in a 100°F/37°C area, they will take damage at the normal rate</li>
<li>If the player is in a 400°F/200°C area, they will take damage much faster</li>
<li>Wearing insulation slows down the rate of damage</li>
</ul>
</li>
<li>Switching to spectator mode now sets your body temperature to 0</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Misc. Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">The heart of the sea inside the soulspring lamp is now animated</span></li>
<li>Changed wording of "it is freezing/sweltering outside" messages to "it is freezing/sweltering here" for more clarity</li>
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Removed "un-crafting" recipes for packed ice and blue ice
<ul style="margin-left: 10px;">
<li>These recipes were arbitrary and could lead to duplication with some mods</li>
</ul>
</li>
<li>The thermometer can now be equipped as a curio by right-clicking</li>
<li><span style="color: #ffffff; font-weight: bold;">Increased ice resistance potion durations:</span>
<ul style="margin-left: 10px;">
<li>Normal length: 90 seconds -> 3 minutes</li>
<li>Extended length: 3 minutes -> 6 minutes</li>
</ul>
</li>
<li>Soul fire now deals contact damage (like normal fire)</li>
<li>Naturally-generated igloos are no longer warmer inside</li>
<li>Changed the sewing table recipe to be consistent with other workstations (like the smithing table)</li>
<li>If the player is on fire and wet, they will now be extinguished and dried off</li>
<li>Eating temperature-affecting foods now properly replaces the preexisting effect for that item
<ul style="margin-left: 10px;">
<li>i.e. eating a soul sprout will now reset the "coldness" timer if its effect is already active, rather than doing nothing</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Advancement Changes:</span>
<ul style="font-size: 13;">
<li>Added new advancement "Getting Cozy" for successfully creating a setup with the icebox/boiler and a smokestack</li>
<li>The "Desperate Measures" advancement now requires the player to be standing in fire or lava to prevent accidental triggering</li>
<li>Renamed the "Dressed to Go" advancement to "Dressed for a Quest"</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">UI Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added UI element displaying food temperature effects</span>
<ul style="margin-left: 10px;">
<li>Shows a timer for the effect, and its strength</li>
<li>Has settings for repositioning and toggling like other UI elements</li>
</ul>
</li>
<li>Increased the responsiveness of body temperature UI elements</li>
<li>The icon of the input slot in the sewing table now switches between leather and shears to indicate that shears can be used</li>
<li>The body temperature readout (with a thermometer) now shows a gradient rising from the bottom as the player's temperature exceeds 100/-100</li>
<li>ID Changes:-</li>
<li><span style="color: orange;">! Changed armor item IDs to follow the normal helmet/chestplate/leggings/boots convention</span>
<ul style="margin-left: 10px;">
<li>i.e. cold_sweat:goat_fur_parka is now cold_sweat:goat_fur_chestplate</li>
<li>Old configs targeting these IDs will continue to work, but should be updated when possible</li>
<li>Existing items in worlds will be automatically converted to the new IDs</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Config Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Big improvements to config files:</span>
<ul style="margin-left: 10px;">
<li>Improved the formatting and wording of comments, making them more readable and clear</li>
<li>Improved the spacing between config settings and comments, making it easier to locate specific settings</li>
<li>List-based configs are now formatted vertically with one element per line, rather than all elements on one line
<ul style="margin-left: 15px;">
<li>This behavior is indicated by the "//v" tag at the top of the config's comment. Removing the tag reverts this behavior</li>
<li>Formatting changes take effect upon restarting the game</li>
</ul>
</li>
<li><span style="color: orange;">! Existing configs should be updated automatically, but backing up is recommended</span></li>
<li>TOML configs that take in IDs, like blocks, items, entities, biomes, etc. now support negation (i.e. "!minecraft:stone")
<ul style="margin-left: 15px;">
<li>Most useful when used in lists. Excludes the given ID from having the setting applied to it</li>
<li>Also supports negating tags ("!#minecraft:leaves")</li>
<li>i.e. "#forge:dyes,!minecraft:black_dye" applies to all dyes EXCEPT black dye</li>
</ul>
</li>
<li><span style="color: orange;">! Some config settings have been moved:</span>
<ul style="margin-left: 15px;">
<li>"Require Thermometer": main.toml -> item.toml</li>
<li>"Fire/Ice Resistance Immunity" main.toml -> item.toml</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature":</span>
<ul style="margin-left: 10px;">
<li>TOML: "Carried Item Temperatures" -> "Item Temperatures"</li>
<li><span style="color: #ffffff; font-weight: bold;">TOML configs will be RESET. Please back up TOML configs before updating</span></li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Mod compat for specific mods can now be disabled by using the "disabled_mods" file in the CS config folder</span>
<ul style="margin-left: 10px;">
<li>These mods will still work, but special integration features will not be applied</li>
</ul>
</li>
<li>Insulation tooltips can now be configured to show under specific circumstances (client.toml):
<ul style="margin-left: 10px;">
<li>"always": Always show the tooltip (even for armor items with no insulation)</li>
<li>"if_present": The default behavior. Shows the tooltip only if the item gives or has insulation</li>
<li>"on_shift": Show the insulation tooltip if SHIFT is held (even for armor items with no insulation)</li>
<li>"shift_and_present": Show the tooltip if SHIFT is held AND the item gives or has insulation</li>
<li>"never": Never show the insulation tooltip for any items</li>
</ul>
</li>
<li>The primary (right-click) and secondary (sneak-right-click) actions for the waterskin are now configurable (client.toml):
<ul style="margin-left: 10px;">
<li>Both can now be set to either drink or pour, so they can be swapped around or disabled</li>
<li>These settings are in client.toml and are player-specific</li>
</ul>
</li>
<li>Added setting to change how often the player takes damage when overheating/freezing (main.toml)
<ul style="margin-left: 10px;">
<li>This is the base value, which will still be increased when the player is in very extreme temperatures</li>
</ul>
</li>
<li>The "Require Thermometer" and "Fire/Ice Resistance Immunity" settings have been moved to item.toml</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "Temperature Effects" sub-page to the config menu, which allows for individually tweaking the negative effects of freezing/overheating</span>
<ul style="margin-left: 10px;">
<li>This includes new settings for changing the blur and camera sway effects from overheating</li>
</ul>
</li>
<li>Changed the name of "Temperature Damage" to "Temp. Damage" so it fits better in the config menu</li>
<li>Rearranged some config settings in the in-game menu to be less cramped and more organized</li>
<li>Default water temperature and soak speed are now configurable (world.toml)
<ul style="margin-left: 10px;">
<li>"Soak speed" controls how fast the player becomes wet</li>
<li>Rain soak speed and water soak speed are individually configurable</li>
</ul>
</li>
<li>Added new configs for the waterskin:
<ul style="margin-left: 10px;">
<li>"Waterskin Hotbar Strength": The strength of the gradual cooling/heating of waterskins in the hotbar</li>
<li>"Waterskin Neutralize Speed": The speed at which waterskins' temperature will drain when in the hotbar</li>
</ul>
</li>
<li>Added option to give filled waterskins more than one use when drinking</li>
<li>Lava temperature is now TOML-based so it can be more easily changed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Command Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat reload"</span>
<ul style="margin-left: 10px;">
<li>Reloads all configs (TOML, JSON, KubeJS) live, without having to rejoin the world or restart the server</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added command: "/coldsweat dumpconfigs"</span>
<ul style="margin-left: 10px;">
<li>Dumps all loaded config data into the "config/coldsweat/dump" directory</li>
<li>Useful for debugging or when making datapacks</li>
</ul>
</li>
<li>The "modify" subcommand for /temperature has been renamed to "attribute"</li>
<li>Added "add" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Increases/Decreases the target's body temperature by the specified amount</li>
</ul>
</li>
<li>Added "modifier" subcommand for /temperature
<ul style="margin-left: 10px;">
<li>Enables adding/removing temperature modifiers on entities</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tooltip Changes:</span>
<ul style="font-size: 13;">
<li>Some insulators that require certain criteria now display a hint in their tooltip
<ul style="margin-left: 10px;">
<li>i.e. the Create netherite backtank now has the requirement "Wearing full netherite diving suit" in its tooltip</li>
<li>Implementation of this system is explained in the "Technical Changes" section</li>
</ul>
</li>
<li>When hovering over an insulation item, holding CTRL now shows its exact numerical insulation value</li>
<li><span style="color: #ffffff; font-weight: bold;">Adjusted how the tooltip for filled waterskins is displayed:</span>
<ul style="margin-left: 10px;">
<li>No longer shows water temperature in real-world units. This looks arbitrary when the player's body temperature ranges from -100 to 100</li>
<li>Instead, shows a "When Used" tooltip showing the actual effect it has on your temperature (between -50 and 50 by default)</li>
</ul>
</li>
<li>(1.16) Improved the reliability of tooltip image insertions, especially when other mods are installed</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Entity Changes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Chameleons now require player interaction to shed</span>
<ul style="margin-left: 10px;">
<li>This is to inhibit very easy farming by putting a chameleon on top of a hopper</li>
<li>When a chameleon is ready to shed, it will start emitting particles and send a vibration with signal strength 4</li>
<li>When the player right-clicks the chameleon, it will shed chameleon molt as normal
<ul style="margin-left: 15px;">
<li>This can also be done with shears in a dispenser</li>
</ul>
</li>
<li>This change can be reverted by enabling "Chameleons Shed Automatically" in entity.toml</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Entities can now be configured to be affected by temperature</span>
<ul style="margin-left: 10px;">
<li><span style="color: orange;">! This mechanic is experimental and disabled by default. It can be enabled in entity.toml</span></li>
<li>Configured animals will heat up and cool down, and can die from overheating/freezing</li>
<li>Default entities are pigs, cows, sheep, chickens, goats, horses, donkeys, mules, and llamas</li>
<li>Each of these entities are also best suited for different climates</li>
<li>Entities in an uninhabitable climate will emit hot or cold "angry" particles</li>
<li>Entity temperature uses a heavily simplified version of the player temperature system
<ul style="margin-left: 15px;">
<li>This should be fine in most scenarios, but the option is present to enable more robust measurements</li>
<li>This is disabled by default, as it is less performant</li>
</ul>
</li>
<li>Configurable via TOML, JSON, and KubeJS</li>
</ul>
</li>
<li>Entities caught on fire will now heat up the nearby area
<ul style="margin-left: 10px;">
<li>You can also warm yourself up this way!</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 18;
font-weight: bold;">Technical Changes:</span><br><br>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">General:</span>
<ul style="font-size: 13;">
<li>Added SimpleTempModifier (cold_sweat:simple), a basic TempModifier controlled by NBT
<ul style="margin-left: 10px;">
<li>Good for use in commands or simple KubeJS implementations</li>
<li>Parameters:
<ul style="margin-left: 15px;">
<li>"Temperature": The value to apply to the entity's temperature</li>
<li>"Operation": Any of: add, subtract, multiply, divide, power, root, set, max, min
<ul style="margin-left: 20px;">
<li>Augment what the modifier does to the entity's temperature</li>
<li>"set" overrides the entity's temperature with the modifier's value</li>
<li>"max" ensures the entity's temperature is >= the modifier's value</li>
<li>"min" ensures the entity's temperature is <= the modifier's value</li>
</ul>
</li>
</ul>
</li>
<li>Changes to the modifier's NBT will be reflected immediately</li>
<li>When modifying the NBT in Java or KubeJS, make sure to call markDirty() so the changes are sent to clients</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Tags:</span>
<ul style="font-size: 13;">
<li>Chameleons will now target and eat any entities in the #cold_sweat:chameleon_eats tag</li>
<li>Create backtank pressure now drains if the player has any insulator equipped that is in the #drains_backtank tag and passes its requirements</li>
<li>Added #forge:soul_campfires tag (#c:soul_campfires in NeoForge), which is now used by the block temperature of soul campfires</li>
<li>Blocks which are affected by the "Cold Soul Fire" setting are now controlled by the "forge:soul_fire" tag ("c:soul_fire" in NeoForge)
<ul style="margin-left: 10px;">
<li>Any blocks in this tag will have their temperatures inverted if the setting is enabled</li>
</ul>
</li>
<li>Armor crafting and repair materials are now handled by tags:
<ul style="margin-left: 10px;">
<li>Hoglin: #forge:leathers/hoglin</li>
<li>Goat Fur: #forge:furs/goat</li>
<li>Chameleon: #forge:scales/chameleon</li>
<li>These tags are in the "c" domain in 1.21 (i.e. "c:furs/goat")</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">JSON:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! The "data" field in item JSON configs has been renamed to "item" for consistency with other configs</span></li>
<li><span style="color: orange;">! (1.16) The file structure of JSON registries has changed to match that of other versions:</span>
<ul style="margin-left: 10px;">
<li>Registries are now located in data/<yourmod>/cold_sweat/* (instead of data/cold_sweat/config/*)</li>
<li>This means that JSON registries registered by other mods will have that mod's namespace in their IDs</li>
<li>Datapacks still do not work. This is only for mod developers</li>
</ul>
</li>
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature" (item/carried_temp -> item/item_temp)</span>
<ul style="margin-left: 10px;">
<li>JSON configs will not work until they are put in the new directory. No formatting changes are required</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Some arguments for JSON configs now support a new type "Negatable List":</span>
<ul style="margin-left: 10px;">
<li>Defines a list of "requirements" and "exclusions" which must be met</li>
<li>Example: "entity":{"require":[{"entities":[#minecraft:skeletons]}],"exclude":[{"entities":[minecraft:wither_skeleton]}]}
<ul style="margin-left: 15px;">
<li>Applies to all skeleton types except wither skeletons</li>
</ul>
</li>
<li>Any block, entity, item, or location requirement can be negated in this way (except fields defined within requirements themselves)</li>
<li>The "old" format of these arguments will continue to be supported (i.e. "entity":{"entities":[#minecraft:skeletons]})</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Expanded the registry removal system into a new system called "registry modifiers"</span>
<ul style="margin-left: 10px;">
<li>Registry modifiers can edit the data of existing configs, or disable them like before</li>
<li>A registry modifier contains a list of operations, which support the following:
<ul style="margin-left: 15px;">
<li>"disable": Disables the config (same as before)</li>
<li>"replace": Replaces a field with the given data</li>
<li>"merge": Merges the given data with the existing data, with the new data overwriting the existing data
<ul style="margin-left: 20px;">
<li>If the data contains a list, the new list will be appended to the existing list</li>
</ul>
</li>
<li>"append": Merges the given data without overwriting any existing data
<ul style="margin-left: 20px;">
<li>Does not affect lists</li>
</ul>
</li>
<li>"remove": Removes the specified keys from the config. Also supports removing list elements</li>
</ul>
</li>
<li><span style="color: orange;">! Because this new system introduces formatting changes, existing registry removal configs will need to be updated</span></li>
<li><span style="color: #ffffff; font-weight: bold;">See the documentation for formatting guides and examples</span></li>
</ul>
</li>
<li>The "matches" field in registry modifiers now uses NBT requirements instead of normal NBT
<ul style="margin-left: 10px;">
<li>This means that Cold Sweat's special NBT functions (cs:any_of, etc.) can now be used</li>
</ul>
</li>
<li>Registry modifiers can now choose which config types to target via the "config_type" field
<ul style="margin-left: 10px;">
<li>Accepts a list of strings ("toml", "json", or "kubejs")</li>
</ul>
</li>
<li>Registry modifiers now support targeting JSON registries by ID (i.e. "cold_sweat:entity/entity_temp/on_fire") via the "entries" field
<ul style="margin-left: 10px;">
<li>This does not work for TOML or KubeJS configs, as they do not have registry IDs</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">JSON configs can now use a wildcard "*" to apply to all objects in a registry</span>
<ul style="margin-left: 10px;">
<li>i.e. {"items": ["*"]} applies to all items</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">The "items" field in JSON item requirements, and "entities" field in entity requirements, are now required</span>
<ul style="margin-left: 10px;">
<li>This is because configs now do nothing if these fields are empty</li>
</ul>
</li>
<li>Enum-type config fields in JSON are now case-insensitive (previously required lower-case)
<ul style="margin-left: 10px;">
<li>Examples of field types affected:
<ul style="margin-left: 15px;">
<li>Temperature Units (i.e. "f", "C", "Mc")</li>
<li>Temperature Type (i.e. "world", "CORE", "fReEzInG_pOiNt")</li>
<li>Config Type (i.e. "toml", "JSON", "KubeJS")</li>
<li>Slot Type (i.e. "head", "CHEST", "Inventory")</li>
</ul>
</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Insulation item configs now accept a list of insulation</span>
<ul style="margin-left: 10px;">
<li>This allows for adding multiple types (or slots) of insulation to a single item</li>
<li>Example: "insulation": [{"cold": 1, "hot": 0}, {"cold": 1, "hot": 0} (occupies 2 slots with lesser cold insulation)</li>
<li>Defining a single insulation is still allowed as to not break existing JSON</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added new "world temp" requirement for JSON</span>
<ul style="margin-left: 10px;">
<li>Accepts decimal values</li>
<li>Also accepts some preset string values:
<ul style="margin-left: 15px;">
<li>"freezing", "cold", "cool", "temperate", "warm", "hot", "burning"</li>
<li>Ordered from coldest to hottest. Based on the min/max temperature config settings</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Now used in the min/max_temp fields in block temperature JSON</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Added as "world temp bounds" to location requirement JSON:</span>
<ul style="margin-left: 15px;">
<li>Has min/max values, each of which is a world temp requirement</li>
</ul>
</li>
</ul>
</li>
<li>Block temperature JSON configs can now be added to "effect groups"
<ul style="margin-left: 10px;">
<li>Block temperatures in an effect group will count towards each other's max effect limits</li>
<li>i.e. if redstone lamps and copper bulbs are part of the same group, redstone lamps will count towards the max number of copper bulbs and vice-versa</li>
<li>Implemented via the "effect_group" field in block temperature JSON configs
<ul style="margin-left: 15px;">
<li>This field takes in a tag ID containing block temps (i.e. "yourpack:yourtag" [no #hashtag])</li>
<li>Add your block temp tag to data/<yourpack>/tags/cold_sweat/block/block_temp/<yourtag>.json</li>
<li>Include the IDs of the block temps in the tag (i.e. "yourpack:your_block_temp")</li>
</ul>
</li>
</ul>
</li>
<li>The min/max temperature fields in block temperature JSON are now world temp requirements</li>
<li>Added "temperature" field to location requirement</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added a "hint" field that takes two optional arguments:
<ul style="margin-left: 15px;">
<li>"text": Display static text</li>
<li>"key": Use a translation key</li>
<li>Usage: "hint": {"text": "Wearing full iron armor", "key": "tooltip.cold_sweat.example"}</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "key" will be tried first and "text" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added optional "affects_self" field to entity temperature JSON configs
<ul style="margin-left: 10px;">
<li>This will cause the entity to be affected by its own temperature (defaults to "false")</li>
</ul>
</li>
<li>Added optional fields "count" and "location" to entity spawn biome configs:
<ul style="margin-left: 10px;">
<li>"count": The number of entities that can spawn in a group</li>
<li>"location": A negatable list of location requirements that must be met for the entity to spawn</li>
</ul>
</li>
<li>Added optional "location" field to block temperature JSON</li>
<li>Added new field to insulator configs: "fill_slots"
<ul style="margin-left: 10px;">
<li>This will make the insulator take up multiple slots if its total insulation is more than 2 (reverts the new "one item per slot" system)</li>
<li>This is "true" by default</li>
</ul>
</li>
<li>(1.20-) Added new type-specific entity requirements (ported from 1.21):
<ul style="margin-left: 10px;">
<li>(1.18+) "variant": Checks the entity's variant (cat color, axolotl color, etc.)</li>
<li>"fishing_hook": Checks if the fishing bobber entity is in open water (this is a Vanilla thing, IDK)</li>
<li>(1.18+) "lightning_bolt": Checks blocks set on fire and entities struck by the lightning</li>
<li>"piglin_neutral_armor": Checks if the entity is wearing armor that pacifies piglins</li>
<li>"player": Checks player-specific data (game mode, stats, advancements, etc.)</li>
<li>"raider": Checks pillager-specific data (part of an active raid, is the raid captain)</li>
<li>"slime": Checks the size of the slime</li>
<li>(1.18+) "snow_boots": Checks if the player is wearing boots that prevent falling through powder snow</li>
</ul>
</li>
<li>All JSON configs that start with the word "default" will be loaded last, rather than just the ones named "default"</li>
<li>Insulating mount JSON now has an "immune_temp_modifiers" field, similar to insulator items</li>
<li>The "cold_insulation" and "heat_insulation" fields in insulating mount JSON are now optional (defaulting to 0)</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Block requirements now accept a list of enum properties when checking block state (i.e. "type": ["top", "bottom"])</li>
<li><span style="color: orange;">! Formatting changes to numerical ranges in NBT</span>
<ul style="margin-left: 10px;">
<li>Now separated by a colon (:) instead of a hyphen (-)
<ul style="margin-left: 15px;">
<li>This is to enable the use of negative numbers, which was previously not possible</li>
<li>Example: {"Damage": "5-10"} -> {"Damage": "5:10"}</li>
</ul>
</li>
<li>Now support boundless ranges
<ul style="margin-left: 15px;">
<li>Example: {"Damage": "5:"} means 5 or more, {"Damage": ":10"} means 10 or less</li>
</ul>
</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">KubeJS:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Renamed all instances of "carried item temperature" to "item temperature"</span>
<ul style="margin-left: 10px;">
<li>In ModRegistriesEvent: addCarriedItemTemperature() -> addItemTemperature()</li>
</ul>
</li>
<li>Added entity temperature, spawn biome, and insulating mount configs support to KubeJS</li>
<li>Insulators can now have a "hint" that is displayed if their requirements are not met.
<ul style="margin-left: 10px;">
<li>Added "hintText" and "hintKey" methods to insulator builders:
<ul style="margin-left: 15px;">
<li>hintText: Text to be displayed</li>
<li>hintKey: A translation key for the text to be displayed</li>
<li>Only one of these fields is required</li>
<li>If both fields are defined, "hintKey" will be tried first and "hintText" will be used as a fallback</li>
</ul>
</li>
</ul>
</li>
<li>Added "logarithmic" (boolean) field to block temp configs
<ul style="margin-left: 10px;">
<li>Makes a block deliver "diminishing returns" as more of them are present around the player</li>
</ul>
</li>
<li>Added convert() method to KubeJS (mirror of the method from the Temperature class)</li>
<li>KubeJS configs are now passed through the normal config pipeline
<ul style="margin-left: 10px;">
<li>They are now present in CreateRegistriesEvent</li>
<li>They can now be targeted by registry modifiers</li>
</ul>
</li>
</ul>
<span style="color: #305cde;
font-size: 15;
font-weight: bold;">Java:</span>
<ul style="font-size: 13;">
<li><span style="color: orange;">! Custom Cold Sweat registries are now officially unsupported in 1.18</span>
<ul style="margin-left: 10px;">
<li>This is because 1.18's registry loading system disallows initializing registries outside the standard time during mod loading</li>
<li>Because not all mods have been loaded yet at this stage, there is no guarantee that all registries will load successfully</li>
</ul>
</li>
<li><span style="color: orange;">! Rearranged/simplified some methods in ItemInsulationManager</span>
<ul style="margin-left: 10px;">
<li>Some methods have been removed or renamed. See the code for details</li>
</ul>
</li>
<li><span style="color: orange;">! Removed Temperature#getTemperatureAt(), since it was moved to WorldHelper in 2.3.10</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Changed how the GatherDefaultTempModifiers event works:</span>
<ul style="margin-left: 10px;">
<li>Name changed to DefaultTempModifiersEvent</li>
<li>Now fired for all temperature traits simultaneously instead of a separate event for each trait</li>
<li>Now uses a Map<Trait, List<TempModifier>> for collecting modifiers</li>
<li>Methods for adding/removing modifiers must now specify the trait to apply to</li>
<li>The old version of the event still functions, but is deprecated and will be deleted in a future release</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">A single modifier instance can now be added to multiple traits on an entity</span>
<ul style="margin-left: 10px;">
<li>This single instance will be preserved when saving & loading the entity</li>
<li>getLastInput() and getLastOutput() are now stored per-trait, and now take in a Trait argument</li>
<li>Added getFunction() method to TempModifier, which also takes in a Trait argument</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Added tick() method to TempModifier</span>
<ul style="margin-left: 10px;">
<li>Naturally, this method is called every tick</li>
<li>This can be used to handle central calculations that aren't tied to any specific trait</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Temperature effects are now a modular system</span>
<ul style="margin-left: 10px;">
<li>Added a new TempEffect Forge (Java-based) registry</li>
<li>Each individual temperature effect (freezing health, screen blur, etc.) is now registered as a TempEffect</li>
<li>TempEffects are assigned to entities via JSON, and apply to certain temperature ranges
<ul style="margin-left: 15px;">
<li>i.e. health freezes over if the player's temperature is between -50 and -100</li>
</ul>
</li>
<li>This system will be expanded upon and more thoroughly documented in the future</li>
</ul>
</li>
<li>TemperatureChangedEvent now fires every time an entity's temperature changes, instead of only when it is changed manually</li>
<li>The player's body temperature equalization rate is no longer halved when temperature modifiers are applied to it
<ul style="margin-left: 10px;">
<li>For some custom temperature modifiers applied to the CORE trait, this means their rate might need to be increased</li>
</ul>
</li>
<li>WorldHelper#getRoughTemperatureAt() now uses a less accurate but more performant method of getting the temperature
<ul style="margin-left: 10px;">
<li>Now accepts flags as a 3rd argument. 1 = use more accurate temperature, 2 = force update (forces a new calculation)</li>
<li>The "more accurate" system is the old system, which is generally still less precise but more performant than getTemperatureAt()</li>
</ul>
</li>
<li>CreateRegistriesEvent has been broken up into two events:
<ul style="margin-left: 10px;">
<li>AddRegistriesEvent: Fires right before Cold Sweat registers its registries to Minecraft's datapack system.
<ul style="margin-left: 15px;">
<li>Use this event to make new registries. They will now be properly registered as Minecraft registries</li>
</ul>
</li>
<li>LoadRegistriesEvent: Drop-in replacement for CreateRegistriesEvent. Has Pre/Post sub-classes that fire at the same stages of registry loading</li>
</ul>
</li>
<li><span style="color: #ffffff; font-weight: bold;">Custom registries are now initialized during startup immediately after mods are loaded, instead of upon joining a world/server</span></li>
<li>registerByClassName() in TempModifierRegisterEvent now accepts constructor arguments as its last parameter (varargs)
<ul style="margin-left: 10px;">
<li>These arguments will be passed to the constructor of the modifier class upon creation</li>
</ul>
</li>
<li>Added new methods to TempModifier that fire when they are are added/removed on an entity:
<ul style="margin-left: 10px;">
<li>onAdded/onRemoved: Fires on the TempModifier immediately when it is added/removed</li>
<li>onSiblingAdded/onSiblingRemoved: Fires on all other TempModifiers applied to a trait when a new modifier is added/removed</li>
</ul>
</li>
</ul>
<br>
</div>
## 2.4-b06g (2)
### Fixes:
  • Fixed crash when loading a world with Iron's Spells installed**
  • Fixed error when a soulspring lamp is in the player's inventory and SpongeNeo is installed**
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06g</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>The Frostward and Fireward rings from Iron's Spellbooks now give buffs that allow the player to survive in colder/hotter climates</li>
<li>Renamed some attribute modifiers for better clarity:
<ul style="margin-left: 10px;">
<li>"Cold/Heat Tolerance" -> "Freezing/Overheating Threshold"</li>
<li>"Cold/Heat Dampening" -> "Cold/Heat Tolerance"</li>
<li>"Freezing/Heatstroke Resistance" -> "Freeze/Overheat Damage Resistance"</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Fixed duplication glitch in the sewing table by swapping the input armor item before taking the result</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed sudden loss of player temperature data in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed screen stretching in some cases when the heat blur effect is applied</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed visual temperature effects not being nullified by fire and ice resistance in some cases</span></li>
<li>Fixed mod armor items not having the proper item tags</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed error when executing "/coldsweat dumpconfigs" on a dedicated server</span></li>
<li>Fixed attribute modifiers that lower the player's freezing point being shown as "harmful"</li>
<li>Fixed water potentially freezing and thawing at incorrect temperatures</li>
<li>Fixed the "/temp debug" command showing temperature units for temperature traits that don't use units</li>
<li>Fixed the Space Helmet from Ad Astra giving doubled effects, and the Space Pants giving none</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06g</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>The Frostward and Fireward rings from Iron's Spellbooks now give buffs that allow the player to survive in colder/hotter climates</li>
<li>Renamed some attribute modifiers for better clarity:
<ul style="margin-left: 10px;">
<li>"Cold/Heat Tolerance" -> "Freezing/Overheating Threshold"</li>
<li>"Cold/Heat Dampening" -> "Cold/Heat Tolerance"</li>
<li>"Freezing/Heatstroke Resistance" -> "Freeze/Overheat Damage Resistance"</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Fixed duplication glitch in the sewing table by swapping the input armor item before taking the result</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed sudden loss of player temperature data in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed screen stretching in some cases when the heat blur effect is applied</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed visual temperature effects not being nullified by fire and ice resistance in some cases</span></li>
<li>Fixed mod armor items not having the proper item tags</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed error when executing "/coldsweat dumpconfigs" on a dedicated server</span></li>
<li>Fixed attribute modifiers that lower the player's freezing point being shown as "harmful"</li>
<li>Fixed water potentially freezing and thawing at incorrect temperatures</li>
<li>Fixed the "/temp debug" command showing temperature units for temperature traits that don't use units</li>
<li>Fixed the Space Helmet from Ad Astra giving doubled effects, and the Space Pants giving none</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06g</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>The Frostward and Fireward rings from Iron's Spellbooks now give buffs that allow the player to survive in colder/hotter climates</li>
<li>Renamed some attribute modifiers for better clarity:
<ul style="margin-left: 10px;">
<li>"Cold/Heat Tolerance" -> "Freezing/Overheating Threshold"</li>
<li>"Cold/Heat Dampening" -> "Cold/Heat Tolerance"</li>
<li>"Freezing/Heatstroke Resistance" -> "Freeze/Overheat Damage Resistance"</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Fixed duplication glitch in the sewing table by swapping the input armor item before taking the result</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed sudden loss of player temperature data in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed screen stretching in some cases when the heat blur effect is applied</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed visual temperature effects not being nullified by fire and ice resistance in some cases</span></li>
<li>Fixed mod armor items not having the proper item tags</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed error when executing "/coldsweat dumpconfigs" on a dedicated server</span></li>
<li>Fixed attribute modifiers that lower the player's freezing point being shown as "harmful"</li>
<li>Fixed water potentially freezing and thawing at incorrect temperatures</li>
<li>Fixed the "/temp debug" command showing temperature units for temperature traits that don't use units</li>
<li>Fixed the Space Helmet from Ad Astra giving doubled effects, and the Space Pants giving none</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06g</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>The Frostward and Fireward rings from Iron's Spellbooks now give buffs that allow the player to survive in colder/hotter climates</li>
<li>Renamed some attribute modifiers for better clarity:
<ul style="margin-left: 10px;">
<li>"Cold/Heat Tolerance" -> "Freezing/Overheating Threshold"</li>
<li>"Cold/Heat Dampening" -> "Cold/Heat Tolerance"</li>
<li>"Freezing/Heatstroke Resistance" -> "Freeze/Overheat Damage Resistance"</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Fixed duplication glitch in the sewing table by swapping the input armor item before taking the result</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed sudden loss of player temperature data in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed screen stretching in some cases when the heat blur effect is applied</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed visual temperature effects not being nullified by fire and ice resistance in some cases</span></li>
<li>Fixed mod armor items not having the proper item tags</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed error when executing "/coldsweat dumpconfigs" on a dedicated server</span></li>
<li>Fixed attribute modifiers that lower the player's freezing point being shown as "harmful"</li>
<li>Fixed water potentially freezing and thawing at incorrect temperatures</li>
<li>Fixed the "/temp debug" command showing temperature units for temperature traits that don't use units</li>
<li>Fixed the Space Helmet from Ad Astra giving doubled effects, and the Space Pants giving none</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06g</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>The Frostward and Fireward rings from Iron's Spellbooks now give buffs that allow the player to survive in colder/hotter climates</li>
<li>Renamed some attribute modifiers for better clarity:
<ul style="margin-left: 10px;">
<li>"Cold/Heat Tolerance" -> "Freezing/Overheating Threshold"</li>
<li>"Cold/Heat Dampening" -> "Cold/Heat Tolerance"</li>
<li>"Freezing/Heatstroke Resistance" -> "Freeze/Overheat Damage Resistance"</li>
</ul>
</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">Fixed duplication glitch in the sewing table by swapping the input armor item before taking the result</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed sudden loss of player temperature data in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed screen stretching in some cases when the heat blur effect is applied</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed visual temperature effects not being nullified by fire and ice resistance in some cases</span></li>
<li>Fixed mod armor items not having the proper item tags</li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed error when executing "/coldsweat dumpconfigs" on a dedicated server</span></li>
<li>Fixed attribute modifiers that lower the player's freezing point being shown as "harmful"</li>
<li>Fixed water potentially freezing and thawing at incorrect temperatures</li>
<li>Fixed the "/temp debug" command showing temperature units for temperature traits that don't use units</li>
<li>Fixed the Space Helmet from Ad Astra giving doubled effects, and the Space Pants giving none</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06f</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Water droplets no longer display if the player is fully immune to water</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16) Fixed crash when starting a dedicated server</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed disconnection when hovering over an enchanted item in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed "ConcurrentModificationException" crash when caching entity temperature data in some cases</span></li>
<li>(1.21) Fixed sewing table GUI having darker overlay than other GUIs</li>
<li>(1.21) Fixed ice creating water when mined with an incorrect tool that has silk touch (i.e. wooden pickaxe)</li>
<li>Fixed block temperature configs not applying correctly when multiple are defined for the same block</li>
</ul>
<br>
</div>
<div style="font-family: 'JetBrains Mono',monospace;
background-color: #212121;
color: #aaafb6;"><span style="color: #ffffff;
font-size: 20;
font-weight: bold;">2.4-b06f</span><br><br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;"></span>
<ul style="font-size: 13;">
<li>Packed ice can now be instantly mined with an efficiency V diamond pickaxe or faster</li>
<li>Water droplets no longer display if the player is fully immune to water</li>
</ul>
<br>
<span style="color: #ffffff;
font-size: 16;
font-weight: bold;">Fixes:</span>
<ul style="font-size: 13;">
<li><span style="color: #ffffff; font-weight: bold;">(1.16) Fixed crash when starting a dedicated server</span></li>
<li><span style="color: #ffffff; font-weight: bold;">(1.21) Fixed disconnection when hovering over an enchanted item in some cases</span></li>
<li><span style="color: #ffffff; font-weight: bold;">Fixed "ConcurrentModificationException" crash when caching entity temperature data in some cases</span></li>
<li>(1.21) Fixed sewing table GUI having darker overlay than other GUIs</li>
<li>(1.21) Fixed ice creating water when mined with an incorrect tool that has silk touch (i.e. wooden pickaxe)</li>
<li>Fixed block temperature configs not applying correctly when multiple are defined for the same block</li>
</ul>
<br>
</div>
Cold Sweat Icon
Download Cold Sweat
Select game version
Select platform