Description:
The script/addon creates dynamic and semi random weather based on a random seed, is heavily configurable, has starting presets, weather trends and min/max values.
Standard behaviour is that script lets weather cycle between min and max values. But you can also pin the weather at a specific level with the "constant" trend.
Random weather outbreaks can occur depending on your settings.
- Presets are respecting min/max values.
- Rain is controlled by ArmA.
- Generally, fog levels are more likely to be low.
- Semi-Randomness, it uses a random or user defined random seed (always logged to rpt): with the same seed number and arguments you will get the same weather progression.
Weather changes / trend changes are executed every 30 minutes with no brute force, i.e. no abrupt changes and no cpu spikes (except at startup). After all, especially cloud/overcast change is slow in ArmA.
Script is for SP usage, I'm planning to expand it to MP. The script is derived from a script of forum user Meatball.
Installation:
Please check your config files in Steam\SteamApps\common\Arma 3\userconfig\tort_DynamicWeather\, at best, overwrite them with the newly distributed ones.
Island weather definitions are in: userconfig\tort_DynamicWeather\tort_islands.sqf
To enable them, you need to set "islandTemplates = 1;" in tort_DynamicWeather_config.hpp
\Steam\SteamApps\common\Arma 3\userconfig\tort_DynamicWeather\tort_islands.sqf must be available for the mod to work!
Extract into the ArmA 3 Directory, by default this is located in:
32-Bit - C:\Program Files\Steam/Steamapps\Common\ArmA 3\
64-Bit - C:\Program Files (x86)\Steam/Steamapps\Common\ArmA 3\
After extraction it should look like this:
You can also use the "Arma 3 Alpha" folder in your "My Documents" folder. Your folder setup could than look like for example this:
mydocuments\Arma3 Alpha\@your_mod_folder_name1\addons\
mydocuments\Arma3 Alpha\@your_mod_folder_name2\addons\
mydocuments\Arma3 Alpha\@your_mod_folder_name2\addons\
When present place the "userconfig" folder into your game install folder, usually:
"C:\Program Files (x86)\Steam\steamapps\common\Arma 3".
You may already have "userconfig" folder from other addons and/or mods in which case it is safe to merge the contents from this archive.
You'll also need to add a Launch Parameter to Steam, in order to do so right-click on ArmA 3 Alpha and click Properties and then Set Launch Options. In the window that opens enter in -mod=@your_mod_folder_name
For using multiple mods you would then do so like this:
Note:
You can also use -nosplash to get rid of the splash art and intro videos.
And of course you can also enable and disable community made addons and mods through the in-game Options Expansions menu if you do not want to mess with startup parameters!
When the above information still does not provide you with enough to learn how to install custom addons and mods you can always ask in our Guide On Installing Mods.
Included files:
tort_DynamicWeather.pbo
Usage:
Please check your config files in Steam\SteamApps\common\Arma 3\userconfig\tort_DynamicWeather\, at best, overwrite them with the newly distributed ones.
Island weather definitions are in: userconfig\tort_DynamicWeather\tort_islands.sqf
To enable them, you need to set "islandTemplates = 1;" in tort_DynamicWeather_config.hpp
\Steam\SteamApps\common\Arma 3\userconfig\tort_DynamicWeather\tort_islands.sqf must be available for the mod to work!
Addon usage:
a) Copy "@tort_DynamicWeather\" folder from inside the zip file into your Arma 3 directory.
b) Start @tort_DynamicWeather\CopyOrEditConfig.cmd in order to copy and/or edit the mods config file.
Script usage:
Step 1)
Put the file script\tort_DynamicWeather.sqf on top level of your mission folder
- OR -
call it directly from my addon folder, examples below.
Step 2)
Call script from editor, e.g. from initialisation of player unit
- OR -
call script from other scripts.
Examples of script calls below in examples section.
0 = ["random", "better"] execVM "\@tort_DynamicWeather\script\tort_DynamicWeather. sqf";
Weather initially random and will definitely become better.
This is the call when the script resides in the "Arma 3\scripts\" folder.
0 = [[0.5, 0.3, 0.1, 0.8], "constant"] execVM "\@tort_DynamicWeather\script\tort_DynamicWeather. sqf";
User defined values instead preset. 0.5 overcast, 0.3 fog, 0.1 wind and 0.8 rain.
Weather will stay constant.
0 = ["bad", "pBetter", [0.1, 0], [0, 0.2], 0, [0, 1, 0.4, 0.8, 0, 1]] execVM "\@tort_DynamicWeather\script\tort_DynamicWeather. sqf";
Bad starting weather, probability to tend towards better. 10% probability of a
completely random change. We have a constant fog level of 0.4-0.8.
0 = ["foggy", "constant", [0.2, 0], [0.05, 0.2], [0, 1, 0.4, 0.8, 0, 1], 0, 0] execVM "\@tort_DynamicWeather\script\tort_DynamicWeather. sqf";
Foggy starting weather, 20% probability of a completely random change. Weather
will stay like this (+/- 0.05); - weather will then always return back to
starting weather in maximum 0.2 steps. Uses a random seed (default)
0 = [[0.35, 0, 0.2, 0], "constant", [0.1, 0], [0.1, 0.25], [0, 0.7, 0, 0.5, 0, 0.6], 200, 1337] execVM "\@tort_DynamicWeather\script\tort_DynamicWeather. sqf";
Nice Altis weather with a light chance of not overly extreme breakouts. Debug level n with [n>10] will output <n> weather calculations to rpt, so here it will output 200 calculations. Randomization based on random seed number 1337.
Arguments (all opyional):
initial "clear"|"sunny"|"cloudy"|"foggy"|"bad"|"random"|"rndGood"|"rndBad"
Alternative: [0.2, 0.5, 0.4] (order: overcast,fog,wind) Negative values randomize, -0.6 means "random 0.6".
trend, ("constant"|"worse"|"pWorse"|"better"|"pBetter"|"freeCycle"|"random"|"oscillate")
Weather trends towards this direction.
"pWorse"/"pBetter" have a 2/3 chance to trend towards their direction
"better"/"worse" trend to their direction in any case
"constant" keeps the weather as applied initially and in case of
random breakouts, weather slowly returns to constant level.
"oscillate": weather always oscillates between extreme values
probRndChange[] [a,b] Probability of a random change per cycle.
[0.2, 0.1] means:
20% chance of next weather being random, respecting minMax[] values.
If a random event happens, then in 10% it does not respect
minMax[] values, but chooses values in the whole weather range.
variation[] [min, max] Example: [0.05, 0.2] If weather trend leads somewhere,
a change per cycle is at least 0.05, at max 0.2.
If trend is "constant": 0.2 is the max change per cycle, to return to
constant level. +/-0.05 is the max variance around constant level then.
- No effect if you choose "random" trend.
minMax[] [minOvercast, maxOvercast, minFog, maxFog, minWind, maxWind]
Here you can define the minimum and maximum values in which
overcast, fog and wind have to be.
debugMode (0,1,2,3,n) 0 = no messages, 1 = show hints, 2 = change weather every few seconds and
show hints, so you can observe what happens. 3 = write 100 calculations to rpt, n>10 = write n calcs to rpt.
randomSeed seed number (1 - 999999) / 0=script chooses a random seed number
delaySeconds script delayed execution in seconds || neg.values: smooth transition to initial weather
Notes:
If you notice a hole above the player:
It's ArmA. The higher your cloud settings, the smaller the hole.
Future plans:
- Make menu available to script version
- Userconfig option for menu on/off
- Expose all possible weather/trend/mod aspects in menu
- Simple/Extended/Off menu toggle
Changelog:
v1.3.3
- Fix: "FreeCycle" trend did not move at all... Some minor bug fixes.
v1.3.1
- Adresses above setovercast problem.
- "oscillate" trend (jumps permanently from full cloud to zero clouds) was broken by design. Fixed.
- You can now alt-tab to Arma 3\userconfig\tort_DynamicWeather\tort_islands.sqf, edit it, return to your mission and your changes will be applied after mod restart (which is in the 0-8-1 support menu).
v1.3
- Bug fixes and slight reorg to Addon menu (which is in the support menu. 0-8)
- own wind and rain thread. Its experimental, needs some work, also because main script does still handle wind as well which is obsolete, but I have not much time. But should be no problem, also for performance.
- Island templates, i.e. full weather definition can be applied (happens at mission start) per Island/World. Enable it in config file and copy island definitions to user config, as described below.
v1.2.7
- Script version
The random events can now be exactly defined via min/max arrays. They overwrite the general minimum/maximum values. Currently only available in script version because it sucks a bit to put such things into userconfig. Internal mod presets may use it. I know the command line can be complicated, but I couldn'r resist. I prefer possibility of expression over ease of use.
v1.2.6
- Minor bug fixes, code cleanup, Fix: "Unpredictable" template has not been called.
v1.2.5
- minimal changes to some presets
- rain is now controlled by script (but also by Arma at times), it has an own rain thread(script). More wind, more possible variation. Its just a first test and playground. Infomonitor (0-8-1-1) shows, if script or ArmA has control.
"Downside" of the rain script: Files now must be in A3\@tort_dynamicweather (don't rename the folder). Otherwise I'd have to use 2 different scripts for mod and script version, I do not want this.
v1.2.4
- Support menu: refinements, added templates, fixed bugs
v1.2.3
- Added some simple random gust change into script and addon. I'm not sure if setGusts has an effect currently.
- improved the menu and info screen. Added templates menu.
v1.2.2
(Addon version) Persistent info display (toggable, see 0-8-1-1), more info.
v1.2.1
- (mod version) A lot more aspects now controllable via 0-8 menu.
- enhanced info screen (see 0-8-1-1):
v1.2
- Support menu (keyboard 0-8) reorg and fixes.
- Fixes to presets and trends.
- Manual trend changes now start immediately
- Shuffle/Reset/Stop option
- Simple info screen
v1.1.9
- Workaround in script and addon for "zero wind" ArmA bug (http://feedback.arma3.com/view.php?id=19024)
v1.1.8
Mod version. Fixes and additions to 0-8 support menu.
v1.1.7
- Changes: Possibility to delay script/addon execution. As for Addon, you need to update your userconfig file.
v1.1.5
- Changes: Extended initial weather options.
a) Added optional randomness to initial weather array. An example: [[0.2, -0.8, 0.5], "freeCycle"], ...
Means: clouds exactly 0.2, fog will be random(0.8)(*), i.e. between 0 and 0.8, wind is exactly 0.5
Negative numbers inspiration comes from Engimas Arma2 weather script. It's done this way, because you cannot put functions or formulas into the arguments.
b) added two initial presets: "rndGood" and "rndBad"
- the good one will have clouds/fog/wind between 0 and 0.5, the bad one between 0.5 and 1
v1.1.4
- Bug fixes
- Added new trend "oscillate" - weather always oscillates between extreme values. probRndChange and minMax still apply.
v1.1.3.6
- No hint if debug level 0
- Check if already an instance is running (interesting only for addon version and savegame usage).
- Allowed Multiplayer; added MP code examples to "scripts\MP Code\"
v1.1.3.5
- Initial weather values and "constant" trend are respected prior to minimum/maximum values. Example below.
- Some code reorg and bug fixes
v1.1.3.4
- Addon: initial setting in userconfig file now supports both, preset name and weather array.
v1.1.3.3b
- Fixed a bug that made script/addon restart after one cycle.
v1.1.3.3
- Bugs fixed, better logging to rpt
v1.1.3.2
- The new debugging mode 3 showed me that random number generation was flawed, fixed.
- Fixed RPT output, had incorrect values for fog.
- SeedNumber always logged to rpt.
v1.1.3
- Added a Debug mode 3: does not apply weather, but writes 100 calculations to .rpt file (see %userprofile%\AppData\Local\Arma 3\) and then quits.
v1.1.2
- Changed the parameter "probRndChange". Its the probability of a random weather event happening, which you e.g. may use to spice up a "constant" trend. You can define it as an array now, first value is probability of such an event to happen (respecting the minimum and maximum values) and the second argument the probability, if such an event happens, of it not respecting min/max. Old command line is compatible.
Addon users: Please use the new userconfig file, otherwise you receive a "probRndChange" error message at mission start.
- sleep (and hence weather progression time) values were seriously flawed, fixed.
- [script version] As the command line got pretty complicated, I added a script tort_DW_presets.sqf with some more or less meaningful presets, arguments are just a preset name and debug level. The sqf has the info.
- made code more readable
- introduced a global variable (boolean) "tort_dynamicweather", mission makers can check if my script/mod is running.
- in addon version, you can only use a fixed array for initial weather, not the preset names.
v1.1.1
- Bug fixes. Uses own random number generator and a random seed. With the same seed, you get the same random weather.
v1.0.9.3
- Bug fix release
v1.0.9.2
- Bug fixing. pbo version: please replace your user config file with the new one. Array of init values for _preset now possible as in script version.
You are using our website as a guest. Guest have the lowest downloadspeeds and will download from our public file servers. If you would like to know how you can download with higher speeds and have to wait less while downloading check out the Armaholic subscription system. When you have already subscribed and your account is not upgraded within 24 hours it means you probably forgot to include your username. If that is the case please contact us as soon as possible!