Skip to content

Godot SDK Setup

Get the Quest Data SDK running in your Godot 4 game in 5 minutes. The plugin installs as an AutoLoad singleton and requires no manual initialization.

  • Godot 4.x (4.0 or higher)
  • Quest Data Account (free tier available)
  • Game API Key (from dashboard)
  • Network: Internet connection (SDK batches events every 10s)
  1. Download the latest SDK from wolke.digitalfactory.at/index.php/s/t7zP3PP6wGD9jQt
  2. Extract the ZIP — you’ll get an addons/quest_data/ folder
  3. Copy that folder into your Godot project root

Your structure should look like:

MyGame/
├── addons/
│ └── quest_data/
│ ├── plugin.gd
│ ├── quest_data.gd
│ └── ...
├── scenes/
└── project.godot
  1. Open Godot and load your project
  2. Go to Project > Project Settings > Plugins tab
  3. Search for “Quest Data”
  4. Enable the checkbox
  5. Restart Godot
  1. Go to Project > Project Settings > Quest Data tab (new tab appears after restart)
  2. Fill in:
    • API Key: Your game’s API key (from dashboard)
    • API URL: https://quest-api.digitalfactory.at (default)
  3. Click Save
# Check that settings are valid
print(ProjectSettings.get_setting("quest_data/api_key"))
# Output: qd_sk_a1b2c3d4e5...

Test the setup by tracking your first event:

# In any script
func _ready():
QuestData.track("game_start", {
"version": "1.0.0",
"platform": OS.get_name()
})
# Check dashboard: Live Feed should show your event within 10 seconds

The SDK will:

  1. Queue the event in memory
  2. Batch with other events (max 10 events per batch)
  3. Send batch after 10 seconds or when 10+ events queued
  4. Retry on network failure

You probably don’t want to track events during testing:

# In a config file or autoload
const QUEST_DATA_ENABLED = OS.get_unique_id() != "dev_machine_id"
func _ready():
if QUEST_DATA_ENABLED:
QuestData.track("game_start")
else:
print("Quest Data disabled for dev")

By default, the SDK generates a random session ID. Override it:

QuestData.set_session_id("my_custom_session_id")
# Do this before first track() call

Something not working? Start with the Troubleshooting page — it covers:

  • How to open the Godot Output + Debugger → Errors panels (you’ll need them for everything below)
  • Backend unreachable red errors (wrong URL, dead server, DNS, TLS, timeout)
  • Plugin not loading / Undefined identifier errors (incl. the GDScript top-level-call gotcha)
  • Events not appearing in the dashboard
  • Offline-fallback issues
  • dump_state() for bug reports