The Playloop Unity and Godot SDKs ship a parallel set of editor-side tools so you can wire the SDK up, verify your connection, and fire a test event without ever entering Play mode. This page covers what each menu item does, the windows behind them, and the small differences between the two engines that matter when something looks off. The Unreal SDK ships the same top-level Playloop menu (Settings, Send Test Event, Set Environment, quick links) but config lives in Project Settings, Plugins, Playloop rather than a custom inspector.
Unity gets a true top-level Playloop menu in the editor menubar. Godot's editor plugin API doesn't expose a stable top-level slot, so the same items live under Project > Tools > Playloop as a submenu instead. Item order, names, and behavior otherwise match across both engines.
| Item | What it does |
|---|---|
Settings… | Opens the Settings / Status window (see below). Live status pill, Verify Connection, editable config, asset bootstrap. |
Event Config… | Opens the Event Config window. Pull from server, edit per-event flags (sdkIgnore, linkToSummary, hideFromAi), Save back. Same window the SDK has always shipped, plus three UX polishes covered below. |
Send Test Event | Fires a test_event from the editor and force-flushes so HTTP errors surface instead of getting swallowed by the auto-batch. Unity binds Cmd+Alt+T (Ctrl+Alt+Ton Windows); Godot doesn't accept shortcuts on tool-menu items, so the action lives in the submenu only. |
Set Environment ▸ | Submenu with Production, Demo, Staging, Custom… The current env is checked. Picking a preset writes the settings asset/resource and clears any custom override. |
Create Default Settings Asset | Unity: creates Assets/Resources/PlayloopSettings.asset if missing. Godot: creates res://addons/playloop/PlayloopSettings.tres if missing. The item disables itself once the asset exists. |
Reveal Settings Asset | Pings the asset in the Project / FileSystem dock. Disabled when no asset exists yet. |
Docs ▸ | Submenu grouping Open Docs and Open Roadmap. Open Docs opens playloop.gg/sdks#unity (or #godot); Open Roadmap opens the public roadmap. |
| Open Dashboard for This Game | Builds the URL from your configured game slug and active environment, then opens it in your browser. |
| Open GitHub Repo | Source, AGENTS.md (for AI-pair-coded installs), examples. |
Opened via Playloop > Settings…. This is the window you live in while wiring up the SDK. The layout is identical on both engines, only the engine-specific primitives differ underneath.
At the top of the window is a status pill that summarizes whether your configuration actually works. Clicking Verify Connection runs a single authenticated GET against /api/v1/games/<slug>/event-config with your ingest or management key and maps the result directly onto a pill state. The same endpoint and the same state mapping run in both SDKs, so the semantics never drift.
| State | When | What to do |
|---|---|---|
| ⏳ Not configured | No API key set yet. | Paste an ingest key from playloop.gg/settings, then Verify. |
| 🌀 Verifying… | Verify Connection in flight. | Wait a moment. The call usually completes in under a second. |
| ● Connected | HTTP 200. The key is valid, has scope, and the slug resolves. | You're done. The pill shows a relative-time stamp that ticks every second while the window is open. |
| ● Invalid key | HTTP 401. | The key is either expired or lacks ingest scope. Get a fresh one at playloop.gg/settings. |
| ⚠ Scope mismatch | HTTP 403. | The key authenticates but lacks scope for this game. The dashboard issues separate keys for ingest vs management; confirm you copied the right one. |
| ⚠ Game not found | HTTP 404 when resolving the slug. | The slug isn't a game on your account. Create one in the dashboard, or fix the typo in your Settings. |
| ● Network error | Connection failed (no route, DNS, TLS). | Most often a self-hosted dev base URL that isn't running yet. Defaults to https://api.playloop.gg. |
The last-verified timestamp persists across editor restarts (Unity: EditorPrefs; Godot: EditorSettings), keyed by the api-key prefix and game slug, so the green pill survives a window reopen but invalidates whenever you change the key or slug.
Opened via Playloop > Event Config…. This is the window the SDK has always shipped. It lets you flip per-event flags that change how the AI digest and dashboard treat each event name. The contract for those flags lives on the SDK contract page; the window is a typed editor on top of it.
Three UX polishes shipped alongside the new menu:
playloop.gg/games/<slug>/settings/events so you can flip surfaces mid-task.The single highest-leverage editor action. The auto-batch path normally swallows HTTP errors silently (useful in production, useless when you're trying to figure out why the dashboard is empty). Send Test Event queues a single synthetic event, then forces an immediate flush so the result comes back as a real HTTP status:
The action is enabled only when (1) the editor is in Play mode and (2) a PlayloopClient or Playloop instance is alive. Outside Play mode it greys out on Unity, or fires a helpful dialog explaining what's missing on Godot (its tool-menu API can't disable items as cleanly).
Unity ships PlayloopSettings as a ScriptableObject discovered at Assets/Resources/PlayloopSettings.asset. Godot ships PlayloopSettings as a Resource (class_name PlayloopSettings extends Resource) discovered at res://addons/playloop/PlayloopSettings.tres. Either way it's the inspector-editable home for your connection config: API key, base URL, environment, game slug, heartbeat cadence, telemetry buffers, retry policy.
Both engines offer one-click bootstrap if the asset is missing, either through the Settings window's empty state or the explicit Create Default Settings Asset menu item. Pick whichever you prefer; both call the same loader.
Everything the editor windows are showing (events, state, heartbeats, auto-flush) is documented on the engine-agnostic SDK event contract page. If something in the editor doesn't behave the way you expect, the contract page is the source of truth; the editor windows are typed inspectors on top of it.
See the SDK troubleshooting page for the common failure modes (401 / 403 / 404, heartbeat clamp warning, events not arriving, gameSlug typo, force-quit lost batch, offline retry) and where to find the relevant logs in each engine.
These docs are evolving. Playloop is in active development ahead of launch, so APIs and details may change as we polish.