Action denied

Weather system in Winter Resort Simulator 2

This guide is an introduction to the weather system in Winter Resort Simulator.
It is divided into the following sections:

1. General information

Every map/savegame has its custom/specific weather information which is saved in the environment term of the savegame.
It consists mainly of the two parts followingSituationList and weatherSituations.

followingSituationList is like the weather forecast for the next days. You can have a look at it ingame in the ESC menu of the savgame.
weatherSituations consists the data of every single weather situation. If you want to know which weather situations are available in the savegame you are currently playing you can use

/getWeatherSituations

as ingame text box command. Have look at this page to learn more about the commands for the weather system.

This tutorial shows you how to change the upcoming weather, how to change existing weather situations and how to add new weather situations to the savegame.

Open your savegame folder at Documents/My Games/WinterResortSimulator2/savegames and select the .lua file from the savegame you want to change something. The best way to run the “.lua” file is with a text editor like “Notepad ++”.

Important: Please always create a backup of your savegame before you start editing it. Otherwise you are at the risk of losing the savegame in case the changes do not work as intended.

2. Change the upcoming weather

Use CTRL + F to search for the term followingSituationList. Now you should see the term followingSituationList.

{
	situation = "snowy1",
	duration = 105862,
},

Every entry in this list consists of situation and duration.
situation is the name of the weather situation.
duration is the time in seconds this weather situation will last.

To change the upcoming weather scenarios change the weather situation to the desired situation (always edit the text between the double quotes ).

{
	situation = "cloudy2",
	duration = 105862,
},

You can choose between following situations:

  • cloudless
  • cloudy1
  • cloudy2
  • snowy1
  • snowy2

These five weather situations are the standard ones (Please keep in mind that they may have other names, e.g. sunny instead of cloudless).
You can use other weather situations if they are available in the your savegame. To find out which weather situations are available use the text box command mentioned above or have a look at weatherSituations in your .lua file.

3. Weather situations

Use CTRL + F to search for the term weatherSituations

There you will find all the weather situations of this savegame with all their data.

The table of a weather situation (here cloudless) looks like that:

cloudless = {
	durationMin = 28800,
	durationMax = 86400,
	updateInterval = 900,
	avalancheRisk = 0,
	guestShare = 1,
	icon = 1,
	dailySnowfall = 0,
	dailyThaw = 0.5,
	dailyHardenDay = 0,
	dailyHardenNight = 4,
	snowProductionCoeff = 1,
	weatherData = {
	    {
			probability = 0.95,
			weather = 0,
		},
		{
			probability = 0.05,
			weather = 1,
		},
	},
	followingSituations = {
		{
			probability = 0.3,
			situation = "cloudless",
		},
		{
			probability = 0.2,
			situation = "cloudy1",
		},
		{
			probability = 0.2,
			situation = "cloudy2",
		},
		{
			probability = 0.2,
			situation = "snowy1",
		},
		{
			probability = 0.1,
			situation = "snowy2",
		},
	},
},

These five weather situations are the standard ones (Please keep in mind that they may have other names, e.g. sunny instead of cloudless).

  • cloudless
  • cloudy1
  • cloudy2
  • snowy1
  • snowy2

cloudless is the name of the weather situation in this example. This name can be freely chosen. Please keep in mind that changing an existing name also necessitates changes at the followingSituations of this and the other weatherSituations.

The name is followed by a part of various variables.
durationMin and durationMax are the minimal/maximal time in seconds this weather situation lasts. The actual duration is randomly selected in this range.
guestShare affects the number of the unvisible (eco system) guests.
dailySnowfall is the amount of snow in metres that falls within one ingame day, depending on the snow info layer level.
dailyThaw is the amount of snow in metres that thaws within one ingame day, depending on the snow info layer level.
dailyHardenDay and dailyHardenNight affect how fast the slopes harden during day/night (the higher the faster).
snowProductionCoeff influences the amount of possible snow production (0.0 = no snow production; 1.0 = regular snow production) (available since WRS 2 main game update on December 1, 2022).
avalancheRisk indicates the risk of avalanches when this weather situation is active. (There is currently no avalanche system in Winter Resort Simulator 2, influences only the text on the infoscreens)

icon selects the icon displayed in the weather forecast for this weather situation.

  • icon = 10 → Storm/Thunderstorm
  • icon = 9 → Rain
  • icon = 5 → Heavy Snow
  • icon = 4 → Light Snow
  • icon = 6 → Windy
  • icon = 11 → Foggy
  • icon = 12 → Heavily cloudy
  • icon = 3 → Heavily cloudy
  • icon = 8 → Cloudy
  • icon = 2 → Partly cloudy
  • icon = 7 → Clear Sky
  • icon = 1 → Sunny
  • icon = 0 → Unknown

This order in the list was intentionally chosen because it represents the precedence of the icons (from top to bottom). That means for example that Storm/Thunderstorm overwrites all the other icons (only the icon Storm/Thunderstorm will be shown in the forecast if there is thunderstorm and heavy snowfall on the same ingame day).

The next part is weatherData. Here you can set/change the type of weather which will be shown when the respective weatherSituation is active.
The following eleven weather types/patterns are available in Winter Resort Simulator 2.

  • weather = 0 → Clear Sky
  • weather = 1 → Cloudy 1
  • weather = 2 → Cloudy 2
  • weather = 3 → Cloudy 3
  • weather = 4 → Cloudy 4
  • weather = 5 → Foggy
  • weather = 6 → Light Rain
  • weather = 7 → Heavy Rain
  • weather = 8 → Light Snow
  • weather = 9 → Heavy Snow
  • weather =10 → Storm
weatherData = {
	{
		probability = 0.95,
		weather = 0,
	},
	{
		probability = 0.05,
		weather = 1,
	},
},

