[Godot] GDScript Input Field Plugin を入れて、REPL として使う。
背景
シーンの実行中に使える REPL は Panku Console を使用しているんですが、Godotエディタ上で実行できる REPL を探していたら GDScript Input Field Plugin というのが触ってみてよかったので紹介です。
addon
概要
上記、GDScript Input Field Plugin をプラグインとして入れると、画面下部の出力パネルにテキストフィールドが追加されます。
新たなパネルを増やさず目立たないところが粋だなと思いました。

ここにテキストを入れて Enter を押下すると実行結果を取得できます。
Shift + Enter を押下すると、改行できるので複数行のコードも実行できます。
class_name で定義したクラスや、EditorInterface にもアクセスできます。
自分用の便利関数を定義
例えば、下記のような gdscript を用意します。
@tool
extends EditorScript
class_name Helper
func current() -> Node:
return get_scene()
func hello():
return 'Hello gdscript!'
出力パネルの入力欄で下記を実行し、変数として格納。
var helper = Helper.new()
すると、
helper.current().name
=> &"Example1"
helper.hello()
=> "Hello gdscript!"
のように呼べます。
変数 helper に入れた状態のまま、スクリプトを編集したり関数を増やしても動的に反映されます。(gdscript ってそういう仕様なんですかね。初めて知りました。)

EditorScript の実行は、通常 _run メソッドを定義して ctrl-shift-x で実行する(参考: https://docs.godotengine.org/ja/4.x/classes/class_editorscript.html )らしいんですが、上記プラグイン上で _run メソッド以外も普通に呼べるようになるので結構便利だなと感動しました。
2026/3/10 追記
Godot v4.6 になってから、このアドオンは動かなくなりました。
GitHub にリポジトリがあればイシューを上げたりプルリクエストを出すなりできたんですが、
作者の方のホームページも見れなくなっており、連絡の取りようもなく。
(404なのでサーバ自体は生きていますが)
MITライセンスだったので、とりあえず自分のGitHubリポジトリに修正したものを上げています。
2026/4/26 追記
今後もメンテしていくことを考えると、元のコードが難解だったので、Ura Kata (裏方) という自作アドオンを一から作りました。
まだうまく評価ができないコードもありますが、ぼちぼち修正していこうと思います。
また、Julia の REPL を触ってきた経験から、単にコードを評価するだけでなく、モードを切り替えて他のことにも使えたら便利だと思ったので、入力欄が空の状態で ; を入力すると Shell モードに変わる機能をつけました。
他にも便利そうなモードを思いついたら、ぼちぼち追加していこうと思います。
Discussion