ファイル読み込みの部分がうまくいってないようですね。
GMSのファイル読み書きのデフォルトのパスは確か
C:\Users\UserName\AppData\Local\ProjectName\
ですのでここにファイルがある必要があります。
ここにtext.txt(UTF-8で保存したもの)を置いて、これが動くか試してみてください。
var _file = file_text_open_read("text.txt");
var _str = file_text_read_string(_file);
show_debug_message("_str="+string(_str))
file_text_close(_file);
正しく読み込まれて動作すればこうなります。
ゲームからファイルを作成し、書き込み読み込みをする処理の場合はこれでいいと思います。
(ゲームのコンフィグデータなど)
ですが、シナリオのテキストは予め自分で作ったテキストファイルをゲームに付属させる形になると思います。
ゲームを配布する時に、ユーザーのPCにこれをどうやって配置すればいい?となりますよね。
プロジェクトにファイルをインクルードすることで実現できます。
リソースツリーのところからファイルをインクルードすると、プロジェクトのフォルダ内にdatafilesというフォルダが作られ、そこにファイルがコピーされます。これで完了。開発環境でも動くし配布したゲームも動くはずです。テキストを編集する際はdatafilesにあるファイルを編集してください。
配布するゲームをビルド(Ctrl+F8)すると、このファイルはexeファイルと同じ場所に付属する形でコピーされるはずです。やってみてください。
ゲームを遊ぶユーザーから見ると、exeファイルがある場所にtext.txtがあるので開けば見たり編集できます。それをできにくくするなら暗号化したりという手段があります。それも解読不可能では無いと思うので、絶対見られたくないならシナリオテキストもプロジェクトのコード内に書く形にするしか無いのかなと思います。その場合でもリバースエンジニアリングで読まれる可能性は残ります。
私が書けるのはこんな感じで、「よく分からないがこうすると動く」的なことだけです。
コンピュータ、GMSのファイルI/Oについて、詳しい方からの解説を待ってます!
(サンドボックスとは?など私もちゃんと理解したい)