Simple/Colloquial Weather [2.6]

What is Simple/Colloquial Weather?

Simple Weather is a concluded module to simulate the environment a player sees within the game. here are some features and things to know!

  • Many Behavior Options to choose from, such as Ambiance and Cloud Settings

  • Transitions between Weather Types, which include: Sound, Lighting and Sky, and Wind

  • Easy to Modify and Add Changes, please recommend these to me.

  • Runs on the Client, to sync between players continue reading…

Small Showcase (OLD)

If you’d like to try it out with a place I made here it is!
Example.rbxl (136.5 KB)


How do I use it?

  1. Download the Module, requiring the ID does not work.
  2. Open a Local-Script, and Initialize.
    local SimpleWeather = require(game.ReplicatedStorage.SimpleWeather)
    
    SimpleWeather.Init() -- loads the module, you can put a weather type to start with, inside '()'
    
    task.delay(5, function()
        SimpleWeather.ChangeWeather("Rain")
    end)
    
    SimpleWeather.WeatherChanged:Connect(function(NewWeather)
        print('The Current Weather is now : '..NewWeather)
    end)
    

How to Sync Simple/Colloquial Weather across Clients

This is quite a simple way to sync data between clients, this is generally better as it makes the tweens much smoother, since everything is calculated and processed in the client.

Create Two Events
Screenshot 2024-12-24 192028

Create A Local-Script and a (Server-)Script
"Script" Location
"Local-Script" Location

Communicator : (Server-)Script

--// Services : https://devforum.roblox.com/t/simple-weather-14/3028058
local replicatedStorage = game:GetService("ReplicatedStorage")

--// Modules
local modules = replicatedStorage.Modules
	local SimpleWeather = require(modules.SimpleWeather)

--// Shared
local shared_ = replicatedStorage.Shared
	local GetWeatherFunction = shared_.GetWeather
	local ChangeWeatherEvent = shared_.ChangeWeather

--// Constants
local MIN_CHANGE_TIME = 5
local MAX_CHANGE_TIME = 10

--// Values
local currentWeather = SimpleWeather.GetRandomWeather()
SimpleWeather.CurrentWeather = currentWeather

--// Functions
function ChangeWeather(name)
	if name and SimpleWeather.WeatherTypes[name] then
		currentWeather = name
	else
		currentWeather = SimpleWeather.GetRandomWeather()
	end
	SimpleWeather.CurrentWeather = currentWeather
	ChangeWeatherEvent:FireAllClients(currentWeather, tick()) -- Fire to all clients
end

--// Connection
GetWeatherFunction.OnServerInvoke = function()
	return SimpleWeather.CurrentWeather
end

while task.wait(Random.new():NextInteger(MIN_CHANGE_TIME,MAX_CHANGE_TIME)) do
	ChangeWeather(nil)
end

WeatherHandler : Local-Script

--// Services : https://devforum.roblox.com/t/simple-weather-14/3028058
local replicatedStorage = game:GetService("ReplicatedStorage")

--// Modules
local modules = replicatedStorage.Modules
	local SimpleWeather = require(modules.SimpleWeather)

--// Shared
local shared_ = replicatedStorage.Shared
	local GetWeatherFunction = shared_.GetWeather
	local ChangeWeatherEvent = shared_.ChangeWeather

--// Values
local weatherChangeConnection:RBXScriptConnection

--// Functions

-- Prepares and Syncs the Weather
function Setup()
	local currentWeather = GetWeatherFunction:InvokeServer() -- ask from the server what the weather is like currently
	SimpleWeather.Init(currentWeather) -- catch up to current weather
	
	weatherChangeConnection = SimpleWeather.WeatherChanged:Connect(function(currentWeather)
		print("Change to",currentWeather)
	end)
end

function ChangeWeather(name, requested:number)
	local instant = tick() - requested >= 5
	SimpleWeather.ChangeWeather(name,instant)
	
	if instant then
		warn("The client is experiencing latency, quickly changing.")
	end
