Welcome to Tutorial Tuesday! This is a weekly thread where you can post any kind of tutorial for how to do things using Godot or request one from others

Text tutorials, video tutorials, image tutorials, linking to a post in the community, etc. are all allowed. If you feel it deserves its own post feel free to instead post it as a separate post and then link it here

  • russ@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I was curious about writing one-off scripts in Godot, so here’s a tiny example for doing that in Godot 4.

    ./hello-godot.gd (also in my dotfiles):

    #!/usr/bin/env -S godot --headless --script
    extends SceneTree
    
    func _init():
      print("hello godot!")
      print("args", OS.get_cmdline_args())
      quit()
    

    Note the first line, which invokes godot and includes the --headless and --script arguments. You can read more about these args via godot --help.

    Once the script has executable permissions (typically via chmod +x hello-godot.gd), you can run it in a shell like:

    ./hello-godot.gd "some arg" "some other arg" 123
    

    That should output something like:

    hello godot!
    args["-s", "/home/russ/.local/bin/hello-godot.gd", "some arg", "some other arg", "123"]
    

    This kind of thing can be useful for running tests via something like GUT (which is where I started digging into this), or exporting games in scripts/CI.

    Which makes me think I should look into how some of those godot CI docker images run - maybe there are other arguments/features/best-practices there to build on.