In Godot 4.3.stable, I set color_ramp to a different gradient on GPUParticles3D but it wasn’t changing the color of the emitted particles. It wasn’t until I watched this youtube video that I noticed the vertex_color_use_as_albedo property on the draw pass material needs to be set to true.

After double-checking the documentation, I notice that it does indeed note this:

Note: color_ramp multiplies the particle mesh’s vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.vertex_color_use_as_albedo must be true. For a ShaderMaterial, ALBEDO *= COLOR.rgb; must be inserted in the shader’s fragment() function. Otherwise, color_ramp will have no visible effect.

Updating the settings of the material in the particle effect’s draw pass fixes the issue.