Change weather for individual player?
With the legacy weather system, it was possible to change the weather for an individual player through EnvSync. Does anyone know if this is still possible with the new weather system? It seems that the new system is handled differently with global override variables.

I have tried to disable the weather completely with the overrides but the weather will revert to what it was before I disabled it.

ConVar.Weather.clear_chance = 1f;
ConVar.Weather.rain_chance = 0f;
ConVar.Weather.fog_chance = 0f;
ConVar.Weather.storm_chance = 0f;
ConVar.Weather.dust_chance = 0f;
ConVar.Weather.overcast_chance = 0f;

server.Command("weather.clear_chance", 1);
server.Command("weather.rain_chance", 0);
server.Command("weather.fog_chance", 0);
server.Command("weather.storm_chance", 0);
server.Command("weather.dust_chance", 0);
server.Command("weather.overcast_chance", 0);

SingletonComponent<global::Climate>.Instance.Weather.ClearChance = 1f;
SingletonComponent<global::Climate>.Instance.Weather.FogChance = 0f;
SingletonComponent<global::Climate>.Instance.Weather.RainChance = 0f;
SingletonComponent<global::Climate>.Instance.Weather.StormChance = 0f;
SingletonComponent<global::Climate>.Instance.WeatherOverrides.Rain = 0f;
SingletonComponent<global::Climate>.Instance.WeatherOverrides.Atmosphere.Fogginess = 0f;
SingletonComponent<global::Climate>.Instance.WeatherOverrides.Clouds.Coverage = 0f;
SingletonComponent<global::Climate>.Instance.WeatherOverrides.Wind = 0f;
SingletonComponent<global::Climate>.Instance.WeatherOverrides.Thunder = 0f;​
It should be possible, since the server tells the clients what the current weather is.

Check out how 'Zone Manager Time' plugin sets a specific time for certain players/areas.  Could provide some insight.
Thanks, ill check it out. I managed to get it partially working, but it's not as flexible as the old weather system if I'm understanding it correctly.

With the old system, it was possible to send an environment net message with time and weather for an individual player.

Connection connection = subscribers[i];
global::BasePlayer basePlayer = connection.player as global::BasePlayer;

connection.validate.entityUpdates = connection.validate.entityUpdates + 1;
BaseNetworkable.SaveInfo saveInfo = new global::BaseNetworkable.SaveInfo
{
	forConnection = connection,
	forDisk = false
};
Net.sv.write.PacketID(Message.Type.Entities);
Net.sv.write.UInt32(connection.validate.entityUpdates);
using (saveInfo.msg = Pool.Get<Entity>())
{
	_envSync.Save(saveInfo);
	saveInfo.msg.environment.dateTime = new DateTime().AddHours(TOD_Sky.Instance.Cycle.Hour).ToBinary();
	saveInfo.msg.environment.fog = 0;
	saveInfo.msg.environment.rain = 0;
	saveInfo.msg.environment.clouds = 0;
	saveInfo.msg.environment.wind = 0;
	saveInfo.msg.ToProto(Net.sv.write);
	_envSync.PostSave(saveInfo);
	Net.sv.write.Send(new SendInfo(connection));
}​

With the new system, there are global overrides for the entire server, not individual players. However, I discovered that I can change the weather of an individual player based on a specific date. For example, if I send new DateTime(2024, 1, 25) as the date to an individual it will always be a sunny day on their end. Running weather.report on the server reported a storm and weather.report on the client reported a clear day no storm.

Ahh its a paid plugin on Killyous site that can 100% do this for ya.
Interesting. I found a solution anyways to set an individual players weather within my plugins.
@Clearshot did you figure it out? would love to hear the solution!
Checkout ClearNight, UpdatePlayerWeather() to update an individual player and ServerMgr.SendReplicatedVars() to resync the player with the server.
5f3ddc1ca9b08.png Clearshot
Checkout ClearNight, UpdatePlayerWeather() to update an individual player and ServerMgr.SendReplicatedVars() to resync the player with the server.

Thanks.  Was hoping someone would make this.  I used to keep the date locked on a full moon, but that locked the weather too.  Now I can have both.

Zugzwang

Thanks.  Was hoping someone would make this.  I used to keep the date locked on a full moon, but that locked the weather too.  Now I can have both.

I used to lock the date with a full moon too but it broke the entire event system, that was the main reason I started working on clear night. The weather took me a couple of weeks to figure out but it's working well now.