Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Subject: Godot version: changing intensity resets material parameters

Hi, I found an issue with the Godot version of your VFX pack. This report concerns the Godot version, not the Three.js version.

I’m using Godot 4.7.2, Forward+.

In an inherited scene based on Slash_fire.tscn, I changed the effect’s intensity from 1.0 to 0.8 and saved it. The ember particles became almost invisible. Changing intensity back to 1.0 did not restore their appearance.

After investigating, I found that:

  • The shaders declare tint, color1, and color2 as plain vec4 uniforms, but the scene files store these parameters as Color.
  • Changing intensity calls _apply_instance(), which duplicates the ShaderMaterials.
  • In a minimal reproduction on Godot 4.7.2, duplicating a material with a Color value for a plain vec4 uniform resets that parameter to its shader default. It also changes the value on the original material.
  • For example, the ember material’s tint changes from Color(16.3869, 16.3869, 16.3869, 0.00392157) to Vector4(1, 1, 1, 1).
  • Storing the same values as Vector4 instead preserves them during duplication and saving.

Restoring the original values and storing them as Vector4 fixed the issue. I verified repeated intensity changes between 0.8 and 1.0, material duplication, and saving/reloading.

The same Color parameter format appears in many other Godot scenes in the pack, so this may affect other effects as well.

Could you please check this compatibility issue? Thank you!

Omg i will have a look! Sorry for the inconvenience

Hi, thank you so much for the detailed report — your diagnosis was exactly right.

I reproduced it on Godot 4.3 and 4.7.2: the shader colors (color1, color2, tint, main_color, bg_color) were stored as Color on plain vec4 uniforms, so Material.duplicate() dropped them to the shader defaults, and it even cleared them on the shared original material. It affected every effect in the pack, not just Slash_fire.

Version 1.1.1 is now up on itch.io. All scenes store these values as Vector4, and I added checks for this to my build tests (tuning back and forth, duplication, and save/reload). Your inherited scene may still hold the default values from before; re-creating it from the new Slash_fire.tscn (or restoring the values as you did) fixes it.

Thanks again for taking the time to dig into this!

Hi, thank you for fixing this so quickly! I’ve updated to version 1.1.1, and the fix is working well in my Godot project. I really appreciate your help.

Do you plan to add more effects to the pack in future updates? I’d love to see a sword slash wave effect—a crescent-shaped energy projectile that travels forward after a sword swing. It would be great for ranged sword attacks, especially with fire and ice variants.

Thanks again!

I will have that in mind:)