You can make try and make gizmos by spawning MeshInstance nodes and supplying a mesh or one of the mesh shapes (like the cube, sphere, etc) to it. That's what I did to draw custom gizmos when I made my IK plugin.
Here's the code I used (pulled from the IK addon):
`
func _setup_for_editor():
So we can see the target in the editor, let's create a mesh instance,
Add it as our child, and name it
var indicator = MeshInstance.new()
add_child(indicator)
indicator.name = "(EditorOnly) Visual indicator"
We need to make a mesh for the mesh instance.
The code below makes a small sphere mesh
var indicator_mesh = SphereMesh.new()
indicator_mesh.radius = 0.1
indicator_mesh.height = 0.2
indicator_mesh.radial_segments = 8
indicator_mesh.rings = 4
The mesh needs a material (unless we want to use the defualt one).
Let's create a material and use editor_gizmo_texture.png to texture it.
var indicator_material = SpatialMaterial.new()
indicator_material.flags_unshaded = true
indicator_material.albedo_texture = preload("editor_gizmo_texture.png")
indicator_material.albedo_color = Color(1, 0.5, 0, 1)
indicator_mesh.material = indicator_material
indicator.mesh = indicator_mesh
`