07 September 2026

Weather Generation Redux


After playtesting my Weather generator  for the last few years I figure its time for an update. There have been a few tweaks to numbers I've made over the years. The biggest change I made which I haven't shared yet is a table for precipitation change once precipitation does start. I've also been working on making it into a html/JavaScript program that can be run straight in the browser, I made an excel generator awhile ago, but I've found it to be inadequate. As I've been building the new program I've introduced some new complexities I would never bother with if I was actually rolling at the table, but I'd like to explain what those changes are and how you could do it at the table, if you are okay with rolling dice until the end of time :)

So in the program I am building(link to a github page below) the basic process is going to look like this:

  1. Roll for Daily Wind values
    1.  At the beginning of each day Roll Wind Strength(2d6 lookup chart, including modifiers from previous day's wind value and local wind strength modifier - weak or strong, etc)
    2. At the beginning of each day Roll Wind Direction(2d6 lookup chart with local wind direction as average - 6-8 roll, including modifiers from previous wind direction, and if modifier causes roll to to go above 12 or below 2, then wrap the value around in a circle-13 becomes 2, 14 becomes 3, 15 becomes 4, etc)
  2. At the beginning of each day Roll for Daily Temperature(2d6 lookup chart by climate and month, including modifiers from previous day's temperature and current daily wind strength) 
  3. Roll for Cloud Cover
    1. Roll Cloud cover(2d6 lookup chart by climate and month, including modifiers from previous Cloud Cover state)
      1. If Cloud Cover is fog, roll for fog type(1d4 lookup table)
    2. Roll time until next state change check for cloud cover(12d6 turns), if precipitation has not changed cloud cover, then roll for cloud cover again at the end of this period.
  4. Roll for precipitation
    1. Roll time of state change check for Precipitation(6d4 turns, starting from end of last Precipitation event or when clear or fog changes to some form of cloud cover); If Cloud Cover is Clear or Fog do not roll for Precipitation
    2. Roll to Determine if Precipitation happens and what type(2d6 lookup chart, including modifiers from Cloud Cover
      1. Apply any applicable modifiers from the Precipitation table to the Wind Speed Roll, and update the current wind speed.
      2. If the current wind speed changes the Temperature modifier, update the current temperature roll, and update current temperature if needed
      3. Roll for State of Precipitation(Rain, Hail, Ice Pellets, Mix of Rain and Ice Pellets, Freezing Rain, or Snow) using the updated temperature(1d20 lookup chart based on each temperature type)
      4. Roll for chance of Thunderstorm(1d100 roll based on Precipitation), if a thunderstorm results, it lasts for the duration of the precipitation event
    3. Roll for Duration of current Precipitation type(6d4 turns if no precipitation is rolled, 1 turn for sprinkles, 1d3 turns for showers, 3d4 turns for a downpour, 6d4 turns for a drizzle)
    4. At end of current Precipitation duration, Roll for Precipitation transition(1d6 lookup table based on current precipitation)
      1. modify current cloud cover(any result of + or - 1 degree simply means to increase degree of cloud cover so partly cloudy becomes cloudy becomes overcast, or vice versa, but it still has to stay within one of the cloudy ranges and cant become clear of foggy unless the transition chart explicitly says so)
      2. modify current wind speed if new precipitation value calls for it
      3. modify current temperature if wind speed was adjusted.
    5. Repeat steps 3 and 4 until the precipitation transition table calls for an end to the precipitation event, then proceed to step 1, and roll for current cloud cover duration(as it is at end of precipitation event) from step 3.2
  5. Repeat the Process for each day, rolling wind and temp for each day taking the previous days rolls to modify current rolls, and rolling cloud cover and precipitation on a duration by state change basis.
Wind Strength Lookup Table:

Wind Direction Lookup Table:

Cfa Climate Temperature Lookup Table:

BWh Climate Temperature Lookup Table:

Cfa Climate Cloud Cover Lookup Table:

BWh Climate Cloud Cover Lookup Table:

Fog Type Lookup Table:

Precipitation Event Lookup Table:

Precipitation State Lookup Table:

Thunderstorm Lookup Table:
*If Precipitation State is 'Hail' assume Thunderstorm and do not roll on the below table.

Precipitation Transition Lookup Tables:




The app allows you to set several parameters: climate type(currently only Cfa and BWh are available), base wind strength modification(weaker or stronger than standard), dominant wind direction, the current month, the state of weather of the previous day(temp, cloud cover, wind strength, wind direction) which can all be randomized, and how many days to generate weather for. I will update this post with a link to the app(probably on github) once I finish working out all the bugs.

No comments:

Post a Comment