Every entry in this list consists of probability and weather.
At weather you select one of weather types from the list above. Just set the number of chosen weather. If you want to change the type of weather just replace the number at weather = * .
probability sets the probability that this weather type will be shown when this weather situation is active. (The sum of all probabilities at weather data of a weather situation should be 1 = 100%, like in the example 0.95 + 0.05 = 1)

The last part is the list of followingSituations. The weather situations in this list can follow the active weather situation.

	followingSituations = {
		{
			probability = 0.3,
			situation = "cloudless",
		},
		{
			probability = 0.2,
			situation = "cloudy1",
		},
		{
			probability = 0.2,
			situation = "cloudy2",
		},
		{
			probability = 0.2,
			situation = "snowy1",
		},
		{
			probability = 0.1,
			situation = "snowy2",
		},
	},

Every entry in this list consists of probability and situation.
At situation you select one weather situation available in the savegame (can also be the one you are editing the followingSituations of).(always edit the text between the double quotes )
probability sets the probability that this weather situation will follow the currently active weather situation. (The sum of all probabilities at followingSituations of a weather situation should be 1 = 100%, like in the example 0.3 + 0.2 + 0.2 + 0.2 + 0.1 = 1)

4. Add a new/further weather situation

First step: Copy the table of an existing weather situation and insert it into the weatherSituations term of your savegame.
Next step: Set a name for your new weather situation by replacing the name of the copied situation.

foggywinter = {
	durationMin = 24000,
	durationMax = 80000,
	updateInterval = 900,
	avalancheRisk = 1,
	guestShare = 0.8,
	icon = 11,
	dailySnowfall = 0,
	dailyThaw = 0.1,
	dailyHardenDay = 0.25,
	dailyHardenNight = 1,
	snowProductionCoeff = 0.9,
	weatherData = {
	    {
			probability = 0.90,
			weather = 5,
		},
		{
			probability = 0.05,
			weather = 8,
		},
		{
			probability = 0.05,
			weather = 3,
		},
	},
	followingSituations = {
		{
			probability = 0.5,
			situation = "cloudless",
		},
		{
			probability = 0.15,
			situation = "cloudy1",
		},
		{
			probability = 0.15,
			situation = "cloudy2",
		},
		{
			probability = 0.1,
			situation = "snowy1",
		},
		{
			probability = 0.09,
			situation = "snowy2",
		},
		{
			probability = 0.01,
			situation = "foggywinter",
		},
	},
},

For this example the table of the weather situation cloudless (from above) has been copied. The name cloudless has been replaced by foggywinter as the name of the new weather situation. Also some of the variables have been adapted to the new weather situation. All important information about the different variables can be found above.

Optional step: you can add the new weather situation to the list of followingSituations of new weather situation as in the example. If you do so you create the possibility that the weather situation will be followed by the same weather situation.

Last step: to ensure that the new weather situation will also occur automatically and randomly, it must be added to the list of followingSituations of at least one other weather situation.

	followingSituations = {
		{
			probability = 0.3,
			situation = "cloudless",
		},
		{
			probability = 0.2,
			situation = "cloudy1",
		},
		{
			probability = 0.1,
			situation = "cloudy2",
		},
		{
			probability = 0.2,
			situation = "snowy1",
		},
		{
			probability = 0.1,
			situation = "snowy2",
		},
		{
			probability = 0.1,
			situation = "foggywinter",
		},
	},

In this example, foggywinter has been added to the list of following situations of the weather situation cloudless.

5. Season weather system

Now we can use the knowledge about the WRS weather system to create a season weather system.
There is no limit on the number of seasons and they do not have to have special names either.
Each season consists of multiple normal weather situations. The names of the weather situations can be chosen freely, however, it is recommended to add the name of the season as supplement, e.g. foggywinter.

First step: Make a list with all seasons and the weather situations that each season should consist of. For example:

  • Winter: sunny, cloudy1, cloudy2, snowy1, snowy2, foggy,….
  • Summer: sunny, cloudy1, cloudy2, rainy1, rainy2, storm,….
  • Spring: sunny, cloudy, foggy, rainy, snowy,…

Next step: Create (add new/adapt existing weather situations) all the necesarry weather situations by using the part above of this tutorial. It is recommended to create one weather situation for each season which is namend like the season. This is going to be the first weather situation after the season change. It does not really matter which weather pattern you choose at weatherData if you set durationMin and durationMax to quite low values.
To continue the example from the list above we would have to create the weather situations winter, summer and spring.

Last step: For the season weather system the most important part of each weather situation is the list of followingSituations. Every season is like an island and consists of different villages (= weather situations). The list of following situations represents the routes from one village to another one on the same island.
As changing from one season to another one should only be possible manually by using the text box command, we have to ensure that the list of following situations of a weather situation only consists of weather situations from the same season.
To continue the example from above again the list of following situations of the weather situation sunnywinter should/could look like this:

	followingSituations = {
		{
			probability = 0.3,
			situation = "sunnywinter",
		},
		{
			probability = 0.2,
			situation = "cloudy1winter",
		},
		{
			probability = 0.1,
			situation = "cloudy2winter",
		},
		{
			probability = 0.2,
			situation = "snowy1winter",
		},
		{
			probability = 0.1,
			situation = "snowy2winter",
		},
		{
			probability = 0.1,
			situation = "foggywinter",
		},
	},

To change the season ingame use the text box command

/changeSeason x

and replace x by the name of the desired season.
Please note: This command is part of the Riedstein DLC. The DLC has to be activated in your savegame.

As the seasons are just weather situations (with specific lists of following situations), the command /changeSeason does the same as /setWeather, but in addition the weather forecast will be recalculated on base of the list of followingSituations of the selected season. /changeSeason works with any weather situation.