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. Go to questdata.io/download
  2. Download quest-data-godot-plugin.zip
  3. Extract to your Godot project folder

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://api.questdata.io (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

Symptom: QuestData.track() returns error “Undefined identifier”

Solutions:

  1. Verify plugin is enabled: Project > Project Settings > Plugins
  2. Check that addons/quest_data/plugin.gd exists
  3. Restart Godot completely
  4. Check console for errors: View > Toggle Console

Symptom: Track events, but dashboard shows no data

Solutions:

  1. Check API key is correct: ProjectSettings.get_setting("quest_data/api_key")
  2. Verify API URL ends without trailing slash: https://api.questdata.io
  3. Check network connection (SDK logs to console on error)
  4. Wait 15 seconds (SDK batches events every 10s + server latency)
  5. Go to Configuration > Logs in dashboard to see API errors

Symptom: Game crashes when network is disconnected

Solutions:

  1. SDK handles offline gracefully by default
  2. Check that user:// directory is writable
  3. Verify events are queued: QuestData.get_queue_size()