Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
![Better Processes hero image](https://img.godotassetlibrary.com/cJRRo6-JBCrpX3Ou8vGjcNyqGCzhJNWtP0GSaoMc-uA/rs:fit:1920:1080:0/g:no/aHR0cHM6Ly9naXRsYWIuY29tL2dyZWVuZm94L2JldHRlci1wcm9jZXNzLW1hbmFnZXIvLS9yYXcvbWFpbi9pY29uLnBuZw.webp)
Quick Information
![Better Processes icon image](https://img.godotassetlibrary.com/1yl6Gp2FsiVTpwsdZ2VYhwmpA0T8oSnHsxvgM4VudDY/rs:fit:50:50:0/g:no/aHR0cHM6Ly9naXRsYWIuY29tL2dyZWVuZm94L2JldHRlci1wcm9jZXNzLW1hbmFnZXIvLS9yYXcvbWFpbi9pY29uLnBuZw.webp)
OS.execute() lets you get the output, but it blocks the thread.OS.create_process() kicks off a process in the background, but drops the output.Better Processes lets you interactively create a background process.It's built in Rust. Compiles to GDExtention. You won't have to worry about that.Add a ProcessNode. Connect the stdout/stderr signals. Set the cmd,args, start_on_ready (or run "start" as needed) if you need it. If the process is still running when this node is deleted, it will close the child process. Or create a Process object and call `start(cmd,args)`. You'll have to explicitly call `read_stdout()` and `read_stderr`. However the advantage is that when the last reference goes out of scope, it closes the child process.Note: Due to GodotRust's current strictness, you must use the correct type args, no implicit typing. For example:`myProcess.start("ping",["google.com"] as PackedStringArray)`The `as PackedStringArray` is important here.
OS.execute() lets you get the output, but it blocks the thread.
OS.create_process() kicks off a process in the background, but drops the output.
Better Processes lets you interactively create a background process.
It's built in Rust. Compiles to GDExtention. You won't have to worry about that.
Add a ProcessNode. Connect the stdout/stderr signals. Set the cmd,args, start_on_ready (or run "start" as needed) if you need it. If the process is still running when this node is deleted, it will close the child process.
Or create a Process object and call `start(cmd,args)`. You'll have to explicitly call `read_stdout()` and `read_stderr`. However the advantage is that when the last reference goes out of scope, it closes the child process.
Note: Due to GodotRust's current strictness, you must use the correct type args, no implicit typing. For example:
`myProcess.start("ping",["google.com"] as PackedStringArray)`
The `as PackedStringArray` is important here.
Reviews
Quick Information
![Better Processes icon image](https://img.godotassetlibrary.com/1yl6Gp2FsiVTpwsdZ2VYhwmpA0T8oSnHsxvgM4VudDY/rs:fit:50:50:0/g:no/aHR0cHM6Ly9naXRsYWIuY29tL2dyZWVuZm94L2JldHRlci1wcm9jZXNzLW1hbmFnZXIvLS9yYXcvbWFpbi9pY29uLnBuZw.webp)
OS.execute() lets you get the output, but it blocks the thread.OS.create_process() kicks off a process in the background, but drops the output.Better Processes lets you interactively create a background process.It's built in Rust. Compiles to GDExtention. You won't have to worry about that.Add a ProcessNode. Connect the stdout/stderr signals. Set the cmd,args, start_on_ready (or run "start" as needed) if you need it. If the process is still running when this node is deleted, it will close the child process. Or create a Process object and call `start(cmd,args)`. You'll have to explicitly call `read_stdout()` and `read_stderr`. However the advantage is that when the last reference goes out of scope, it closes the child process.Note: Due to GodotRust's current strictness, you must use the correct type args, no implicit typing. For example:`myProcess.start("ping",["google.com"] as PackedStringArray)`The `as PackedStringArray` is important here.