Rain Module + Plugin

@buildthomas I have had the rain system in my game for a while now, and for some reason it has started acting strange. Players have reported, that the particles ‘freeze’ when the camera is being moved. Not sure if this is due to the new particle effect changes, but I felt that it should be brought to your attention.

1 Like

Also thought I might add, that you CAN see this issue in a blank place, with just the plugin, and preview turned on, though it is not as ‘dramatic’ as in a live place.

I’m also having these issues. It works fine when the camera is not being moved or if the camera is inside.

I recommend filing a bug report about it – no changes were made to the module.

1 Like

Transparent Part Issue [Rain Module].rbxl (57.8 KB)

Request fulfilled. Sorry for late response btw, I have school.

Anyways something I found that was pretty intriguing when I did a quick test…

Checking the “Enabled” box under the Plugin will make the issue with Transparent parts go away.

image

However if you have “Enabled” set to false, then trying requiring the module in a LocalScript and enabling it from there, the issue is present.

I hope that helps while you test. Figured I’d tell you so you can see for yourself.

Oh yeah, almost forgot

The repro place contains 3 of the parts configured the exact same way they are within my games.

The “Transparent Part” one is the one I’m having issues with the most. CanQuery ignores raycasts, hence why no rain particles show up. (I don’t want to have to enable that though)

Secondly, “Transparent Part with CanQuery” is exactly as described above. It works as expected, but I don’t want to have to use this.

And finally, the Opaque part is your standard CanCollide + 0% transparency BasePart.

Any help is greatly appreciated

2 Likes

Posted bug report here: Particle effect library no longer renders correctly when camera is moving

Fortunately, looks like this is a proper engine bug, so no significant restructuring of the module should be needed. It’s a regression bug too so hopefully they have bandwidth to resolve it soon™.

1 Like

If you look at Studio, what the plugin does is add a script above the module that sets the properties of the plugin window into the module.

If you are not using this script (by setting Enabled=false in the plugin window), and then you manually require the rain, obviously the properties will not take effect since your separate script is not setting those properties. You’ll need to set the desired properties via your script if you are not using the plugin.

1 Like

Yes, but if I hit enabled, the plugin adds the script, correct? When I uncheck “Enabled” the script still exists, with the properties still intact. Why would this make a difference if I set the settings myself if the rain scripts properties were already set to the desired effects? I don’t understand how that works.

The script above the module is disabled, so the properties from the plugin window are never set in the module once you play the game.

Look at the script hierarchy in Studio to better understand why this happens.

The expected workflow is either:

  • you exclusively use the plugin (for non-technical users)
  • you use the module separately and hit that with your own scripts
1 Like

So all these values under the script take no effect whatsoever? They’re just references?

image

Whether the plugin is enabled or not, the “TransparencyConstraint” is still true, which means it should obey transparent parts according to your code. (Yes, the script is under my player scripts folder as you can see.)

I’ll try setting the options manually then I suppose. I’ll post back if the issue persists.

No, they’re not just for reference.

The “Rain” is the separate module you can download and use in your own code.

The “RainScript” and the value objects are what the plugin inserts above the “Rain” module to communicate the values to the “Rain” module. The “RainScript” is the one that reads the value objects and forwards them to the relevant API of “Rain”. So if “RainScript” is disabled, these properties are not communicated to the “Rain” module.

As above, please either use the plugin or the module in your game, not a combination of the two.

2 Likes

Okay I’ll just switch to using the module from now on since the Plugin doesn’t work for any of my use cases. Hopefully that prevents this issue.

Personally if I wrote this, I would make it so it would work either way, but I can see where you’re coming from with either using the Plugin or your own separate script.

Wish you luck on future projects.

This issue should be resolved now.

2 Likes

Hi, um I was just wondering. On accident when I downloaded the plugin it asked if it would be able to make changes to scripts. I pressed No, and no matter how many times I redownload the plugin I can’t seem to make it work when in preview and also when in-game.
If you have a solution to my problem that would help me very much as your plugin looks really good and would tie my game’s atmosphere together.
Thanks

In File > Advanced > Manage Plugins, it should show something like this:

image

Instead of “Script Injection Allowed”, it’ll say “Script Injection Denied” for you currently. Just hit the small edit icon next to it and it should allow you to toggle the permission.

1 Like

Is there a way to trigger the rain via script?

This has been asked/answered many times throughout the topic – read up!

1 Like

I did not notice that. Sorry lol.

Quick Question. If I wanted all objects with collisions on to block the rain would I do this?

Rain:SetCollisionMode(RainModule.CollisionMode.None)


A weird bug? Roofs don’t completely seal up the rain effect for me. I’ve tested this in my main game and a separate place. (Keep in mind I am using the default settings. I’ve seen you say to “change the constants”, but you have to be more specific on what constants you want us to change. Plus I used the default settings. I tried to make it so while you’re under a roof, the rain stuff becomes invis, but ofc that wouldn’t work.

Edit: I don’t think I have to send the rbx file here, as you can simply do this with just inserting the plugin and turning on .Enabled. For reference, the roof is ~11 studs on the Y axis. If you’d like, I can provide a more clear image of the issue.

Edit 2: Playing around with it a bit more, the rain only stopped coming in completely after my roof’s Y is 33 studs! It’s absurd how high the roof has to be in order for the rain to stop seeping in. And frankly, you shouldn’t be told to change the constants on the code, as you advertised it as “working out of the box”.

I’m sorry if I sound very aggressive, I’m just amazed on how much the roof has to be in order for rain to stop seeping in, really sorry if my tone sounds aggressive.

On another note, to give more info, this is the Y of the roof that it has to be in order to not seep

This is the Y of the roof that is seeping in

3 Likes