npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

godot-guard

v0.1.8

Published

A local health checker for AI-assisted Godot projects.

Readme

Godot Guard

npm version CI GitHub Release

Godot Guard is a local project health checker for Godot games, built for AI-assisted and vibe-coded workflows. It scans scenes, resources, scripts, and project settings to catch broken references, missing assets, risky drift, and common agent-generated mistakes before they reach your game.

Why

AI-assisted coding can move fast, but Godot projects are more than code. A project can break because an agent edits a scene path, removes an autoload, forgets an input action, or references a resource that does not exist.

Godot Guard is designed to be a small local safety pass you can run before opening a pull request, shipping a build, or asking an AI agent to keep working.

Current Checks

  • Missing project.godot
  • Missing main scene references
  • Missing autoload script paths
  • Required autoloads from config
  • Required input actions from config
  • Broken res:// references in .tscn, .tres, .gd, and .gdshader files
  • Case-sensitive res:// path mismatches that Windows can hide
  • Missing directory-like res:// prefixes reported as warnings instead of hard errors
  • Optional GDScript return-type and variable-type warnings

Vibe-Coding Guardrails

Godot Guard is built for teams and solo developers using AI assistants to move quickly. It focuses on mistakes that are easy for generated code to introduce and hard to diagnose later:

  • invented res:// paths
  • scenes pointing at scripts that do not exist
  • autoload entries drifting away from real files
  • input actions removed from project.godot
  • placeholder resource strings accidentally treated like real assets

Install

Run without installing:

npx godot-guard scan .

Or install globally from npm:

npm install -g godot-guard

Then run it inside a Godot project:

godot-guard scan .

From a source checkout:

npm install
npm run build
npm link

Check the installed version:

godot-guard --version

Usage

godot-guard init .
godot-guard init . --profile vibe
godot-guard init . --profile mature-project
godot-guard init-ci .
godot-guard init-ci . --pr-comment
godot-guard init-ci . --sarif
godot-guard baseline .
godot-guard explain
godot-guard explain resources.missing_res_path
godot-guard scan .
godot-guard scan . --baseline godot-guard.baseline.json
godot-guard project .
godot-guard resources .
godot-guard scripts .
godot-guard scan . --format json
godot-guard scan . --format markdown
godot-guard scan . --format github
godot-guard scan . --format markdown > godot-guard-report.md
godot-guard scan . --format sarif > godot-guard.sarif
godot-guard scan . --format sarif --output godot-guard.sarif
godot-guard scan . --summary
godot-guard scan . --fail-on warn

Config

Create godot-guard.config.json in your Godot project root:

{
  "requiredAutoloads": ["SaveSystem", "AudioBus"],
  "requiredInputActions": ["ui_accept", "ui_cancel"],
  "gdscript": {
    "requireReturnTypes": true,
    "requireTypedVars": false
  },
  "ignoredPathPatterns": [
    "^tests/"
  ],
  "allowedMissingResourcePatterns": []
}

Config problems are reported as config.* issues, including invalid JSON, wrong field types, and invalid regex patterns.

Use godot-guard init . --profile vibe for early AI-assisted projects where you want local scratch/prototype folders ignored, while still reporting broken real scene, script, and asset references.

CI

Godot Guard exits with code 1 when it finds an error-level issue, so it can be used in CI:

godot-guard scan .

Create a starter GitHub Actions workflow:

godot-guard init-ci .

Create a pull request comment workflow:

godot-guard init-ci . --pr-comment

Create a GitHub code scanning workflow:

godot-guard init-ci . --sarif

Use --fail-on warn for stricter CI, or --fail-on none when you want a report without failing the job. Use --format sarif when uploading results to GitHub code scanning. Use --format github for a compact Markdown summary suitable for a pull request or issue comment. Use --output <path> to write reports directly from the CLI.

Text, Markdown, and GitHub comment reports include a plain-language guide for each issue type. The guide explains what the finding means, why it matters for the game, and a likely fix so non-programmers can review the report without decoding internal rule names.

For established projects with known issues, create a baseline and commit it:

godot-guard baseline .
godot-guard scan . --baseline godot-guard.baseline.json

Baseline scans ignore the recorded issues and still report new problems.

For a copyable GitHub Actions workflow and rollout advice, see:

  • docs/adoption.md
  • docs/field-tests.md
  • examples/godot-projects/broken-ai-pass
  • examples/reports/broken-ai-pass.md
  • examples/github-actions/godot-guard.yml
  • examples/github-actions/godot-guard-pr-comment.yml
  • examples/github-actions/godot-guard-sarif.yml
  • examples/configs/low-noise.json
  • examples/configs/vibe.json
  • examples/configs/mature-project.json
  • examples/configs/strict.json

Package Verification

The npm package contents are controlled by the files field in package.json. Before publishing a release, run:

npm run check

This includes npm pack --dry-run so the tarball contents can be reviewed before publishing.

For the full release checklist, see docs/release.md.

Scope

Godot Guard is not a replacement for Godot's editor, test runner, or GDScript linters. It is a project-level health checker focused on scene/resource/project drift, especially in AI-assisted workflows.

If a repository contains the Godot project in a nested folder, run Godot Guard against that folder:

godot-guard scan game

When run from the outer repository folder, Godot Guard reports the nested project root instead of producing misleading res:// path errors.