🚧👷♂️ Please Note: GodotArch is still in early development. Please report any bugs and issues you find.
An extremely fast and configurable project structure linter for your Godot projects. GodotArch enforces consistent file organization and naming conventions, making them more maintainable and easier to navigate.
It can check scenes, scripts, nodes, assets, and more. It is also extremely configurable via its godot-arch.config.yaml.
In order to use GodotArch you need to have its godot-arch executable and a godot-arch.config.yaml configuration file at your project root.
- A Godot project developed with
Godot 4.4or higher- (Earlier versions may work, but are untested.)
- Download the latest release for your platform
- Unpack the contents into your project-root (
godot-arch.config.yamlandgodot-arch) - (optional) customize the configuration in
godot-arch.config.yaml
- Run
./godot-arch(or./godot-arch.exefor Windows) either locally in your terminal or in your CI via e.g. "GitHub-Actions"
- Configuration Reference - Complete guide to all configuration options
- Glob Patterns Guide - Learn how to write glob patterns for file matching
GodotArch comes with with a default configuration file. All rules can be configured via includePatterns and ignorePatterns in your godot-arch.config.yaml. It's recommended to start with the default configuration and adjust it based on your project's specific needs.
- Allowed File Location - Restrict files to specific directories
- Filename Snake Case - Enforce snake_case file names
- Parent Has Same Name - Files must be in a folder with matching name
- Scene Nodes Pascal Case - Enforce PascalCase node names
- Root Node Is File Name Pascal - Scene root node matches file name
- Root Node Script In Same Folder - Root node scripts next to scenes
- Node Depth Fits Max Depth - Limit node nesting depth