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

Thermoo

Temperature and Environment library mod for Fabric and Quilt. Used by Frostiful and Scorchful.

1.28M
117
Library

Compatibility

Minecraft: Java Edition

1.21.x
1.20.4
1.20–1.20.2
1.19.4
1.19.2

Platforms

Fabric
Quilt

Supported environments

Client and server

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source Visit wiki Join Discord server
Donate on Ko-fi

Creators

TheDeathlyCow
TheDeathlyCow Owner

Details

Licensed LGPL-3.0-only
Published 2 years ago
Updated 5 days ago
DescriptionChangelogVersions

Show all versions

1
2
3

Thermoo 6.0.3

by TheDeathlyCow on May 5, 2025
Download

Thermoo 5.3.3

by TheDeathlyCow on May 5, 2025
Download

Thermoo 4.5.3

by TheDeathlyCow on May 5, 2025
Download
  • Fixed Thermoo temperature unit codecs not decoding properly in the Turkish locale

Thermoo 6.0.2

by TheDeathlyCow on May 1, 2025
Download

Thermoo 5.3.2

by TheDeathlyCow on May 1, 2025
Download

Thermoo 4.5.2

by TheDeathlyCow on May 1, 2025
Download
  • Added Argentine Spanish Translations (Texaliuz)

Thermoo 6.0.1

by TheDeathlyCow on Apr 16, 2025
Download

Thermoo 5.3.1

by TheDeathlyCow on Apr 16, 2025
Download

Thermoo 4.5.1

by TheDeathlyCow on Apr 16, 2025
Download
  • Fix a crash when riding mounts with specific max health values

Thermoo 6.0

by TheDeathlyCow on Mar 28, 2025
Download

Update to Minecraft 1.21.5

This is the first stable release for Minecraft 1.21.5. It includes a few new features from Thermoo 4.4 and 5.3 as well that are meant to provide greater flexibility and depth.

  • Updated to Minecraft 1.21.5
  • Removed all deprecated APIs, including the EnvironmentController, TemperatureConverter, and some methods of ConfiguredTemperatureEffect, and TemperatureEffects.
  • Many classes such as EnvironmentCommand and TemperatureCommand classes were made final, and all static only now have a private constructor. This is technically a breaking change, though unlikely to affect anyone.
  • Updated game tests to use new framework
  • Replaced the canFreeze and canOverheat Kotlin temperature aware function extensions with canBeCold and canBeWarm to fix a conflict with the method Entity#canFreeze.
  • Environment Heat and Frost Resistance can now accept negative values. A negative environment resistance now provides a random chance of doubling a temperature decrease from an environmental source.
  • Added a priority field to the environment definition. This is used to sort the order that environment providers are applied to a biome during a lookup.
  • Implementation detail only: environment providers are now stored as a field of the Biome class, this should allow for slightly faster lookup times.

Thermoo 5.3

by TheDeathlyCow on Mar 28, 2025
Download

Thermoo 4.5

by TheDeathlyCow on Mar 28, 2025
Download

Environment Refinements

This update adds a few new features to the environment API to make it more flexible and offer a bit more depth.

  • Environment Heat and Frost Resistance can now accept negative values. A negative environment resistance now provides a random chance of doubling a temperature decrease from an environmental source.
  • Added a priority field to the environment definition. This is used to sort the order that environment providers are applied to a biome during a lookup.
  • Implementation detail only: environment providers are now stored as a field of the Biome class, this should allow for slightly faster lookup times.

Thermoo 6.0-beta.1

by TheDeathlyCow on Mar 26, 2025
Download

Update to Minecraft 1.21.5

This is a first release for Minecraft 1.21.5. It is initially released as a Beta because Cardinal Components API is not yet stable, however from my testing it does seem to work fine. If you find any issues please feel free to report them to https://github.com/TheDeathlyCow/thermoo/issues.

  • Updated to Minecraft 1.21.5
  • Removed all deprecated APIs, including the EnvironmentController, TemperatureConverter, and some methods of ConfiguredTemperatureEffect, and TemperatureEffects.
  • Many classes such as EnvironmentCommand and TemperatureCommand classes were made final, and all static only now have a private constructor. This is technically a breaking change, though unlikely to affect anyone.
  • Updated game tests to use new framework
  • Replaced the canFreeze and canOverheat Kotlin temperature aware function extensions with canBeCold and canBeWarm to fix a conflict with the method Entity#canFreeze.

[1.21.5-rc1] Thermoo 6.0-alpha.1

by TheDeathlyCow on Mar 22, 2025
Download

Update to Minecraft 1.21.5

This is a first release for Minecraft 1.21.5, targeting 1.21.5-rc1. This version is currently unstable, and should only be used for early porting.

  • Updated to Minecraft 1.21.5
  • Removed all deprecated APIs, including the EnvironmentController, TemperatureConverter, and some methods of ConfiguredTemperatureEffect, and TemperatureEffects.
  • Temporarily disabled gametests so that they can be rewritten at a later date
  • The EnvironmentCommand and TemperatureCommand classes were made final and now have a private constructor. Other static-only classes like this will receive similar treatment soon.

Thermoo 5.2.1

by TheDeathlyCow on Mar 15, 2025
Download
  • Updated to Minecraft 1.21.4
  • Minecraft 1.21.2-1.21.3 still seem to work with this version, however support for these may be removed at any time
  • Minecraft 1.20.1 is now officially unsupported

Thermoo 5.2

by TheDeathlyCow on Mar 14, 2025
Download

Thermoo 4.4

by TheDeathlyCow on Mar 14, 2025
Download

New Developer Wiki

  • The Thermoo Wiki has moved! It has been moved to a new MkDocs-powered wiki available at https://thermoo.thedeathlycow.com/
  • Along with the new wiki site, the wiki has been largely restructured and many pages have received updates.
  • Contributors can also now contribute to the wiki via pull request on GitHub.

Environment API

This is a large new API with a mix of datapack and mod-based components. I would highly recommend reading the Environment API Overview on the new wiki before going out and trying to implement it in your mods.

  • Introduced a new datapack-based Environment API to control environment temperature changes.
  • All methods in the Environment Controller have been replaced with a new, more fit for purpose alternative.
  • The fundamental change here is that the Environment datapack registry now computes a Temperature for a biome in a some widely recognised temperature unit (Celsius, Fahrenheit, Kelvin, or Rankine), as well as a few other parameters, and then those parameters are converted into temperature point changes by an event listener.
  • Added the datapack registry thermoo/environment. Format: https://thermoo.thedeathlycow.com/datapacks/environment_definition/
  • Added the datapack registry thermoo/environment_provider. Format: https://thermoo.thedeathlycow.com/datapacks/environment_provider_definition/
  • Added environment resistance attributes, thermoo:environment_heat_resistance and thermoo:environment_frost_resistance.
  • The environment resistance attributes represent a percentage chance to "dodge" the temperature change calculated from the events in ServerPlayerEnvironmentTickEvents each time they are applied.

The full list of method replacements is as follows:

  • getBaseValueForAttribute() -> ThermooAttributes#baseValueEvent()
  • getLocalTemperatureChange() -> The Environment Datapack Registry
  • getEnvironmentTemperatureForPlayer() -> ServerPlayerEnvironmentTickEvents.GET_TEMPERATURE_CHANGE
  • getTemperatureEffectsChange() -> LivingEntityTemperatureTickEvents.GET_ACTIVE_TEMPERATURE_CHANGE
  • getFloorTemperature() -> LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
  • getMaxWetTicks() -> The entity attribute thermoo:max_soaking_tick_multiplier (on 1.21.1, the name is thermoo:generic.max_soaking_tick_multiplier)
  • getSoakChange() -> LivingEntitySoakingTickEvents.GET_SOAKING_CHANGE
  • getHeatAtLocation() -> LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
  • applyAwareHeat() -> LivingEntityTemperatureTickEvents.ALLOW_ACTIVE_TEMPERATURE_CHANGE
  • getHeatFromBlockState() -> removed
  • isHeatSource() -> removed
  • isColdSource() -> removed
  • isAreaHeated() -> removed

Item Attribute Modifier Event

  • Added an experimental ModifyItemAttributeModifiersCallback.EVENT that is very similar to the previous Fabric API event of the same name.
  • This applies attribute modifiers to an entity when they equip or unequip an item, it does not actually modify the underlying minecraft:attribute_modifiers component of an item stack.

Kotlin Bindings

  • Added new Kotlin-specific method and field extensions to TemperatureAware and Soakable.
  • These methods allow Kotlin users to use these interfaces in an intuitive way and without having to add a thermoo$ prefix to all methods.

Thermoo 5.1

by TheDeathlyCow on Jan 15, 2025
Download

Thermoo 4.3

by TheDeathlyCow on Jan 15, 2025
Download
  • Added get methods to the TemperatureAware class that allow the interface to be obtained from LivingEntity and Entity. Primarily intended for cases where interface injection may not work well.
  • Added translated for the consumable tags
  • Replaced the attribute base value method of the environment controller with dedicated events. The old controller method has been deprecated. See PR #43
  • Entity tags and lists are now allowed in the temperature effect entity_type field as a # prefixed tag ID or list of direct entity type IDs. See PR #42
  • Fixed the remove() temperature effect method not being called/tracked properly per entity. In particular, this fixes an issue where attribute modifier temperature effects would behave weirdly
  • The constructor for the ConfiguredTemperatureEffect has been marked as internal. The previous constructor has been kept to avoid a breaking change, but it has now also been marked as internal.
  • Deprecated ConfiguredTemperatureEffect#applyIfPossible() (replaced with an apply() method that returns success instead).
  • Deprecated ConfiguredTemperatureEffect#entityType() - use the new entityTypes() method (plural)
  • Deprecated TemperatureEffects#getEffectsForEntity - this method should not have been part of the API and will be removed
  • Added TemperatureEffects#getEffect that allows for looking up a configured temperature effect by ID
  • The "resource conditions were not met" log has been moved to debug, which should reduce log spam caused by Thermoo

Thermoo 5.0.2

by TheDeathlyCow on Jan 2, 2025
Download
  • Fixed a crash when a mount had more than 60 health and the temperature display exceeded the hearts actually being displayed
  • Exposed Fabric API properly in gradle.
1
2
3

Modrinth is open source.

main@acf2694

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

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