end

--// Connection
spawn(Setup)

ChangeWeatherEvent.OnClientEvent:Connect(ChangeWeather)

How can I add more Types of Weather?

  1. Open the Module, and scroll down to here:

    Information is given in this image…

Other Similar Sources
In no particular order:

Please note the the leaves moving is using another module called WindShake | boatbomber, I highly recommend this module too!


UPDATES

  1. Version 1.0 - 1.4 | BETA

    • Bug Fixes
    • New Features
    • Slight tweaks & edits
    • Smoother sound transitions
  2. Version 2.6 | Full Release

    • Code Revamp (1.0+)
    • New Features (0.1+)
    • Slight tweaks & edits (0.1+)

NOTICE :warning:

This Module will be receiving less updates, this is because of the loss of attraction toward this Module. I thank you all for using and finding interest toward Simple Weather.

~ KALARAN

21 Likes

Minor Update | New Features
Added more Customization Options.

2 Likes

Hi,
Thanks for sharing.

Is there anyway of having it run on the client? Because you might have different biomes and want different weather going on for different players…

1 Like

This is very nice!
Will fork it and combine it with RLTIME to get a more “Realistic” feel.

RL TIME: Introducing RLTime: Real-Time Lighting & Time Simulation

game that I will use this in: Prelude (WIP) - Roblox

1 Like

I was thinking about that, this would mean that i could make another one that is client side…

Edit : On second thought, you can, if im not wrong, just make sure everything is run on the client only because clashing could happen between Server and Client.

Awesome! good-luck creating it. its a such a gift to see someone finding relevance to something that I made. :slight_smile:

1 Like

Of course!

Will give you the files for the forked version once I’m done

Oh, ok! Maybe I could make a revamped version of the current one?

The current one had amazing features!

It could use some optimization and some extra feature but what you have rn is a solid and amazing resource!

1 Like

Also, an example .rbxl or open source place is always nice to play with…

1 Like

I just added one now, thanks for that!

So, I just got to using this module and just realized that you cant have multiple parts rain at the same time.
Could you add a tag/attribute that it checks for and then cycles the weather loop?

Currently i plan to make this game huge, So I will need tons of diffrent parts to cycle at the same time.

Game link:Sanrio Project - Roblox

I dont understand? Please know anything outside the module like rain effects and extra sounds arently really issued with me… I think you might be refering to my example place?

Sorry, Its hard to explain because English is not my first language.
In the test place, there is 1 part named “fake rain” that is the area which rain is produced.
However, in my game. I would like there to be multiple parts across the in game map.
I dont think your module is capable of handling multiple parts without tons of duplicate scripts.
For example: I have 2 fake rain parts. I want both of them to cycle rain independently without having to make multiple scripts for each one.
Therefore, i think tags or attributes would be useful, you could use them like smart bone does to tag objects the client needs to work on.

For more, fun, how hard is it to have it NOT go through parts, like a part that is a roof…

or not go through terrain, like in a cave

also what about adding puddles when it hits the ground?

thanks

You will have to script that your self unfortunately. I made a script so when the weather changed it would activate the particles depending on what weather its currently on, the script is not part of the system.

Like i mentioned before the rain effect is not part of system, i may add it in future but not right now. Please script these unadded features and this means the system would have to be clientside to do so. I hope you all understand, you must script these rain effects by using raycasts or zone detections - this is help btw. The system is meant for static open scences like forests, and transitioning scences if you get what i mean.

mm, maybe V 2.5 will be client side… :slight_smile: , but I get what you are saying… it is just that alot of maps are going to have different bioms, and or people are going to be in different areas

1 Like

It actually is already lol, you just need to make sure every script that initializes the system, is a Local Script; Its both Server and Client but it only works properly on one.

A new Update Patch has been received!
Simple Weather has gained a few bug fixes and revisions, it should run as intended and experience less Issues, I’ve decided continue this project but with less Updates.

SW is suggested to run on the Client now.