WeatherOverrides.Atmosphere.Brightness seems to be clamped at 0.490005f
The SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Brightness seems to only allow me to drop it to 0.490005f
i seem to cant find what is making it clamp i can set in counsel atmosphere_brightness 0.2 and it will set but will not set low if using  WeatherOverrides?
Just a guess here, because Facepunch uses really generic variable names in their code.  But check out Climate.Value4.FindBlendParameters().

In my experiments, I have found that the sun and light levels really affect how the sky and weather look.  Brightness and cloud settings especially.  For example, cloud settings that look really cool at midnight look like trash at noon.  The game's default weather checks for the time of day and lerp its settings accordingly.

Seems like as it moves from one weather setting to the next, values get lerped to stay within 'sane' parameters.
ya i seen that but setting the value manualy with the overide should null out that check? i mean seting it with atmosphere_brightness 0.2 is just setting 
SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Brightness = 0.2f

Merged post

also i have not found a way to make the weather change to current other then weather.load witch is instante i can set the up next but can not figure out how to force it to transition.
It will override the check, temporarily.  But eventually the weather system will run its updates and lerp the values towards normal.

I have set up some really extreme values for the atmosphere and clouds, and if I log back in later, things have returned to normal.  If you really want to override the weather, you will have to be persistent about setting the values.  Adding your method to TOD_Time.OnHour would probably be sufficient. 
well what i have it. witch works but the value seems to not drop to the lowest settings just caps out..
ifi just use ConsoleSystem.Run(noput, "atmosphere_brightness " + NewValue, null); i can ajust it to anything and works.


					while (!end && stormTime > DateTime.Now)
					{	
						if (SingletonComponent<Climate>.Instance.WeatherOverrides.Clouds.Coverage < _instance.configData.stormMode.Clouds)
							SingletonComponent<Climate>.Instance.WeatherOverrides.Clouds.Coverage += 0.01f;
						if (SingletonComponent<Climate>.Instance.WeatherOverrides.Clouds.Coverage > _instance.configData.stormMode.Clouds / 2)
						{
							//_instance.Puts(SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Brightness.ToString());
							if (SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Brightness > _instance.configData.stormMode.Atmosphere_Brightness)
								SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Brightness -= 0.03f;	
							
					    	if (SingletonComponent<Climate>.Instance.WeatherOverrides.Clouds.Brightness > _instance.configData.stormMode.Clouds_Brightness)
						    	SingletonComponent<Climate>.Instance.WeatherOverrides.Clouds.Brightness -= 0.01f;
							
					    	if (SingletonComponent<Climate>.Instance.WeatherOverrides.Wind < _instance.configData.stormMode.Wind)
						    	SingletonComponent<Climate>.Instance.WeatherOverrides.Wind += 0.01f;
						    if (SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Fogginess < _instance.configData.stormMode.Fog)
						    	SingletonComponent<Climate>.Instance.WeatherOverrides.Atmosphere.Fogginess += 0.03f;
						    if (SingletonComponent<Climate>.Instance.WeatherOverrides.Rain < _instance.configData.stormMode.Rain)
							    SingletonComponent<Climate>.Instance.WeatherOverrides.Rain += 0.003f;
							if (SingletonComponent<Climate>.Instance.WeatherOverrides.Thunder < _instance.configData.stormMode.Thunder)
							    SingletonComponent<Climate>.Instance.WeatherOverrides.Thunder += 0.003f;

														
						}
						yield return new WaitForSeconds(0.6f);
					}​
Might not be the most elegant way to do it, but you could use RunServerCommand().  The game seems happy to accept any weather values thrown at it that way. 
Correct this works. can set to anything but just cant figure out why seting the value the command is setting does not work.

            private IEnumerator RunWeatherEnd()
            {
				foreach (var target in plugin.AlarmSound.ToList())
				{
					if (target.Value != null) target.Value.Kill();
					plugin.AlarmSound.Remove(target.Key);					
				}
				while (Fog > 0.2f || Clouds > 0.2f)
				{
					if (Clouds > 0.03f) Clouds = Clouds - 0.01f;
					if (Fog > 0.01f) Fog = Fog - 0.02f;
					if (Wind > 0.01f) Wind = Wind - 0.02f;
					if (Brightness < 1) Brightness = Brightness + 0.01f;
					
							ConsoleSystem.Run(noput, "weather.cloud_coverage " + Clouds, null);
							ConsoleSystem.Run(noput, "weather.wind " + Wind, null);
							ConsoleSystem.Run(noput, "weather.fog " + Fog, null);
							ConsoleSystem.Run(noput, "weather.rain -1", null);
							ConsoleSystem.Run(noput, "atmosphere_brightness " + Brightness, null);
							ConsoleSystem.Run(noput, "thunder -1", null);
							
					yield return new WaitForSeconds(1.5f);
				}​
Just another guess, but maybe it's because of its update cycle.  You can change a variable in the code.  But that change won't be noticed until the update runs.  And the update happens to be lerping your settings toward what it thinks is normal.

Setting the value by console / server command seems to skip the check and just set the value.
Ya could be...

Merged post

You can laff at me later but it was not reading my config so thats why value would not drop below