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
9 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
9 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