Eine Flag setzt Du entweder in der Text-Definition, dann gilt sie aber von Anfang an.
In den Funktionen kannst Du eine Flag wie visible oder pos_x oder transparent oder alpha setzen, indem du den Textnamen schreibst: text_irgendwie, dann einen Punkt und dann die Flag und = dem Wert oder = on oder off.
Also: text_irgendwie.transparent = on; text_irgendwie.alpha = 60;

Am besten schreibst für Dein Spiel eine einfache Funktion, die alle Panels auf unsichtbar setzt:

function hide_all_panels()
{
text_menu.visible = off;
text_in_game.visible = off;
text_show_points.visible = off;
text_if_reached_the_goal.visible = off;
...

}

Da nn schreibst Du eine Funktion, die die Panels und Texte anzeigt, die Du sehen möchtest, when der Ball die bestimmte Position erreicht.

z.B.:
function show_goal_text()
{
text_if_reached_the_goal.visible = on;
}

Das Folgende würde ich ändern:

if (ball.x = irgendwas && ball.y = irgendwas && ball.z = irgendwas)
{
TEXT* irgendein_txt;//Den Text hab ich selbstverständlich vorher definiert genau wie auch den string dazu.
}

if(vec_dist(vector(100, 300, 0), player.x)< 100){show_goal_text();}

vec_dist gibt den Abstand zwischen 2 Positionen wieder.
Exakt die gleiche Position zu treffen, ist glücksache, deshalb würde ich also überprüfen, ob der Spieler in der Nähe einer bestimmten Position ist, wie nah er an der Position sein soll kannst Du über die Zahl ändern.