Gives full control over weather to the server, defined by configurable Markov chains per month (allowing seasons).
Requires DataManager!
You can find the configuration file in server/data/custom/__config_WeatherController.json
.
A default configuration will be generated, with the same weather mechanics as vanilla
minDuration
the minimal amount of game hours a weather condition should lastmaxDuration
the maximal amount of game hours a weather condition should lastseasonData
<season>
name of the seasonmonths
list of months included in the season, as numbers from1
to12
regions
table with lower case region names as keys and markov chain matrices as values- for each row
i
columnj
defines the probability ofj
being the next weather.
Each row should add up to 1.["ascadian isles region"] = { {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0}, {0.45, 0.45, 0, 0, 5, 5, 0, 0, 0, 0} },
- for each row
List of all weathers in Morrowind + Tribunal + Bloodmoon:
- Clear
- Clody
- Fog
- Overcast
- Rain
- Thunder
- Ash
- Blight
- Snow
- Blizzard
The following events are provided for other scripts to use:
Weather_OnSeasonInit(currentSeason)
called once on startup, gives the name of the current season as the only argumentWeather_OnSeasonChange(previousSeason, currentSeason)
called whenever the season changesWeather_OnWeatherChange(region, previousWeather, currentWeather)
called whenever the weather inregion
changes