Skip to main content

Godot Pack Mod Doctor

godot-pack-mod-doctor generates and validates small Godot pack, patch, DLC, and mod manifests before release. It is intentionally format-light: projects keep their own build system, while the tool checks the manifest evidence that build system emits.

Install

python -m pip install godot-pack-mod-doctor

From a source checkout:

python -m pip install -e .\godot-pack-mod-doctor

Quick Start

godot-pack-mod-doctor manifest from-folder addons\demo_pack --id demo_pack --version 1.0.0 --output pack-manifest.json
godot-pack-mod-doctor check pack-manifest.json --format markdown
godot-pack-mod-doctor check pack-manifest.json --base base-content.json --format json --output reports\pack.json
godot-pack-mod-doctor diff baseline-pack.json current-pack.json --format markdown
godot-pack-mod-doctor load-order base-pack.json patch-pack.json optional-mod.json --format markdown

manifest from-folder writes a reviewable JSON manifest from a folder of pack files. It records deterministic res:// paths, byte sizes, and SHA-256 hashes so later diff reports can show exactly which shipped resources changed.

Manifest Shape

{
  "id": "demo_patch",
  "version": "1.0.0",
  "dependencies": [{"id": "base_game", "version": ">=1.0.0"}],
  "files": [
    {
      "path": "res://content/items/sword.tres",
      "content_id": "iron_sword",
      "references": ["iron_ingot"],
      "overrides": false,
      "size": 128,
      "sha256": "..."
    }
  ]
}

The optional base manifest can contain content entries with id fields. Dependencies can be written as objects with an id field, or as simple id strings when version constraints are tracked elsewhere. File entries can also include id, content_id, or content_ids when the pack wants the report to catch duplicate gameplay/content identifiers as well as duplicate file paths.

Checks

  • missing pack id or version;
  • malformed or duplicated dependency entries;
  • duplicate content IDs inside a pack manifest;
  • file entries without paths;
  • duplicate shipped paths;
  • unexpected overrides;
  • references that are not present in a supplied base content manifest;
  • local, parent-directory, or non-res:// paths;
  • case-only path collisions that can break on Windows or macOS;
  • script, native binary, archive, packed-project, debug, backup, cache, or key files that commonly need manual review before public distribution;
  • added, removed, changed, and clearly moved files between two pack manifests;
  • duplicate pack ids, missing dependencies, dependency order problems, and undeclared override conflicts across ordered packs;
  • duplicate content IDs across ordered packs when a later pack does not mark the file as an intentional override.

Scripted mods and native extensions can be legitimate. These file policy checks are warnings by default; use --fail-on warning in CI if your project wants a stricter content-pack gate.

Outputs

  • text: local terminal report.
  • json: CI and scripts.
  • markdown: PR comments and release notes.

diff is useful before publishing a patch or DLC update. It compares shipped paths and stable file metadata so changed resources are visible in review. When stable hashes or content IDs show that a resource moved, the report lists it under moved instead of treating the update as an unrelated add and remove.

load-order reads packs in the order supplied on the command line. If a later pack ships the same resource path without setting overrides: true, the report flags the conflict so the intended ownership is explicit. It also checks that dependencies listed by each pack are present earlier in the supplied load order.

All JSON reports include a small risk block plus summary.risk_level and summary.risk_score fields so release dashboards and CI scripts can sort pack reports without parsing every finding. They also include metadata.rules, a compact rule catalog with titles and help text for the findings emitted by check, diff, and load-order.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_pack_mod_doctor-0.1.5.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_pack_mod_doctor-0.1.5-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file godot_pack_mod_doctor-0.1.5.tar.gz.

File metadata

  • Download URL: godot_pack_mod_doctor-0.1.5.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_pack_mod_doctor-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d4df011621f7dcd841238e6107d81dd6d78968a592f0580f02ecb333b4e62e5e
MD5 984de876b86a4be6bc5b6128f5c75590
BLAKE2b-256 1604ca21fb7b1c1ad2c896af6a3cfb57d24a36793d9a7a3dc3de244f4c1ac04b

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_pack_mod_doctor-0.1.5.tar.gz:

Publisher: publish-pack-mod-doctor.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_pack_mod_doctor-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for godot_pack_mod_doctor-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6fcbee19875cc20413390c93d7e4cd84842f2e88a4d06517a8bd89a1108bacaf
MD5 cd83a56236022b930de33ed883e5a74c
BLAKE2b-256 abf9e1beaefd79cb38d9d954f79f0566371e04f5477082e472bbb2a6c2f6dfa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_pack_mod_doctor-0.1.5-py3-none-any.whl:

Publisher: publish-pack-mod-doctor.yml on NonniGB/godot-production-toolkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page