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

