Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be πŸ“–

Godot Download Manager

An asset by mapdu
The page banner background of a mountain and forest
Godot Download Manager hero image

Quick Information

0 ratings
Godot Download Manager icon image
mapdu
Godot Download Manager

A threaded, node-based download manager plugin for Godot 4.2+ with intelligent caching, sequential group downloads, and a runtime singleton API.

Supported Engine Version
4.2
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
10 hours ago
Git URL
Issue URL

Godot Download Manager

A threaded, node-based download manager plugin for Godot 4.2+ with intelligent caching, sequential group downloads, and a runtime singleton API.

Features

  • Node-based setup β€” configure entirely in the Inspector, no boilerplate
  • Multi-threaded β€” concurrent downloads via configurable thread pool (1–16 threads)
  • Sequential groups β€” groups download one at a time with per-group progress
  • Smart caching β€” files matching expected size + SHA-256 hash are skipped instantly
  • Automatic retries β€” failed downloads retry up to 3 times with exponential backoff
  • Redirect following β€” follows HTTP 301, 302, 307, 308 redirects (up to 5 hops)
  • Hash verification β€” post-download SHA-256 integrity check with automatic cleanup on mismatch
  • Update check β€” pre-flight cache check before downloading
  • HTTP / HTTPS β€” full TLS support via Godot's built-in HTTPClient
  • Signal-driven β€” plugin emits signals only, you build the UI
  • Runtime API β€” DLClient autoload singleton for on-demand downloads during gameplay

Installation

  1. Copy the addons/download_manager/ folder into your Godot project.
  2. Open Project > Project Settings > Plugins.
  3. Enable Godot Download Manager.

The plugin registers a DLClient autoload singleton automatically.

Quick Start

YourLoadingScene
β”œβ”€β”€ DownloadProgress              ← Orchestrator
β”‚   β”œβ”€β”€ DownloadGroup             ← Group: "Sound Effects"
β”‚   └── DownloadGroup             ← Group: "Music"
└── CanvasLayer
    └── (your UI)
@onready var dl: DownloadProgress = $DownloadProgress

func _ready() -> void:
    dl.check_completed.connect(_on_check)
    dl.all_completed.connect(_on_done)

func _on_check(needs_download: bool, bytes: int) -> void:
    if needs_download:
        dl.start()

func _on_done(success: bool) -> void:
    if success:
        get_tree().change_scene_to_file("res://main_menu.tscn")

Documentation

Contributing

Contributions are welcome! Here's how to get started:

Setup

  1. Fork this repository.
  2. Clone your fork and open the project in Godot 4.2+.
  3. Enable the plugin in Project > Project Settings > Plugins.
  4. The addons/download_manager/demo/demo_scene.tscn is a working demo β€” use it to test changes.

Code Style

  • Strict typing everywhere β€” all variables, constants, for loops, and return types must have explicit type annotations.
  • const X: Type = value β€” never use := inference.
  • var x: Type = value β€” never use untyped var.
  • for item: Type in collection: β€” always type loop variables.
  • func name() -> ReturnType: β€” always include return type, including -> void.

Pull Requests

  1. Create a feature branch from main.
  2. Keep changes focused β€” one feature or fix per PR.
  3. Test your changes with the included addons/download_manager/demo/demo_scene.tscn.
  4. Ensure all code follows the style guide above.
  5. Write a clear PR description explaining what and why.

Reporting Issues

  • Open an issue with steps to reproduce.
  • Include your Godot version and OS.
  • Attach any error logs from the Godot console.

License

This project is licensed under the MIT License.

A threaded, node-based download manager plugin for Godot 4.2+ with intelligent caching, sequential group downloads, and a runtime singleton API.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Godot Download Manager icon image
mapdu
Godot Download Manager

A threaded, node-based download manager plugin for Godot 4.2+ with intelligent caching, sequential group downloads, and a runtime singleton API.

Supported Engine Version
4.2
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
10 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers