SDVWM previously known as StardewValleyWeatherMachine is a fully modular based mod that uses real world weather forecast data to provide a customized farming experience where the weather in your location can impact your farm crops and harvest time. SDVWM can either act standalone or you can further enhance your gaming experience with add-ons .
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
In order to be considered for access to any of my mod's source code, you must reach out to me via PM and provide some specific information about your project and you'll be asked to sign a Software License and a Non-Disclosure Agreement.
After these documents are signed and there aren't any questions, you will be provided an API key to access the backend for development purposes.
Note: Creating add-ons to the SDVWM Platform does not require a software license agreement and can be forked from here directly. https://github.com/SixthTitan/SDVWM_Example_Addon
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 2022.7.23-beta
Added Season Awards - Players now have a 50% chance of getting either a buff or debuff that gives various conditions that will greatly affect your farming experience depending on the weather condition and current in-game season.
Added new Buff and Debuff types depending on the season and weather condition as part of the new Season Award feature these buffs and debuffs can greatly affect your farming, mining, digging, luck, fishing, attack, defense, speed, and more in addition to the weather exhaustion debuffs. The amount the buff or debuff is based on your daily luck which will change every time the weather forecast gets updated. (In the future I would like this to be updated every 3 in game hours as well)
Weather forecasts will now update every 3 hours in game based on the user's current hourly forecast with the very last 2 hours in game (00:00 - 02:00) using the current weather forecast allowing for a much more immersive experience and no longer relying on periodic weather updates to provide different weather conditions. The game will now be truly immersive as every 3 hours can and will change and if your weather forecast changes anytime you move to another location during the day, expect that to impact the weather you may face in the next 3 hours if your forecast data gets updated.
Removed Yield% from the system and the HUD, this has been replaced by the new Luck algorithm.
Removed Extra Crop and Crop Yield, this has now been replaced by the Season Award feature.
Removed the "|" between the Weather description and temperature.
Made Wind update checks a separate function which will not update every 3 hours since we are not checking changes to wind every 3 hours at this current time. (It will flicker for a second if I leave it to be updated every 3 hours)
Players who get the same kind of debuff or buff will have a much greater chance for getting the opposite buff type at an increased rate. (Meaning if you got Lucky buffs more than once you will get a Pretty unlucky debuff with an increased amount at a much higher chance next time). This chance will continue to increase the more you get the same kind of debuff or buff and will only reset if the player gets a different debuff or buff type.
Season Awards will only last for an hour and twenty minutes in-game time, leaving the other hour and forty minutes empty. This should encourage players to take advantage of these awards when they get them given the limited amount of time they remain active.
Season Awards will only appear for certain weather conditions depending on the season and they are not all the same per season.
There is a known issue of the Exhaustion debuffs no longer glowing over the player when a weather buff or debuff expires; I am working on a fix for this but it may not arrive until after this build.
Renamed EnableSeasonalConditions to EnableSeasonAwards
Rain, Thunder, Sleet, and Snow will now happen instantly instead of the very next day. (Real Weather is now being rewritten and it's previous code is being merged into SDVWM)
Version 2022.7.15-beta
Prepared SDVWM for the upcoming backend upgrade.
Removed obsolete Astro code compatibility.
Removed online recipe index, players can now set their own recipes that can be used to curb exhaustion in the mod config.
Removed Classic and Interaction HUD modes, Normal is now the only HUD mode moving forward.
Added an option to show or hide the HUD when the "Home" key is pressed.
Began migration efforts to the new backend
Weather reports will now be retrieved during even transition (location warp) in game and at the start of every day.
Reduced Cache time from 1 hour real time to 5 minutes real time (this may change as time goes on with further testing).
Weather Condition text and Temp are now joined in the same line and will be spaced dynamically based on the length of the returned weather condition.
Increased the size of the weather forecast box.
Added Yield % for Harvest chance to yield for higher quality crops to the HUD, allowing farmers to see their chance as their forecast changes.
Updated Fishing Daily Luck algorithm, this value will now be returned from the backend instead of being calculated manually. The new formula is (luck = 1- ( ( rain + (luck_array['humidity'] / luck_array[-1]) - ( pressure / luck_array['windspeedMiles']) * luck_array['visibility'] ) / 100)
The % of Daily Luck will now be displayed beside the Yield % in the HUD.
Added support for weather requests made from International countries outside of the U.S to the backend.
Both chance for Extra crops, and higher crop yield quality (silver and gold) are now determined by the returned yield calculated amount from the backend.
Brought back the daily luck for fishing, the new formula is based on the Updated Fishing Daily Luck algorithm.
Added a new config option to set the amount of hours spent outside before Exhaustion hits the player. (Default is 3 hours)
Version 2.3
Added item consumption to increase exhaustion grace time, when an item is consumed you will be able to stay outside longer before experiencing exhaustion and immediately remove any existing exhaustion without having to go indoors.
Exhaustion will now occur instantaneously rather than every 10th time period in game.
Added more drink and food consumption items to offer a grace period when exhausted rather than having to go inside to recover.
If a player consumes a drink not on the list (ex: coconut water isn't cold enough as a beer!) the player will still experience exhaustion outside, only drinks on the approved list will remove the exhaustion debuff. Otherwise, the exhaustion will persist and cause it to re-apply instantly when drank outside.
Fixed an issue where debuff's would duplicate when consuming an item.
Fixed an issue where an error would be thrown if consuming an item where no debuff is currently applied
Players will no longer experience resets for exhaustion when consuming an item indoors. You'll need to be outdoors in order to remove debuffs as there's no actual point in removing debuffs while indoors since that's done automatically.
Depending on the current season, you will have a variety of hot drinks or cold drinks to choose from to remove the corresponding seasonal debuff.
Fixed an issue where debuffs would sometimes duplicate if an item not on the list was consumed at the same exact time the exhaustion would normally occur.
Implemented a new algorithm for determining chances for extra crops: ((average) + (rainfall/ humidity) * 0.100)
Implemented new security measures to the front-end and back-end.
Automated backend as a deployable service and re-routed current api-end point on the dev branch to resolve the pending depreciation of boto3 vendored library.
Added additional hot drink items to the approved list of items to cure exhaustion
Fixed an error where an exception would be thrown when a player enters a game without consuming an item
Fixed an error where another exhaust debuff would be re-applied over time after consuming an item not on the approved list, causing multiple debuffs to stack.
Players will now experience a debuff with a -2 speed decrease when consuming an item not on the approved list
Fixed an error where debuffs were not being properly applied in the colder seasons
Fixed a bug where the glow flicker rate would move too quickly when consuming an invalid item
Players will no longer lose health when suffering exhaustion effects (This may change depending on user feedback in the future)
Debuffs will now be removed instantly when inside and will no longer regenerate health(Upcoming update)
Edited the Mod Configuration to now set the default cold temperature before exhaustion occurs to be 40F instead of 30F
Consuming an item whether on the approved list or not when the weather conditions do not warrant exhaustion will simply do nothing to the player.
In order to allow new recipes to be added to the recipe index without needing to manually install a new version of SDVWM, all recipes are now on the backend and will be updated periodically going forward.
Updated InfoLog expansion list
Updated rendering to support loading the new expansion name (SDVWM_Environment) from SDVWM_Astro
Modified code to load recipe list on dayStarted game event IF player has not exited the game to prevent an exception thrown when exiting game before next DayStarted game event is triggered.
Players can now set the desired amount of time before their farmer becomes exhausted from seasonal fatigue
Fixed a bug where consuming an item without having any seasonal fatigue applied to the farmer would still reset the timer
Modified the algorithm for determining harvest time for rainfall, the new algorithm is ( (average) + (rainfall) ) where average is the average rainfall, humidity, and temperature for the area.
Version 2.2.3
Fixed an error with Precipitation not being a float and instead being returned as an integer.
Farmers will no longer experience weather exhaustion when the game is paused, rather the exhaustion will become active after leaving the menu if the conditions are met prior to the menu being paused.
Made some changes to how the mod handles file input and output (Thanks Pathsochild!)
Farmers will no longer get an error message when entering the title screen (Previously some farmers mistakenly got some nasty red game performance errors)
Precipitation will now affect the chance for extra crops and days before you can harvest. The formula used to calculate this is: reported amount of rain fall at the players location * 25% for extra crops chance and reported amount of rain fall at the players location * 10%; in the event that there is no reported rainfall; the default will be 1 day harvest and 25% chance for extra crops; the more rain fall; the greater amount of chance for extra crops BUT more days required before you can harvest. Eventually, this will be affected based on the current season; but for now this is the default formula used for all in game seasons.
In preparation for the next add-on release; the text box for SDVWM will scale dynamically if the upcoming add-on is installed; since the upcoming add-on will add additional information to the text box used by SDVWM.
Increased the time before a player becomes exhausted from 1 in game hour, to 2 in game hours and 50 minutes; this gives players more time to be outside without constantly going back in to rest up.
Mod is now compatible with SMAPI 3.6.1
Version 2.2
Built in House API Solution with Cache Control, Encryption, and Enterprise Grade Security.
Users will no longer need to obtain an API Key; as all API Requests will now be done in house.
Automatic Geo Location (Will no longer get IP Address while running the application and no sensitive data is ever downloaded or saved anywhere in the game, only weather data for your location is returned.)
Completely fixed Seasonal Conditions from giving incorrect weather forecasts tomorrow on the TV
Zip-Codes will no longer be required when obtaining the information; this information is done and processed automatically in house.
StardewValleyWeatherMachine has been renamed to SDVWM
Future Add-ons will be renamed to SDVWM_<Add-on Name>
Adjusted Seasonal Harvest Amount, Time to Harvest, and Luck levels.
All requests for IP Geo Information is now done in house and no longer done through the mod directly.
No longer using DynDNS to check for user's IP in order to get weather forecast data.
All API Requests will cache data and will automatically get new forecast data every hour.
Reduced major lines of code
Added new add-ons: Real Weather and Astronomy
Updated Add-ons: Ambient Light
CloudVisability has been renamed to SDVWM_Astronomy
Astrology now has it's own mod page.
Due to the recent purchase of DarkSky from Apple; DarkSky has been removed from SDVWM and all current add-ons will use the built-in house solution moving forward.
Version 2.1
Fixed a bug that caused weather conditions to not properly appear in game when reported by the weather machine.
Added support for user's to provide their zip-code in the mod config.json file (optional) to run requests, rather than get the zipcode via IP address.
Added error reporting and console logging for requests
Changed the Mod Extension Manager directory file structure to use built in modhelper function. (Thanks Pathoschild!)
Fixed a bug with null and or empty string patterns in the mod config file.
All error messages will now be written to error.txt, this should allow me to resolve issues quicker when users report issues.
Existing weather data in SDVWM.ini will now only overwrite if the request to the API provider was successful, if it was not then no data will be overridden. This will allow players to keep playing with the mod in tact in the event of an remote error.
Version 2.0
Mod Extensions: You'll be able to select and install what add-ons you want to use to further enhance your experience with the Weather Machine.
Cross-Communication: All add-ons will now communicate with SDVWM and vise versa, when an add-on is found to be installed along side SDVWM, it will obtain the required information from SDVWM in order to function, the add-on will no longer duplicate weather reports in order to run, it will only obtain a separate weather report in the event that the add-on is installed without SDVWM (Stand alone mode)
Simplified Configuration: SDVWM is being completely re-written from the ground floor, the previous design of SDVWM became too clustered and complex for many users including myself, the new SDVWM 2.0 will simplify everything from across the board and greatly improve performance, configuration for various base features still remain in the ModConfig file, however all add-ons will have their own separate configuration completely independent of SDVWM.
Cloud Visibility Add-on: Most requested feature, this will become the next Mod Extension add-on for SDVWM. More information will be released as I progress through the development of SDVWM 2.0
Asynchronous Network Operations
Additional API Providers
Ability to use your own API Key and select your preferred API provider
Ability for mod developers to build their own add-ons for SDVWM.
Backup of Data in case of error when retrieving new data, backup data will still be used and allow the user to keep playing.
Responsive Heads up Display (HUD) which shows current weather data.
Report_Frequency: this option is only enabled if you've provided your own API key in order to cut down on API traffic. If you have your own API key provided in the config.json file, then you can use this to select how frequent you'd like the mod to retrieve weather reports. You can type 1, for every in game hour, 3 for every 3 in game hours, or 6 for every 6 in game hours.
Version 1.6.0
This version contains many new features such as Solunar Fishing Reports, Critter Controller, Updated Ambient Light codes for weather conditions, Ability to enable/disable certain features during run time and to display current configuration information for the mod via commands. This update also features a brand new Experimental feature called Deferring Exhaustion which allows the player to remove debuffs for a short time by consuming either a Joja Cola or a Coffee at the Stardrop Saloon. This update also includes important bug fixes like fixing the ambient light for clear weather conditions.
Version 1.5.5.1
1.5.5.1 includes bugfixes and important changes towards the Ambient Light feature and the upcoming critter controller feature. There are no new features with this update as it's mostly geared towards bug fixes and changes to prepare for the next update.
Version 1.5.5
• WindController: whenever the user's current location has a wind speed >= 3.00 meters per second, debris will populate on the player's screen and the speed of the debris is based on the current gust speed from the user's location, it will disappear when the wind speed is <= 3.00 meters per second.
• Ambient Lighting: this configures whether you want to experience ambient lighting effects based on atmosphere based weather conditions such as fog, mist, and haze. It's enabled true by default, but you can disable this if you would prefer not to experience ambient light changes in your game. • Updated Weather Condition Lists: Revised the weather condition list in the code, to reflect the changes from the migration towards OpenWeather API
• New Upcoming Feature: CritterController this upcoming feature can be enabled by setting the EnableExperimental configuration in the mod config.json file to true, but please remember that the stability of these features is not guaranteed and I may not be able to provide support for these experimental features as they may be changed or removed with any future version updates.
Version 1.5.1
Migration to OpenWeatherMap API (Weather Underground is now depreciated) Moved to Asynchronous requests for Weather Data Added support for Kelvin Temperature data Corrected an issue that prevented the game from receiving the Weather Forecast every 3 in-game hours. Made significant improvements towards in-game performance.
Version 1.5.0
Users can now tailor their weather machine to their liking, Fixed a major issue that caused the frost bite effects to be applied during the Spring and Summer seasons, Reduced the amount of notifications being sent in game for Freezing and Heat Exhaustion effects, Players will no longer receive notifications when their health is being regenerated inside, General performance upkeep and code refactoring
Version 1.4.5
Added Weather Debuffs, Changed speed for exhaustion to -1, Exhaustion will now appear whenever the conditions are met, regardless of their current health, Players will no longer immediately lose health when the game starts
Version 1.4.0
Added Seasonal Weather Conditions that affect the chance for extra crops, luck level, and harvest time. Added reduced speed when the player is exhausted, this can be removed when recovering inside. Increased the time it takes for a player to restore their health while inside. Changed the minimum temperature before the player can receive frost bite from 40F to 30F Fixed an issue where players may receive duplicate "You're no longer exhausted" messages after they're no longer glowing.
Version 1.3.1 Hotfix
Fixed an issue that prevented players outside of the United States from getting weather reports and forecasts.
Version 1.3.0
Added Heat and Freezing Exhaustion weather related effects, improved in game performance, and added health regeneration when the player is exhausted and inside, they will slowly begin to recover their health until the exhaustion effects ware off.
Version 1.2.0
Added IP Geo Location feature, all weather will now come from the user's location based on their public IP address rather than from Washington DC.
10/20/23: I have been quietly working on revamping my mods from scratch again; I don't have any updates to report as of yet, however expect something soon in the next couple of months or so. I realize that my releases have not been as frequent and I apologize for that, I have been tackling graduate school and my full-time career. So, I am working on this on the side when I have free time. I have no plans to abandon any of my mods and will continue to work to improve them.
Upcoming Upgrades to the Backend: There will be scheduled upgrades to the backend later this July in order to further harden sensitive information such as geographical IP addresses' and weather forecast data. The backend will re-issue new key's and service URLs. Currently only Ambient light is prepared for this change, SDVWM and Real Weather will be ready for the backend upgrades before this major change is made. (Once this change is implemented and there will be enough time in advance to make ready for it, all versions prior to 2022.07.23 will no longer return weather forecast data after these upgrades are complete.
Notice: The old API will be decommissioned on or after September 30th 2022, all mod versions prior to 07.23.2022 will no longer return data. If you have not updated your mods by this time you will get an error.txt file with a 404 error. Therefore, it's highly recommended that you continue to update your mods prior to September 30th 2022 as the backend is currently being rewritten with changes included in every mod release moving forward until the final upgrades are completed.
State of the Mod Plans for 2021-2022:
Add compatibility with Android (WIP)
Add the ability to move where the HUD is positioned
Add support for Integrating with Mobile Phone mod
Add Dynamic GameChat Weather Forecast to replace classic HUD mode
Make it optional to drain the farmer's energy instead of reducing their speed.
Add snow when the temperature is really cold!
Further customize Weather Debuff System (Cold gives speed debuff, Hot gives energy drain) Credit to VonLoewe
Submit your own feature or improvement to be added to this list for 2020-2021 SDVWM Feedback Form
Main Features: Base Configuration: Users can tailor their weather machine to their liking when the game first boots up a config.json will be generated automatically in the StarDewValley Weather Machine mod folder with the following settings:
TempType: Choose either F for Fahrenheit, C for Celsius, or K for Kelvin.
WindController: whenever the user's current location has a wind speed >= user entered meters per second , debris will populate on the player's screen and the speed of the debris is based on the current gust speed from the user's location, it will disappear when the wind speed is <= <set value> meters per second.
Season Awards: With every season, comes various perks and benefits: certain weather conditions in the game will affect the number of crops you receive at harvest and even the time before your crops are ready for harvest depending on the season. Use true to enable, false to disable. This feature is enabled by default
coldTemp: The minimum temperature required in order for cold weather related exhaustion effects to occur.
hotTemp: the maximum temperature required in order for heat related weather exhaustion effects to occur.
EnableExhaustion: set to true by default, you can set this to false if you would prefer to not experience weather related exhaustion effects on your farmer.
ExhaustionHours: set the amount of time (float) in hours before your farmer becomes fatigated from seasonal weather changes. (Default is 3.0)
EnableLogging: set to false by default with the exception of beta releases where it's set to true by default, if set to true information will be displayed in the command output about the mod including any installed add-ons and beta related important announcements.
EnableExperimental: set to false by default, you can set this to true if you'd like to get a preview of any upcoming features. However please note that the stability of these features is not guaranteed and I may not be able to provide support for these experimental features as they may be changed or removed with any future version updates.
2022.7.15+ Updated Responsive HUD:
Your local forecast data is shown on the top left hand corner and is updated in real time, every in game day and every time your player changes location. The HUD shows the Weather Condition, Temperature, Wind Speed, Humidity, Yield for Harvest, and Daily Luck. The HUD is responsive, so it'll fit any screen resolution. In addition, this can be hidden by pressing the 'Home" key.
Rewritten Exhaustion System:
New in version 2.3 is a completely rewritten Exhaustion system for SDVWM that allows players to experience seasonal debuff effects such as Frost Bite or Heat Wave depending on the current season in game, you may find yourself sweating over this news or maybe you're chilled to the bone hearing that the weather in the game can now affect you!
Either way, we've partnered with Jojo Corporation to offer you some refreshing Cold Beverages to help you overcome your pain. Of course, you can also go down the street to the Stardrop Saloon and grab yourself a warm slice of Pizza.
Speaking of pizza, I heard that Gus uses Pumpkin pie to make the crust, but of course that's just a rumor... You can also make certain dishes at home to....
Uh oh! It appears that the rest of the text that was supposed to fill this page has gone missing. It looks like it'll be up to you to fill in the missing pages and find the rest of the items that can curb your exhaustion.
Share any recipes you've found to help curb exhaustion on our forums so that other players can thank you properly and maybe Gus will start smiling again.
Add-ons provide additional features not included in the mod by default and provide a customized experience to further your game play.
Ambient Light: The Ambient Light plug-in is available here.
Real-Time Weather Events: Allows Weather events to happen in real-time, rather than the next day, the plug is available here.
Example Add-on: Hello World Mod checks for SDVWM.ini which contains the stored data and is used by the mod and all add-ons, all you have to do is integrate the data into your mod or add-on and use your imagination. Let me know what are some of the things you've created with the data. I'll showcase mods / add-ons created by other users that used SDVWM for their mods on this page. The Hello World SDVWM plug-in is available here.
More add-ons will become available in the future.
The next Experimental Feature is coming soon!
Notice: Experimental features are intended to be quite buggy and unstable, only enable if you accept the risks. Support for these features is limited but we appreciate you volunteering your efforts to test these features for us so that we can better improve them.
Bug Fixes and Changes
Added the option to provide a zip-code allowing users to specify a specific location for weather instead of fetching their zip-code automatically.
Refactor remove outdated code.
Updated deprecated modHelper code for rendering the UI in assets.
Moved the HUD to the Map Menu, Weather data will now be displayed in the Map Menu.