# Temperature System

The Temperature System in AdvancedSeasons is a sophisticated feature that adds a layer of realism and challenge to the Minecraft environment. This system calculates a player's temperature based on several factors, including the base environment temperature, biome-specific temperatures, seasonal variations, light levels at the player's location, and the number of armor items a player is wearing. All these elements are fully configurable, allowing for a tailored gameplay experience.

### Configuration&#x20;

{% code title="temperature.yml" lineNumbers="true" fullWidth="true" %}

```yaml
# Temperature configuration, in Celsius
# Player's temperature depends on base environment temperature, biome temperature, season, light level at location and
# number of armor items player is wearing. All of this is fully configurable below.

# Per-biome temperature is configurable in `biomeConfiguration` folder files
base: 18

# Temperature Formula
# %base% = base temperature (see setting above)
# %biome% = relative biome temperature based
# %seasonTemp% = season temperature (see settings below)
# %lightLevel% = light level at that location (can be increased by e.g. torches, lava etc), range: 0-15
# %armorItemsCount% = how many armor items player has equipped
# %conditionalTemp% = based on conditions (e.g. player is in shade; night; raining; in water etc.)
temperatureFormula: "%base% + %biome% + %seasonTemp% + (%lightLevel%) + (%armorItemsCount% *2) + %conditionalTemp%"

# Relative to base, higher or lower +/- celcius
temperature:
  SPRING: 2
  SUMMER: 7
  FALL: -2
  WINTER: -25

# Custom biomes without winter
# These biomes will calculate "winter" season temperature with formula: (fall+spring)/2
noWinterBiomes:
  - 'badlands_deserts'
  - 'savannas_hills'
  - 'jungles'

# Are temperature events enabled?
temperatureEventsEnabled: true

# Configurable temperature events
# Effects are based on Abilities - https://wiki.advancedplugins.net/abilities/introduction
# You can pretty much use any combination of effects from here https://wiki.advancedplugins.net/abilities/effects
# Temperature events are handled and added every 20 ticks (1 second)
temperatureEvents:
  freeze:
    temperature: -30
    effects:
      - 'SCREEN_FREEZE:200'
      - 'PLAY_SOUND:BLOCK_SNOW_PLACE:1:0.2'
  ice_forming:
    temperature: -25
    effects:
      - 'SCREEN_FREEZE:40'
      - 'PARTICLE:SNOW_SHOVEL:4:0.5 @EyeHeight'
      - 'PLAY_SOUND:BLOCK_POWDER_SNOW_FALL:1:0.2'
  shivering:
    temperature: -15
    effects:
      - 'POTION:SLOW:0:1'
      - 'SCREEN_FREEZE:15'
      - 'PLAY_SOUND:ENTITY_STRAY_AMBIENT:1:0.2'
  breath_visibility:
    temperature: -4
    effects:
      - 'PARTICLE:SNOWFLAKE:5:0 @EyeHeight'
  warmth:
    temperature: 20
    effects:
      - 'POTION:REGENERATION:4:10'
  sweating:
    temperature: 35
    effects:
      - 'POTION:CONFUSION:0:75'
      - 'PARTICLE:WATER_SPLASH:20:0.2 @EyeHeight'
      - 'PLAY_SOUND:BLOCK_FURNACE_FIRE_CRACKLE:1:0.2'
  heatstroke:
    temperature: 45
    effects:
      - 'BURN:2'
      - 'POTION:CONFUSION:0:200'
      - 'ENTITY_EFFECT:HURT_BERRY_BUSH'
      - 'PARTICLE:SMALL_FLAME:20:0.2 @EyeHeight'
      - 'PLAY_SOUND:BLOCK_FIRE_AMBIENT:1:0.5'
```

{% endcode %}

### Explanation

#### Base Temperature Configuration

* `base: 18`: This setting establishes the baseline temperature in Celsius for the game environment.

#### Temperature Formula

* The formula `temperatureFormula: "%base% + %biome% + %seasonTemp% + (%lightLevel%) + (%armorItemsCount% * 2) + %conditionalTemp%"` is used to calculate the player's current temperature.
  * `%base%` represents the base temperature.
  * `%biome%` adjusts for the temperature relative to the specific biome.
  * `%seasonTemp%` accounts for seasonal temperature changes.
  * `%lightLevel%` factors in the light level at the player's location, which can be influenced by sources like torches or lava.
  * `%armorItemsCount%` modifies the temperature based on the number of armor pieces worn.
  * `%conditionalTemp%` includes adjustments for various conditions like shade, time of day, rain, or being in water.

#### Seasonal Temperature Variations

* The `temperature` section specifies the temperature adjustments for each season relative to the base temperature.
  * `SPRING: 2`
  * `SUMMER: 7`
  * `FALL: -2`
  * `WINTER: -25`

#### Biomes Without Winter

* `noWinterBiomes`: Lists biomes that do not experience winter. In these biomes, winter temperatures are calculated as the average of fall and spring temperatures.

#### Temperature Events

Temperature event effects use our **Abilities Engine** to provide unprecedented customisability with over 100+ effects available to create temperature effects beyond dreams or imagination.&#x20;

You can read more about the **Abilities Engine** here: <https://wiki.advancedplugins.net/abilities/introduction>

* The `temperatureEvents` section defines specific temperatures at which certain events occur.
  * `freeze: -30` triggers freezing effects.
  * `ice_forming: -25` begins to show ice formation.
  * `shivering: -15` initiates shivering animations.
  * `breath_visibility: -4` makes the player's breath visible.
  * `warmth: 20` provides benefits like faster health regeneration.
  * `sweating: 35` shows visual sweating effects.
  * `heatstroke: 45` triggers heatstroke effects.

Event effects are pre-configured to be very straight-forward. To edit them, you can explore our effect list: <https://wiki.advancedplugins.net/abilities/effects>

This system not only enhances the realism of the game but also introduces strategic elements where players must adapt to survive and thrive in varying temperatures.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://seasons.advancedplugins.net/features/temperature-system.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
