Mods / Thermal HUD
- Tags:
- Author:
- Hugomir
- Side:
- Client
- Created:
- Sep 29th at 1:35 PM
- Last modified:
- 4 days ago
- Downloads:
- 445
-
Recommended download (for Vintage Story 1.22.0 - 1.22.7):
thermalhud_1.0.3.zip 1-click install
Have you ever realized that the weather is much colder or hotter than you expected? The purpose of this mod is to visualize the temperature so clearly that nothing is left to guesswork. The design philosophy behind the mod is that players should not be overwhelmed with an excessive amount of secondary and static information.
The mod also finds the times of sunrise and sunset with the bisection method and adjusts the display of the dark area accordingly. When the dark area covers exactly half of the background square, the sun is either rising or setting, while full bright means noon and full dark means midnight. Polar night and polar day are detected too. The fuzzy time feature (enabled by default) helps you to learn the logic of the visualization.
No content or code in this mod is generated by artifical intelligence.
Features
- Temperature reading with adaptive background color inspired by the color scemes of weather forecasts
- Sun position indication with darker background
- Rift activity level
- Room type symbol
- Polar day and polar night detection
- Two secondary info text areas (time of the day, clock, month, room type, claim owner name, elevation, height above terrain (HAT))
- Immersive Body Temperature mod support
- Fahrenheit support
- ConfigKit support
- Smooth scaling as all the graphical elements are vector-based
Configuration
The easiest way to change the settings is to use ConfigKit, mod but if it is not installed you can change the settings by editing thermalhud.json which is created automatically when the world starts. The parameters are described below.
Alignment. Determines the position of the HUD on the screen. Possible values are TopLeft (default), TopRight, BottomLeft and BottomRight.
Scale. Relative size of the hud, default 1.0 (100%). This is different from the UI Scale of the game settings but both are taken into account when calculating HUD size.
TemperaturePreference. Possible values are
- Automatic (default) ‒ use apparent temperature if available, otherwise outdoor temperature
- Outdoor ‒ outdoor temperature
- Apparent ‒ use apparent temperature provided by Immersive Body Temperature mod
- Body ‒ body temperature
UseFahrenheit. Value true makes temperature to show in Fahrenheit degrees and false (default) in Celcius degrees.
ShowDarkArea. Value true (default) visualizes the sun position with darker area in the temperature area background.
DarkAreaOpaqueness. Opaqueness of the dark area, default 0.25 (25%). Choosing 100% results full black while 0% hides the dark area.
ShowSunSymbol. Value true (default) makes the sun symbol visible while false hides it.
RiftActivityLevel. Value true (default) makes the rift activity level bars visible while false hide them.
RoomTypeSymbol. Value true (default) makes room type symbol visible while false hides it. The symbol is not shown when apparent temperature is used.
UpperInfoTextMode, LowerInfoTextLPMode, LowerInfoTextP1Mode, LowerInfoTextP2Mode, LowerInfoTextP3Mode. Upper info text is visible on the top of the temperature area. Lower info text is visible on the top of the temperature area. Lower info text follows the following prioritization practices:
- After Login (LP) ‒ value is only shown after login until the player entity moves
- Priority 1 (P1) ‒ shown if LP value is not available
- Priority 2 (P2) ‒ shown if LP and P1 values are not available
- Priority 3 (P3) ‒ shown if LP, P1 and P2 values are not available
The possible metrics are listed below.
- None ‒ no info text
- FuzzyTime ‒ a text-based representation of the time of day (e.g. morning, sunset, dusk, night, polar day)
- Time12h ‒ clock in 12 hour format
- Time24h ‒ clock in 24 hour format
- Month ‒ month name
- MonthRoman ‒ month in Roman numerals
- RoomType ‒ type of the room (room, cellar or greenhouse)
- ClaimOwnerName ‒ name of the claim owner
- Elevation ‒ altitude from the sea level
- HeightAboveTerrain ‒ altitude from the terrain (HAT), useful underground
Immersive Body Temperature support
The mod visualizes certain features provided by Immersive Body Temperature mod when it is enabled. Apparent temperature is available as the main temperature reading. HUD border depends on the apparent temperature feel status:
- No border ‒ comfy
- Dashed border ‒ cold or warm
- Solid border ‒ freezing or hot
Roadmap
- Localization
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 1.0.3 | thermalhud | 129 | 4 days ago | thermalhud_1.0.3.zip | 1-click install | ||
| |||||||
| 1.0.2 | thermalhud | 158 | Oct 1st at 8:16 AM | thermalhud_1.0.2.zip | 1-click install | ||
| |||||||
| 1.0.1 | thermalhud | 83 | Sep 30th at 8:04 AM | thermalhud_1.0.1.zip | 1-click install | ||
| |||||||
| 1.0.0 | thermalhud | 75 | Sep 29th at 6:12 PM | thermalhud_1.0.0.zip | 1-click install | ||
|
The first release | |||||||


throwing errors on the world load message window
running 1.22.6
Please, can you share the stacktrace?
I’m using Vintage Story 1.22.6. Thermal HUD produces the following assembly-loading error during startup. It appears
cairo-sharpis already loaded when Thermal HUD attempts to load another copy:5.10.2026 15:58:36 [Error] [thermalhud] An exception was thrown when trying to load assembly:
5.10.2026 15:58:36 [Error] [thermalhud] Exception: Could not load file or assembly 'cairo-sharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Assembly with same name is already loaded
at System.Runtime.Loader.AssemblyLoadContext.<LoadFromPath>g____PInvoke|5_0(IntPtr __ptrNativeAssemblyBinder_native, UInt16* __ilPath_native, UInt16* __niPath_native, ObjectHandleOnStack __retAssembly_native)
at System.Runtime.Loader.AssemblyLoadContext.<LoadFromPath>g____PInvoke|5_0(IntPtr __ptrNativeAssemblyBinder_native, UInt16* __ilPath_native, UInt16* __niPath_native, ObjectHandleOnStack __retAssembly_native)
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
at Vintagestory.Common.ModAssemblyLoader.LoadFrom(String path) in VintagestoryLib\Common\API\ModAssemblyLoader.cs:line 36
at Vintagestory.Common.ModContainer.<>c__DisplayClass38_0.<LoadAssembly>b__0(String path) in VintagestoryLib\Common\API\ModContainer.cs:line 607
at System.Linq.Enumerable.ListSelectIterator`2.MoveNext()
at System.Linq.Enumerable.IEnumerableWhereIterator`1.ToList()
at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 606
I wasn't able to reproduce this issue with 1.22.6 but noticed that cairo-sharp had a different copy policy compared to the other dependencies in the csproj file. Mod version 1.0.3 has a related change. I hope it fixes the issue.
seemed that the mod was trying to run cairo-sharp after it was already started according to my game monitors.
loading screen errors are gone and the HUD info is showing something now thanks.
Hello! Finally, an open-source weather HUD mod! I'm definitely following this right away—thanks for all your hard work.
Thanks for the positive comment! At moment, temperature is the only weather data shown on the HUD but let's see what the future holds.
Hey, thanks for making this mod! Author of C2F here - I'd love to link this mod on the C2F page so that people can opt to use your mod instead for temperature readings in fahrenheit! Obviously I wanted to ask you if that was okay beforehand.
C2F is made with artificial intelligence, and I'd like to provide users the option to support human coders. Is it alright if I add a link on the C2F mod page for Thermal HUD?
I have no ideas what C2F mod is but you are welcome to add the link to this mod.
It's a Freedom Units alternative for Farenheit enjoyers who aren't also proud Americans.
Yeah, everyone should have the freedom to use the units they're used to. Since adding Fahrenheit support doesn't seem to be a priority for the game devs, I wanted to provide the option to our American survivalist friends.
I like it. Very easy to use and doesn't get in the way.
Thanks for the positive feedback! I'm glad you like it.