Skip to content

Quick Start

Get Quest Data running in your Godot 4 game in under 5 minutes. By the end, you’ll see live events flowing into your dashboard.

  • Godot 4.x (4.0 or higher)
  • Internet connection for sending analytics data
  • 5 minutes of your time

Sign up at your Quest Data dashboard (e.g. https://quest-data-seven.vercel.app). The free tier includes unlimited events and all core features. You’ll be automatically logged in after registration.

  1. Click + New Game on the Games page
  2. Enter your game’s name
  3. Copy the API Key shown on the game card — you’ll need it in the next step

Download the SDK from wolke.digitalfactory.at/index.php/s/t7zP3PP6wGD9jQt (or grab the latest tag from GitHub Releases) and copy the addons/quest_data/ folder into your Godot project:

MyGame/
├── addons/
│ └── quest_data/ ← copy this folder
│ ├── plugin.gd
│ ├── quest_data.gd
│ └── modules/
├── scenes/
└── project.godot

Then enable the plugin:

  1. Open Godot and load your project
  2. Go to Project > Project Settings > Plugins
  3. Find QuestData and check Enable
  4. Restart Godot (required for AutoLoad registration)

After restart, the plugin creates settings under Project > Project Settings > General > Quest Data:

SettingDescriptionDefault
quest_data/api_keyYour API key from step 2dev-key-12345
quest_data/dev_api_urlAPI URL for debug buildshttp://localhost:3010/v1/track
quest_data/prod_api_urlAPI URL for release buildshttps://quest-api.digitalfactory.at/v1/track

Set your API key. The SDK automatically selects the dev or prod URL based on OS.is_debug_build() — no manual switching needed.

Add this to any script in your game:

func _ready():
QuestData.track("game_start", {
"version": "1.0.0",
"platform": OS.get_name()
})

If you have your own Autoload that needs SDK features in _ready() (binding balancing, fetching remote config, calling cloud saves), wait for sdk_ready first. Autoload-Order is not guaranteed in Godot — your Autoload might run before QuestData finished its sync init:

extends Node
func _ready() -> void:
# Idempotent — returns immediately if SDK already initialized.
await QuestData.await_ready()
# Now safe to use SDK features
QuestData.bind_balancing(my_resource, "buildings", "farm")

Equivalent if you prefer the explicit signal style:

if not QuestData.is_ready():
await QuestData.sdk_ready

That’s it. The SDK handles everything else:

  1. Events are queued in memory (no blocking)
  2. Batched and sent every 10 seconds (or when 10+ events queue up)
  3. If offline, events are saved to disk and retried later
  4. On game exit, unsent events are persisted automatically
  1. Open your game’s dashboard
  2. Enable the Live toggle in the top-right corner
  3. Run your game
  4. Events should appear in the Live Feed within ~10 seconds
ProblemSolution
”Undefined identifier: QuestData”Plugin not enabled or Godot not restarted
Events not appearingCheck API key matches your game, wait 15 seconds
Network errors in consoleVerify API URL (no trailing slash)
Still nothingForce flush: QuestData.flush() and check Configuration > Logs

Now that events are flowing, explore what Quest Data can do for your game: