I initially thought that you could clear the text by setting the box = null, that was horribly mistaken. Update For some reason it didn’t occur to me that we’re calling one function from another and we only needed to put the clearing code in once. I’ve corrected my main project file.
extends Node2D var prompt = ["person", "ate", "blue", "dragon", "toe", "tired"] var story = "Once upon a time, there was a %s who %s a %s %s. Afterwards she hurt her %s and became very %s." func _ready(): $Blackboard/StoryText.text = story % prompt func _on_TextureButton_pressed(): var new_text = $Blackboard/TextBox.get_text() _on_TextBox_text_entered(new_text) $Blackboard/TextBox.text = "" func _on_TextBox_text_entered(new_text): $Blackboard/StoryText.text = new_text $Blackboard/TextBox.text = ""