I figured it out, I made my own script and it works fine.
I'll show the code for everyone who has the same project, the material culling must be disabled to render the trail and keep in mind that get_child(1) refers to the collision box.
extends MeshInstance
var target
var surfTool = SurfaceTool.new()
var material = SpatialMaterial.new()
var m = Mesh.new()
var p
var l = 0.1
var current_vertex = 0
var prev_point1 = Vector3.ZERO
var prev_point2 = Vector3.ZERO
var wr
var is_target = false
func set_target(t : KinematicBody):
target = t
p = target.global_transform.origin
prev_point1 = Vector3(p.x,p.y+l,p.z)
prev_point2 = Vector3(p.x,p.y-l,p.z)
wr = weakref(target)
is_target = true
func set_color(c: Color):
material.albedo_color = c
material.emission = c
func _ready():
surfTool.set_material(material)
material.vertex_color_use_as_albedo = true
material.CULL_DISABLED
func _process(delta):
if is_target:
surfTool.begin(Mesh.PRIMITIVE_TRIANGLES)
if wr.get_ref():
p = target.global_transform.origin
surfTool.add_vertex(prev_point1)
surfTool.add_vertex(prev_point2)
surfTool.add_vertex(Vector3(p.x,p.y+l,p.z))
prev_point1 = Vector3(p.x,p.y+l,p.z)
surfTool.add_vertex(Vector3(p.x,p.y-l,p.z))
prev_point2 = Vector3(p.x,p.y-l,p.z)
surfTool.add_index(0)
surfTool.add_index(1)
surfTool.add_index(2)
surfTool.add_index(1)
surfTool.add_index(2)
surfTool.add_index(3)
surfTool.commit(m)
set_mesh(m)
get_parent().get_child(1).shape = mesh.create_trimesh_shape()