-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
60plus edited this page Apr 13, 2026
·
1 revision
- GamesDownloader V3 running (Docker)
- Basic Python knowledge (for backend hooks)
- Basic Vue/TypeScript knowledge (for theme plugins only)
gd3-plugin-template/templates/
metadata-scraper/ # Scrape game data from websites
theme/ # Custom visual layouts
lifecycle/ # React to app events
widget/ # Dashboard cards
cp -r templates/lifecycle my-plugin
cd my-pluginEdit 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": {}
}Edit plugin.py:
from plugins.hookspecs import hookimpl
class Plugin:
@hookimpl
def lifecycle_on_startup(self) -> None:
print("My plugin started!")cd my-plugin
zip -r ../my-plugin-v1.0.0.zip .Go to Settings > Plugins in GamesDownloader, drag and drop the ZIP.
Check the server logs - you should see "My plugin started!" on container startup.
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)
- Building a theme? See Theme Plugin Guide
- Building a scraper? See Metadata Plugin Guide
- Building event hooks? See Lifecycle Plugin Guide
- Full API reference: API Reference