I have not tried in 3d but with the 2dgame i am making i create scenes of richtextlabel and add a child node that is a sprite for the rectangle.
Then i made that when space is pressed and if my character overlaps a area2d of the npc( you have to add a collisionshape2d to the area 2d, it will run different that with bodies) the instance is added.
Then i put the mode to stop.
I also put the richtextlabel as procces mode, this way it wouldnt stop .