https://github.com/arocull/stag-toolkit
Toolsuite and docs for Godot game development
https://github.com/arocull/stag-toolkit
gamedev godot plugin rust techart
Last synced: about 1 month ago
JSON representation
Toolsuite and docs for Godot game development
- Host: GitHub
- URL: https://github.com/arocull/stag-toolkit
- Owner: arocull
- License: bsd-3-clause-clear
- Created: 2024-11-10T03:12:21.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-04-18T22:57:57.000Z (about 1 month ago)
- Last Synced: 2025-04-23T11:17:16.176Z (about 1 month ago)
- Topics: gamedev, godot, plugin, rust, techart
- Language: Rust
- Homepage: https://alanocull.com
- Size: 8.8 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Stag Toolkit
All-purpose toolkit for Godot game creation.
Currently equipped for Godot **4.4**+ on Windows and Linux.
> [!WARNING]
> This addon is highly experimental and frequently subject to change based on personal needs.
> These updates will sometimes require usage to be updated accordingly.
> Use at your own risk!*If this tool has helped you, feel free to [send a Kofi](https://ko-fi.com/stagmath) my way, or to anyone listed in the [credits](#credits)*!
## Feature List
- **[StagTest](docs/tools/stagtest.md)** framework for simulating gameplay and performing benchmarks
- **[IslandBuilder](https://alanocull.com/island_builder.html)** tool and corresponding Rust backend (Rust required)
- **SimulatedRope** and **SimulatedRopeBinding** nodes for performing and interacting with rope simulations (Rust required)
- **QueueFloat** object for handling and analyzing large sets of numbers (Rust required)
- [**Texture/Material** importer](docs/tools/ironpress.md) for `.ironpress` files
- "Simple LOD" importer for meshes/scenes with custom LODs
- Shader includes and debug shadersSome features can be toggled on/off via the Project Settings under `addons/stag_toolkit`. May require an plugin reload or editor restart.
### In Repository, but Not Maintained
- Island shader variants and textures used in Abyss
- Prototype animation classes### Used In
- [Abyss](https://stagmath.itch.io/abyss-demo), an action platformer game (in development)
## Installation
The latest stable versions are published in the [releases tab](https://github.com/arocull/stag-toolkit/releases). Download and extract the zip archive, and copy the `addons/stag_toolkit` directory into your project's `addons` directory.
## Documentation
For the most up-to-date API documentation, use Godot's internal "Search Help" feature (hotkey F1).
You can read manually-updated [docs](docs/) online too, or see example usage on my [website](https://alanocull.com/).

## Building Manually
1. Ensure [Godot](https://godotengine.org/download/archive/) (using version as specified above) and [Rust](https://www.rust-lang.org/) (I use the `stable` version) are installed
2. Clone this repository
3. `cd` into this repository and run `cargo fetch`
4. Run `$ make` if on Linux, or `$ build.cmd` if on Windows
5. Open the addon project in Godot to verify that it works: `cd godot/ && godot project.godot`
6. Copy the `godot/addons/stag_toolkit/` directory into your project as `addons/stag_toolkit/`If desired, you can run `$ make derust` on Linux to remove any Rust-dependent stuff from the addon.
### Cross Compiling
Make use Rust's target system!
- Install for key x86_64 platforms: `$ rustup target add x86_64-unknown-linux-gnu x86_64-pc-windows-gnu`
- Get a list of [all platforms](https://doc.rust-lang.org/nightly/rustc/platform-support.html): `$ rustup target list`
- Ensure you have the proper linker installed [to make use of cargo](https://stackoverflow.com/a/62853319)Platforms still working on support for: `x86_64-apple-darwin`
#### On Linux
Install the proper linkers!
- Ubuntu: `$ sudo apt-get install mingw-w64`
- Fedora: `$ sudo dnf install mingw64-gcc`### Contribution
If making a contribution, please follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard (as best you can).
You may need to install additional toolchains for pre-commit hooks.
- `$ pip install pre-commit gdtoolkit` - Installs pre-commit hooks and a linting/formatting toolchain for GDScript.
- `$ pre-commit install` - Initialize pre-commit hooks.## Credits
- **[godot-rust](https://godot-rust.github.io/)** is used to hook StagToolkit into Godot Engine
- **[Fast Surface Nets](https://github.com/bonsairobo/fast-surface-nets-rs)** for converting Signed Distance Field data to initial triangle meshes
- **[Godot Engine](https://godotengine.org/)** where the plugin resides## Disclaimer
This is a mirror of my own private repository.
Issues and feature proposals are tracked there and might not be described here until implementation.