-
Notifications
You must be signed in to change notification settings - Fork 0
Temperature
Note
This page reflects the latest version of Real Time Mod 2.0.0 and up.
| Back to Real Time Mod 2 Wiki |
|---|
| Sections |
|---|
| Overview |
► Base
|
► ► Game Rule Disabled
|
► ► Game Rule Enabled
|
► Time
|
► Weather
|
► Y Level
|
► ► Overworld
|
► ► Nether
|
► ► End
|
► Biome
|
► Fluid
|
► ► Block
|
► ► Entity
|
► ► Player
|
► Dimension Offset
|
► Final Calculation
|
► ► Exposed Temperature
|
► ► Non-Exposed Temperature
|
| History |
▲ Overview
| Back to Real Time Mod 2 Wiki |
|---|
The temperature system in the Real Time Mod is a complex topic to cover as there are many parts. There are global and local based temperature mechanics, global mechanics are things that effect the entire world without a specific position where local are localized based around a set position such as a block, player or entity. We will be diving into all these factors in this page.
▲ Base
Lets start with the base temperature. The base temperature is the temperature that is the foundation for all other temperature to build on to.
This temperature value has two parts and is based on if the game rule Seasonal Weather Enabled is set to true. If it's true then each month will have it's own base temperature and it's own minimum and maximum temperature ranges.
IF the game rule is false then the temperature will be more dynamic.
▲ Game Rule Disabled
If the game rule is disabled then the math will randomly select a temperature first by the lowest temperature possible and then by the highest temperature possible then finally a random base temperature is chosen from the min and max integer for that day.
Math:
Math: base + random(min, max)
===============================
Min = 7 + random(-19, 11)
Max = 25 + (-7, 6)
Temperature = random(Min, Max)
| Lowest Temperature | Highest Temperature | |
|---|---|---|
| Min | -12 C (10.4 F) | 18 C (64.4 F) |
| Max | 18 C (64.4 F) | 31 C (87.8 F) |
| Temperature | -12 C (10.4 F) | 31 C (87.8 F) |
▲ Game Rule Enabled
If the game rule is enabled then each month will have it's own base, min, and max temperature range below is a quick chart.
Math: base + random(min, max)
=========================================
Mar: Temperature = 9 + random(-6, 10)
Apr: Temperature = 14 + random(-6 + 8)
May: Temperature = 16 + random(-6 + 8)
Jun: Temperature = 18 + random(-7 + 9)
Jul: Temperature = 25 + random(-7 + 6)
Aug: Temperature = 22 + random(-6 + 6)
Sep: Temperature = 19 + random(-6 + 7)
Oct: Temperature = 13 + random(-5 + 8)
Nov: Temperature = 9 + random(-5 + 5)
Dec: Temperature = 8 + random(-10 + 4)
Jan: Temperature = 7 + random(-19 + 2)
Feb: Temperature = 9 + random(-6 + 9)
| Lowest Temperature | Highest Temperature | |
|---|---|---|
| Mar | 3 C (37.4 F) | 19 C (66.2 F) |
| Apr | 8 C (46.4 F) | 22 C (71.6 F) |
| May | 10 C (50.0 F) | 24 C (75.2 F) |
| Jun | 11 C (51.8 F) | 27 C (80.6 F) |
| Jul | 18 C (64.4 F) | 31 C (87.8 F) |
| Aug | 16 C (60.8 F) | 28 C (82.4 F) |
| Sep | 13 C (55.4 F) | 26 C (78.8 F) |
| Oct | 8 C (46.4 F) | 21 C (69.8 F) |
| Nov | 4 C (39.2 F) | 14 C (57.2 F) |
| Dec | -2 C (53.6 F) | 12 C (28.4 F) |
| Jan | -8 C (17.6 F) | 9 C (48.2 F) |
| Feb | 1 C (33.8 F) | 14 C (57.2 F) |
▲ Time
Time temperature is a global temperature modifier that is combined with the base temperature.
Temperature = 5 * cos(2 * π * (((World Time MOD 24000) - 8000) / 24000)
| Ticks | Time 12h | Time 24h | Temperature |
|---|---|---|---|
| 0 | 06:00 AM | 6:00 | -2.50 C (27.5 F) |
| 1,000 | 07:00 AM | 7:00 | -1.29 C (29.6 F) |
| 2,000 | 08:00 AM | 8:00 | 0.00 C (32.0 F) |
| 3,000 | 09:00 AM | 9:00 | 1.29 C (34.3 F) |
| 4,000 | 10:00 AM | 10:00 | 2.50 C (36.5 F) |
| 5,000 | 11:00 AM | 11:00 | 3.54 C (38.3 F) |
| 6,000 | 12:00 PM | 12:00 | 4.33 C (39.7 F) |
| 7,000 | 01:00 PM | 13:00 | 4.83 C (40.6 F) |
| 8,000 | 02:00 PM | 14:00 | 5.00 C 41.0 F) |
| 9,000 | 03:00 PM | 15:00 | 4.83 C (40.6 F) |
| 10,000 | 04:00 PM | 16:00 | 4.33 C (39.7 F) |
| 11,000 | 05:00 PM | 17:00 | 3.54 C (38.3 F) |
| 12,000 | 06:00 PM | 18:00 | 2.50 C (36.5 F) |
| 13,000 | 07:00 PM | 19:00 | 1.29 C (34.3 F) |
| 14,000 | 08:00 PM | 20:00 | 0.00 C (32.0 F) |
| 15,000 | 09:00 PM | 21:00 | -1.29 C (29.6 F) |
| 16,000 | 10:00 PM | 22:00 | -2.50 C (27.5 F) |
| 17,000 | 11:00 PM | 23:00 | -3.54 C (25.6 F) |
| 18,000 | 12:00 AM | 0:00 | -4.33 C (24.2 F) |
| 19,000 | 01:00 AM | 1:00 | -4.83 C (23.3 F) |
| 20,000 | 02:00 AM | 2:00 | -5.00 C (23.0 F) |
| 21,000 | 03:00 AM | 3:00 | -4.83 C (23.3 F) |
| 22,000 | 04:00 AM | 4:00 | -4.33 C (24.2 F) |
| 23,000 | 05:00 AM | 5:00 | -3.54 C (25.6 F) |
▲ Weather
Weather is the final global temperature modifier. Temperature is calculated for weather based two factors.
If the location at the location can snow, and what weather is currently happening.
For example if the biome is a snowy biome and thundering then the temperature can reach down to -8 C (17.6 F).
If the weather is clear though then it's always 0 C (32 F).
Below is a quick chart to show the weather.
| Weather | No Snow | Snowing |
|---|---|---|
| Clear | 0 C (32 F) | 0 C (32 F) |
| Rain | -2 C (28.4 F) | -4 C (24.8 F) |
| Thunder | -4 C (24.8 F) | -8 C (17.6 F) |
This temperature is added to the base when creating the block, entity or players temperature.
▲ Y Level
Moving on to localized modifiers, these are only added to position based things in the world such as blocks, entities or players and are combined with the global modifiers and base temperature later on.
The temperature depends on the dimension however the mod will use the overworld as a fall back if the mod does not specify through the mod tags which biome structure to use.
▲ Overworld
The overworld structure is most balanced at Y level 64, from there going up will decrease the temperature over the higher you go up. If the player goes down the temperature Y level 0 the temperature will decrease as well. If the player ventures deeper into the deepslate layer to Y level -64 the temperature will increase a bit. See below the exact stats for each layer.
Mods can add there biomes to this tag to give them the Y level mechanics listed below. Any biomes not tagged will fall back to this Y level format as well.
Biome tag: real_time_mod:position_temperature_overworld
Math:
If Level > 320
Temperature = -7
Else If Level ≥ 96
Temperature = 0 - (1 + floor((Level - 96) / 32))
Else If Level ≥ 64
Temperature = 0
Else If Level ≥ 0
Temperature = -4 + floor(Level / 16)
Else If ≥ -64
Temperature = 4 - floor((Level + 64) / 8)
Else
Temperature = -4
| Y Level | Temperature |
|---|---|
| 320 and above | -7 C (19.4 F) |
| 288 to 319 | -6 C (21.2 F) |
| 256 to 287 | -5 C (23.0 F) |
| 224 to 255 | -4 C (24.8 F) |
| 192 to 223 | -3 C (26.6 F) |
| 160 to 191 | -2 C (28.4 F) |
| 128 to 159 | -1 C (30.2 F) |
| 64 to 96 | 0 C (32.0 F) |
| 48 to 63 | -1 C (30.2 F) |
| 32 to 47 | -2 C (28.4 F) |
| 16 to 31 | -3 C (26.6 F) |
| 0 to 15 | -4 C (24.8 F) |
| -8 to -1 | -3 C (26.6 F) |
| -16 to -9 | -2 C (28.4 F) |
| -24 to -17 | -1 C (30.2 F) |
| -32 to -25 | 0 C (32.0 F) |
| -40 to -33 | 1 C (33.8 F) |
| -48 to -41 | 2 C (35.6 F) |
| -56 to -49 | 3 C (37.4 F) |
| -57 and below | 4 C (39.2 F) |
▲ Nether
The nether has it's own tag and math, though it's way simpler than the overworld. The deeper you go the hotter it gets.
Biome tag: real_time_mod:position_temperature_nether
Math:
clampY = 122 Min (5 Max Level)
Temperature = floor(12 - (((clampY - 5) / 117) * 8))
| Y Level | Temperature |
|---|---|
| 108 and above | 4 C (39.2 F) |
| 93 to 107 | 5 C (41.0 F) |
| 79 to 92 | 6 C (42.8 F) |
| 64 to 78 | 7 C (44.6 F) |
| 49 to 63 | 8 C (46.4 F) |
| 35 to 48 | 9 C (48.2 F) |
| 20 to 34 | 10 C (50.0 F) |
| 6 to 19 | 11 C (51.8 F) |
| 5 and below | 12 C (53.6 F) |
▲ End
The end also has it's own biome tag, it's much the same way as the nether, just goes one direction though it gets colder the higher the Y level is.
Biome tag: real_time_mod:position_temperature_end
Math:
clampY = 160 Min (0 Max Level)
Temperature = floor(-7 - ((clampY / 160) * 5))
| Y Level | Temperature |
|---|---|
| 31 or below | -7 C (19.4 F) |
| 32 to 63 | -8 C (17.6 F) |
| 64 to 95 | -9 C (15.8 F) |
| 96 to 127 | -10 C (14.0 F) |
| 128 to 159 | -11 C (12.2 F) |
| 160 and up | -12 C (10.4 F) |
▲ Biome
Biomes also have modifiers, these use tags and group biomes into 3 categories. Cold, Temperate and Hot biomes. Temperate will be used if the biome in question is not added to any of the tags.
Hot biome tag:
real_time_mod:biome_temperature_cold
Temperate biome tag:
real_time_mod:biome_temperature_temperate
Cold biome tag:
real_time_mod:biome_temperature_cold
The temperature is a static value:
| Climet | Temperature |
|---|---|
| Hot | 10 C (50.0 F) |
| Temperate | 0 C (32.0 F) |
| Cold | -5 C (23.0 F) |
▲ Fluid
Fluid temperature is the last local temperature modifier. It is broken up into three kinds of script. Blocks, entities and players. Fluid can be in two groups, cold or hot, not specifying the value will have a natural effect.
Cold tag:
real_time_mod:fluid_temperature/cold
Hot tag:
real_time_mod:fluid_temperature/hot
| Tag | Temperature |
|---|---|
| Hot | 4 C (39.2 F) |
| Cold | -2 C (28.4 F) |
| None | 0 C |
▲ Block
Any block that is at the location of the fluid will be considered by the tag.
The block will then have the following command run for the temperature.
realtimemod temperature add block ~ ~ ~ <temperature>
▲ Entity
Entities work a bit differently as some entities may have more then one block height so for each block height the entity may get an additional temperature value this can be positive, negative or both in some cases.
Math:
For entity_height
If cold:
temperature = temperature - 2
Else if hot:
temperature = temperature + 4
The entity will then have the command run to add the temperature
realtimemod temperature add entity <Entity_UUID> <temperature>
▲ Player
Players have the same exact system as entities there is no difference with the math, the only difference is the command.
Math:
For entity_height
If cold:
temperature = temperature - 2
Else if hot:
temperature = temperature + 4
The command that runs for the player is as follows.
realtimemod temperature add player @p <temperature>
▲ Dimension Offset
There one last modifier, this happens on the command level of script and happens when the update command is run. Depending if the dimension is the end or nether the base temperature will be overwritten using the math below.
Nether:
Math: 50 C (122.0 F)
base = base + 50
End:
Math: -23 C (-9.4 F)
base = base - 23
▲ Final Calculation
The final calculation is calculated based on one last condition. The location where the script is running from checks if the block 1 block above the command being run from can see the sky. If this is the case weather temperature is included into the math. If not then weather is not added to the calculation.
▲ Exposed Temperature
This is the math for when the block, player or entity can see the sky.
The NBT tag contains the fluid temperature and any temperature values mods use to override the temperature.
temperature = base + time_temperature + weather_temperature + NBT:realtimemodOffsetTemperature + biome_temperature + y_level_temperature
▲ Non-Exposed Temperature
This is the math for when the block, player or entity can't see the sky.
The NBT tag contains the fluid temperature and any temperature values mods use to override the temperature.
temperature = base + time_temperature + NBT:realtimemodOffsetTemperature + biome_temperature + y_level_temperature
▲ History
| Back to Real Time Mod 2 Wiki |
|---|
-
2.0.0- Added the temperature mechanics.
- 🔥 CurseForge
- 🧩 MCreator
- 📕 Home
- 📝 Changelogs
- ❓ FAQ
- ⭐ Features
- 🐞 Known Issues
- 🍁 Serene Seasons