Wenn der Spieler am NPC oder Schild dran ist und space drückt, wird obj_textbox erschaffen. Das Problem: im Drawevent des NPCs UND des Schildes wird dieses Objekt über instance_exists(obj_textbox) abgefragt und mit true beantwortet. Ergo werden beide Draw-Events ausgeführt. Du musst dem Objekt beibringen, dass er nach DEM obj_textbox checken soll, welches von dem Objekt und keinem anderen erschaffen wurde. Das geht z.B. über IDs. Einfache Lösung:

Ergänze das Create Event mit diesem Codesnippet
Create:
Code:
textbox_id = -1;
Der Wert von -1 bedeutet, dass kein obj_textbox von diesem Objekt erschaffen wurde.

Verbessere den Step-Event mit folgendem Snippet:
Step:
Code:
    if (textbox_id = -1)
    {
        textbox_id = instance_create(view_xview[0]+238, view_yview[0], obj_textbox);
       
    }
Wenn kein obj_textbox vom Objekt erschaffen wurde (textbox_id = -1), dann erschafft er das obj_textbox und speichert die ID davon in textbox_id ab. Jetzt kannst du alle weiteren Abfragen in deinem Step- und Draw-Events daran anpassen und ein anderes Objekt wird nicht durch ein fremdes obj_textbox getriggert. Ich hoffe, meine Ausführungen waren soweit verständlich!

Viel Erfolg!