I would like to load a tscn with a material attached. This material has a shader, which I would like to manipulate. However, the manipulated values seem to be shared across all shader (material) instances.
After some search I found following solution which does not work for me:
self.set_material(self.get_material().duplicate(true))
Making the material unique, doesn't work either:

Furthermore, marking the shader directly as unique, doesn't work either

Another try was to set a ShaderMaterial and the Shader directly within the GoDot Editor, marking their resources as Local To Scene. That didn't work either.

The shader resource itself is also set to Local to Scene

I did play around with load/preload and duplicate on nearly everything, without any change. This is how I create the component with the material + shader attached
var shockWave = load("res://Components/ShockWaveComponent.tscn").instance()
get_tree().get_root().add_child(shockWave)
shockWave.explode(get_parent().position, 0.51, 0.15, 0.22, 0.02, 5000)
and this is the components ready function
func _ready():
_shockWave_Material = self.get_material().duplicate(true)
self.set_material(_shockWave_Material)
What else did I try: Loading the material with preload and setting the sprite's material property afterwards with: preloadedmaterial.duplicate(), sadly with the same result.
GoDot Version:
Godot Engine v3.2.3.stable.official - https://godotengine.org
OpenGL ES 3.0 Renderer: GeForce RTX 3070/PCIe/SSE2