// SDK tool

Fire any event shape at your live dashboard — no Play mode required.

The Event Tester is an editor window that POSTs straight to /v1/ingest using the same wire format the runtime SDK produces. It bypasses the ring buffer, the coroutines, and Play mode entirely. Use it to seed test data while building dashboards, stress the viewer with a burst, or sanity-check that your project key and ingest URL are wired correctly before you write a single line of gameplay code.

Opening the window

In the Unity menu bar: Traced → Event Tester… The window remembers the last TracedConfig asset you assigned it via EditorPrefs, so subsequent launches come up ready to send. If the config is missing an API key, project ID, or ingest URL, the send button stays disabled and a help box spells out which field is empty.

Event shapes

The Shape dropdown exposes the seven shapes the SDK can fire. Each shape reveals the relevant input rows below it:

  • Point — single world position.
  • Oriented — position plus Euler rotation. The scene-view gizmo draws a cone in the facing direction.
  • Pair — two positions (from and to). The gizmo draws a green source, red target, and a line between them.
  • Volume — center position plus radius (0.1m to 20m). Renders as a translucent sphere with a wire disc at ground level.
  • Frustum — position, rotation, FOV (1-179°), and range (0.5-100m). Renders the cone in the scene so you can preview coverage before sending.
  • Trail — point flagged for path linkage, paired with a player_id field. Sends with shape point_with_trail on the wire so the dashboard joins it to prior position samples for that player.
  • PositionSample — a single point in the position_samples stream rather than the events stream. Free-tier projects reject these with HTTP 403; the window warns inline.

Click-to-place from the scene view

Every position row has a Pick in scene toggle. When active the window enters one of four pick modes: Position, From, To, Center. The next left-click in the scene view drops that position. Physics.Raycast against scene colliders is tried first; if nothing is hit, the click falls back to the worldy=0 plane so empty scenes still work. Press Escape to cancel without setting a value. A cursor hint floats next to the mouse pointer while a pick is armed so you can't lose track of which position you're placing.

Metadata KVPs

The Metadata section is a list of string/string key-value pairs. Hit + Add KVP to add a row, fill in the key and value text fields, or click the × button to remove a row. Empty keys are skipped on send. Metadata travels under the event's metadata object exactly as the runtime SDK sends it, so you can preview how a real { "weapon": "sniper" } filter will look on the dashboard.

Burst mode

The Count slider goes from 1 to 100. With Count above 1, the Jitter radius slider (0-10m) becomes active; each burst copy after the first adds a random horizontal offset within that radius (no Y jitter — the original ground height is preserved). Useful for stress-testing the viewer, seeding density patterns, or generating enough events for the dashboard's DBSCAN clustering to have something to cluster.

Session controls

Each window instance generates a session ID on enable of the form editor_yyyyMMddHHmmss. The current ID is displayed at the top of the Session group; click New session to roll a fresh one (use this between test cohorts so the dashboard's session filter can isolate them). The session context field sends a free-form label alongside the session — useful when filtering on the dashboard for runs you want to identify later. The PositionSample and Trail shapes also expose a player_id field so trails link up correctly in the viewer.

Why it works without Play mode

UnityWebRequest from inside an EditorWindow doesn't fire completion callbacks the way it does at runtime, so the Event Tester drives request completion from EditorApplication.update. Each in-flight request subscribes a tick handler that checks op.isDone per editor frame, unsubscribes when the request finishes, and reports the HTTP status to the in-window log. The Quick-fire bar (Death, Kill, Spawn, Pickup, Damage dealt, Kill link, Explosion, Sight check) is shorthand for the same code path with a preset event ID and shape.

Related: event shapes for the underlying primitives, quickstart if you haven't created a config asset yet.