Skip to content

Server Integration

ODD Games edited this page Oct 14, 2026 · 3 revisions

Server Integration

Bugpunch talks to a server in two separate ways:

  1. The runtime SDK (crash reporting, bug reports, Remote IDE, analytics) — configured by a BugpunchConfig asset and used by your game builds.
  2. Editor test-result upload — configured in Project Settings and used only while running tests in the Editor.

Runtime: BugpunchConfig

Create the Config

  1. Assets > Create > ODD Games > Bugpunch Config
  2. Name it BugpunchConfig and put it in a Resources folder (Assets/Resources/BugpunchConfig.asset) — the SDK loads it from Resources at startup
  3. Fill in the fields below

Key Fields

Field Default Description
startMode Automatic Disabled — the SDK never runs. Forced — starts and shows the sign-in / profile dialog at startup for everyone. Automatic — starts, and shows the dialog only if a tester profile is already cached
serverUrl https://api.bugpunch.com Bugpunch server URL
apiKey empty Project API key, from the project settings page on the dashboard
localIdeServer true Development builds and the Editor only: serve the Remote IDE API directly on the device (USB or LAN), with no server or sign-in. Release builds never open it
localIdeServerPort 0 Port for the local Remote IDE API (0 = 47701; the next 9 ports are tried if taken)
branch empty Release branch / channel label reported with events
changeset empty Build identifier (commit SHA, CI build number) reported with events
performanceMonitoring true Native FPS / memory / thermal / ANR monitoring

The asset has further sections (video, logging, attachments, and so on); each field has a tooltip in the Inspector.

Editor: Test-Result Upload

Availability (v0.8.227): uploads are driven by diagnostic sessions, which are recorded by the internal TestReport and started only by the SDK's own (unshipped) test fixture. Tests in your project don't produce sessions yet, so there's nothing to upload — see Test Report. The settings and the run lifecycle below are in place for when sessions are exposed.

Settings

Edit > Project Settings > UI Automation:

Setting Default Description
Server URL the BugpunchConfig server URL Test-result server. Override it to point at another Bugpunch server
API Key empty Sent as the X-Api-Key header
Enable Auto-Upload off Upload each session after the test
Upload Passed Tests on When off, only failed sessions are uploaded
Capture Persistent Data on Failure on Include persistentDataPath in failed sessions
Auto-Detect VCS on Read Git / Plastic branch and commit into session metadata

These are stored per machine in EditorPrefs, not in the project.

Test Connection checks the URL and key against POST /api/auth/validate-key. Upload Latest Session / Upload All Sessions upload local session zips manually.

Test Runs

With auto-upload on, each Test Runner batch becomes one run on the server:

  1. The first real test method to start (not a suite or fixture) calls POST /api/runs/start
  2. Each finished session is queued and uploaded in the background to POST /api/sessions/upload (multipart, tagged with the run ID) without blocking the next test
  3. When the batch finishes, the queue is drained and POST /api/runs/{id}/finish closes the run

After a connection failure, uploads back off for 60 seconds instead of retrying every test.

See Also

Clone this wiki locally