Skip to content

Getting Started

60plus edited this page Apr 13, 2026 · 1 revision

Getting Started

Prerequisites

  • GamesDownloader V3 running (Docker)
  • Basic Python knowledge (for backend hooks)
  • Basic Vue/TypeScript knowledge (for theme plugins only)

Your First Plugin

1. Choose a template

gd3-plugin-template/templates/
  metadata-scraper/   # Scrape game data from websites
  theme/              # Custom visual layouts
  lifecycle/          # React to app events
  widget/             # Dashboard cards

2. Copy and customize

cp -r templates/lifecycle my-plugin
cd my-plugin

Edit plugin.json:

{
  "id": "my-plugin",
  "name": "My Plugin",
  "version": "1.0.0",
  "author": "Your Name",
  "description": "What it does",
  "type": "lifecycle",
  "entry": "plugin.py",
  "requires": [],
  "min_gd_version": "3.0.0",
  "config_schema": {}
}

3. Implement hooks

Edit plugin.py:

from plugins.hookspecs import hookimpl

class Plugin:
    @hookimpl
    def lifecycle_on_startup(self) -> None:
        print("My plugin started!")

4. Package and install

cd my-plugin
zip -r ../my-plugin-v1.0.0.zip .

Go to Settings > Plugins in GamesDownloader, drag and drop the ZIP.

5. Verify

Check the server logs - you should see "My plugin started!" on container startup.

Plugin Structure

Every plugin needs at minimum:

my-plugin/
  plugin.json       # Manifest (required)
  plugin.py         # Python class with @hookimpl methods (required)
  logo.png          # Icon for Settings UI (optional)
  requirements.txt  # pip dependencies (optional, auto-installed)
  i18n.json         # Translations (optional)

What's Next?

Clone this wiki locally