temperature system - TheDeathlyCow/frostiful GitHub Wiki
Warning
This page has been moved to https://modded.wiki/w/Frostiful:Temperature_System
Tip
TL;DR: You get cold from being in dark and cold places, and you can warm up from being near block light sources. Being wet will also increase the speed at which you get colder.
Frostiful replaces and greatly expands upon the power snow mechanic introduced in Minecraft 1.17. Freezing can now come from many sources in the world, not just the powder snow block. Frostiful also adds new effects and displays to better indicate exactly how cold you are.
Freezing is now more permanent: the cold stays with you and you will need to seek out heat sources to recover from the cold. However, there are also new ways of protecting yourself against the cold. The system is also highly configurable, and pretty much all of the numbers can be changed to suit your liking.
These are essentially two ways of getting cold in Frostiful: passive freezing from the environment, and active freezing from other sources like Powder Snow and combat.
As you get hotter, you will face negative effects such as slowness, mining fatigue, weakness, and eventually freezing damage.
To counteract cold, you need to warm up. Warming can come from a few sources, but the primary source is from block light. This includes all light sources - torches, glowstone, campfires, lava - and even modded ones.
Table of Contents |
---|
Temperature Display |
Passive Freezing / Exposure |
Temperature Effects |
Heating |
Armor |
Other Freezing Sources |
Your body temperature is displayed as a freezing heart overlay on your health bar. When you reach the minimum body temperature, the hearts will become fully frozen. Once your temperature bar gets half full, a frosty overlay will beging to fade in until you reach your minimum body temperature. This is the same overlay used in vanilla for powder snow.
The temperature bar just at half of minimum temperature.
A full temperature bar and Frosty overlay.
Passive freezing is the primary survival mechanic of the mod. It can be disabled by setting the gamerule frostiful.doPassiveFreezing
to false
, or by disabling it in the config. Passive freezing only applies to "natural" dimensions like the Overworld, and not the Nether or The End.
Each biome in the game is automatically sorted into one of five different temperature categories. These categories are never frozen, freezing, cold, cold at night, and normal. Frostiful uses a system of dynamic tags (along with the biome's internal temperature) to determine how cold a biome should be. A biome's category is chosen by which set of conditions it achieves FIRST from the following list:
- If a biome has the tag
#frostiful:freezing_blacklist_biomes
, it will be unaffected by freezing forever. - Otherwise, if a biome has the season's 'normal biomes' tag, it will be unaffected by freezing for that season.
- Otherwise, if a biome has the season's 'freezing biomes' tag, it will have an outdoor temperature change of
-3
, and a dark temperature change of-4
. - Otherwise, if a biome has an internal temperature of
0.15
or less (ie, the biome is snowy), OR if the biome has the season's 'cold biomes' tag, it will have an outdoor temperature change of-1
, and a dark temperature change of-2
. - Otherwise, if the biome has the season's 'cool biomes' tag, it will have an outdoor temperature change of
0
, and a dark temperature change of-1
.- If
doDryBiomeNightFreezing
is enabled in config and the biome has the tag#frostiful:dry_biomes
, then the biome will also belong to this category. This tag includes deserts, badlands, savannas, and other biomes where it does not rain. This is to mimic a real life effect of how cold deserts get at night, but it can be disabled.
- If
- Finally, if a biome meets none of the above conditions, it is considered "normal" and is never cold.
If you want to know the ambient temperature change at a particular location, you can use the command /thermoo environment checktemperature ~ ~ ~
.
The exact tags used to determine a biome's 'temperature category' changes depending on the season, if a seasons mod is installed. For example, if the current season is Winter, then the winter tags will be used to define the cool, cold, and freezing biomes. If a seasons mod is not installed, then Frostiful will use the Spring tags by default.
Temperature Tags Default Definitions
Tag ID | Default Values (summarized) |
---|---|
frostiful:temperature/spring/normal |
Stony peaks |
frostiful:temperature/spring/cool |
Taigas, Extreme Hills |
frostiful:temperature/spring/cold |
All Snowy biomes and Mountain Slopes |
frostiful:temperature/spring/freezing |
Icy biomes (like Ice Spikes) and Mountain Peaks |
frostiful:temperature/summer/normal |
Stony peaks |
frostiful:temperature/summer/cool |
All Cold biomes from Spring |
frostiful:temperature/summer/cold |
All Freezing biomes from Spring |
frostiful:temperature/summer/freezing |
Empty |
frostiful:temperature/autumn/normal |
Stony peaks |
frostiful:temperature/autumn/cool |
All Cool biomes from Spring |
frostiful:temperature/autumn/cold |
All Cold biomes from Spring |
frostiful:temperature/autumn/freezing |
All Freezing biomes from Spring |
frostiful:temperature/winter/normal |
[Empty] |
frostiful:temperature/winter/cool |
All temperate biomes, like Plains, Forests, etc |
frostiful:temperature/winter/cold |
All Cool biomes from Spring |
frostiful:temperature/winter/freezing |
All Cold and Freezing biomes from Spring |
Important
Frostiful does not add seasons by itself. You must install a Seasons mod like Fabric Seasons or Serene Seasons AND Thermoo Patches to make Frostiful aware of the seasons. If these mods are not installed, then Frostiful will use the Spring tags by default.
Entities will become wet after being exposed to water. Being wet makes players become colder, faster, and makes all entities drip.
Wetness (or soaking) has a minimum value of 0 and a maximum value of 600. However, it is mainly used as a 0-1 percentage scale. When out in the rain, this increases by 1 per tick. When touching, but not submerged in, water this increases by 5 per tick. When submerged in water, it will max out immediately.
Entities that are not exposed to water will have their wetness value decreased by 1 per tick. Being near light sources also speeds this up somewhat.
Wetness values can be read or adjusted using the command /thermoo soaking
If Scorchful is installed, Frostiful's soaking and drying mechanics will be automatically disabled.
Wetness can also be accumulated from the Snow. When an entity enters a warm or interior area after being recently exposed to snow, it will melt and make the entity wet. This applies even if Scorchful is installed.
As entities get colder, they will face an increasing number of negative effects.
Temperature Percent | Effect | Entities affected |
---|---|---|
-99% and below | Freeze damage | All non-immune entities |
-99% and below | Extra Freeze damage | Blaze, Strider, Magma Cube |
0% and below | Increasing Slowness, scales with how cold you are | Player only |
-50% and below | Weakness I | Player Only |
-75% and below | Mining Fatigue I | Player Only |
-50% and below | Weakness II, Mining Fatigue II | Player Only |
The Frostologer and the Cloak of Frostology also have associated temperature effects of their own.
Temperature effects are defined in Frostiful's datapack. You can see the default Temperature Effects here. Documentation for the temperature effect format is available on the Thermoo Wiki.
Once cold, entities will remain cold until and must seek out heat. Some heat sources are provided below:
- Light Sources: Most artificial light sources can provide heat. This includes torches, glowstone, campfires, lava, redstone lamps and more. Light-sourced heat increases with the strength of the light, and a minimum block light level of 5 is needed to provide heat. This will automatically apply to modded light sources, too. No need to configure anything!
- Shivering: When at least 50% cold, entities will begin to shiver. When shivering, a small amount of warmth is gained each tick. For players, this comes at the cost of hunger. When a player's hunger gets too low, they will continue to shiver but gain no warmth.
- Sun Lichen: Sun Lichen provides some warmth when stepped on to help players in the early game not immediately freeze to death in snowy biomes. See the Sun Lichen page for more details.
- Fire: Being on fire will provide some warmth each tick. If the entity has Fire Resistance, the fire will be immediately extinguished even when the entity is a little cold (has temperature < 0).
- Enchantments: The Enervation and Curse of Frozen Touch enchantments transfer heat between the attacker and their victim. See the Enchantments page for more detail.
- Conduit Power: A large amount of warmth is gained from being submerged with the Conduit Power effect.
- Magma Blocks: Magma Blocks (and other hot floor blocks) provide warmth when stood on, except when wearing boots enchanted with Frost Walker
Armor with the Frost Resistance attribute will reduce the amount of incoming freezing by a percentage. Each point of frost resistance corresponds to a 10% decrease in incoming freezing. Entities can have up to 10
points of frost resistance, and no less than -10
points. Negative values will increase the amount of incoming freezing.
Frost Resistance can be gained from Netherite, Fur, and Fur Padded Chainmail Armor. The Cloak of Frostology reduces Frost Resistance (though, for that item, that is a good thing). However, Frost Resistance can be applied to other armors using mods such as Item Components or Custom Item Attributes.
Freezing can be applied from many other sources. This list is non-exhaustive, as freezing sources are constantly being added to Frostiful.
- Freezing Wind: Freezing Wind will freeze players that it collides with.
- Frostologer: The Frostologer will use freezing as one of its main attacks.
- Powder Snow: Falling in Powder Snow will cool you just as quickly as it will in vanilla
- Glacial Arrows: Glacial Arrows will freeze entities on hit. These arrows are carried by Strays and Chillagers.
- Icicles: Falling on Icicles will provide freezing.
- Packed Snowballs: Being hit by a Packed Snowball will provide freezing.