In developmentUniversal Query Language for Unity

Ask your project.
Get evidence back.

Query your game’s data and save the checks worth running again.
Drive UQL yourself, or connect your development agent to Unity.

How an investigation goes

  1. Find
  2. Check
  3. Trace
  4. Review

Three small examples

Write it once.
Run it again.

A few lines of UQL find a field, check that an action changed a value and record a position at the moment you pick.

Workflow notebookIllustrative examples
SCAN / DISCOVERYUQL
BUCKET $hits; VALUE $report = null;
SCAN FIELD health IN SCENE INTO $hits REPORT $report;
RECORD $report.Text; REGISTER health_scan;

This excerpt searches for a field named health. Zero matches is a valid answer, and scan limits can stop a scan before it covers everything.

What this workflow does

Name the field. UQL finds it.

SCAN searches the loaded scene for fields named health and saves a report of what it found. Pick a result and follow it down to its values.

  1. Pick the scope

    Scan a scene, one object or a supported static scope.

  2. Read the matches

    See every path the scan found and how much of the scope it covered.

  3. Keep the report

    Register it so the next step of the investigation can use it.

OBSERVE / CHECKUQL
VALUE $before = null; VALUE $after = null; VALUE $check = null;
BLOCK Test {
    OBSERVE FIELDS hp = $boss.health INTO $before PHASE Before;
    CALL PerformAction;
    OBSERVE FIELDS hp = $boss.health INTO $after PHASE After;
    CHECK health_changed: $after["hp"] != $before["hp"] INTO $check;
}

This excerpt comes from a larger script that defines $boss and a PerformAction block. CHECK records an outcome and lets the script keep running.

What this workflow does

Did the boss’s health really change?

OBSERVE freezes the values you pick before and after an action. CHECK compares them and returns Pass, Fail or Inconclusive.

  1. Freeze the values

    OBSERVE copies the fields you name, at that moment.

  2. Run the action

    Call the block your script defines for it.

  3. Read the outcome

    Look at the CHECK result: a run can finish with a failed check.

TRACE / MANUAL SAMPLEUQL
UQLSCRIPT PositionEvidence;
ALIAS $character = [SCENE:Character];
TRACEOPT manual = true;
VALUE $positionTrace = null;
BLOCK Begin {
    TRACE $character.transform.position INTO $positionTrace;
    UPDATE TRACE $positionTrace PHASE BeforeMovement;
}

This example expects a scene object named Character. Run its Begin block in the UQL host. The block takes one sample and leaves the object where it is.

What this workflow does

Record a value exactly when you say so.

TRACE follows a scene object’s position, and UPDATE TRACE takes a sample at a named point. Add more samples later and compare them on the same path.

  1. Point at the target

    Start the path at the scene object you want.

  2. Sample on your call

    With manual TRACE, a sample is taken only where your script asks for one.

  3. Read the history

    TRACE sees only the moments it samples, so a change that comes and goes between two samples won’t show up.

What UQL does

Find the bug.
Keep the check.

Find the data behind a bug and try a change. Then keep the check and run it again next time.

Discover

Start in the right place.

Narrow down the target before you touch anything: look up scene objects, inspect their members and scan for data.

SELECTSCANMETHODS
Repeat

Save the question as a script.

Named blocks turn a one-off question into a script you can rerun. Capture values before and after an action and compare them.

BLOCKOBSERVECHECK
Follow

See how a value moves.

TRACE records the values you pick, sampled at the points you choose, including in supported hook workflows.

TRACEUPDATE TRACEHOOK
Connect

Give your agent a way in.

Connect a compatible development agent through UQL’s local MCP integration. The agent finds your Unity host, looks up commands, runs scripts and reads what comes back.

Local MCPUnity host
Control

You decide what runs.

Grants are UQL’s safety switches. For each source, you set whether a script may run, edit values, capture images or use events. Check the switches before a workflow starts.

Per-source grants
Review

Keep the receipts.

Logs, named reports and PNG captures (where supported) sit next to your check outcomes, so you can see what happened and how much each result covers.

LOGREGISTERCAPTURE

Work with your agent

One workflow
for you and your agent.

You pick what to investigate and write the steps in UQL with your agent. Then you both read the same results.

Browse the guides and commands
  1. Pick the Unity host

    Make sure the agent has the right project and a ready session.

  2. Look it up, then run it

    The agent reads the host’s help and runs with the grants the workflow needs.

  3. Read the results

    Go through the reports and every CHECK outcome.

Your agent needs a local UQL host and an MCP setup.

A first workflow

Start small.
Say exactly what runs.

Four steps to a first workflow. Command details and more examples are in the UQL documentation.

  1. Pick how you’ll drive it.

    Work by hand in UQL’s Editor tools, or through a local agent connected over MCP. Check the project and session before the first command.

  2. Find the target.

    Read the command help, then find the object and member you need. Search small first and widen the search only if you have to.

  3. Save it and run it.

    Put repeatable work in a .uql script with named BLOCK entry points. Turn on the grants it needs, compile the group and run the block you want.

  4. Read the result.

    Go through the logs, the reports and each check’s Pass, Fail or Inconclusive outcome. Then switch off the grants you’re done with.

The fine print.

An observation freezes the values you select, not the whole object graph. A trace knows only what it sampled. Reading a property runs its getter. Grants control what a workflow may do, but they are not a security sandbox, and UQL does not roll back writes for you.

UQL and UDB

Choose how you
want to work.

UDB is the visual browser. UQL is the query language and the scripts you rerun.

UQL.Standalone, in development

The query workflow,
on its own.

For developers who want to script their investigations, rerun their checks and connect an agent to Unity.

  • UQL queries and workflow scripts
  • Observations and checks you can rerun
  • Local agent access through MCP
Ask about UQL No release date or price has been announced.
UDB + UQLFull package, UQL in development

See the data.
Script the checks.

Switch between browsing in UDB and scripting in UQL as the bug hunt moves along.

  • UDB’s visual browser and its advanced tools
  • UQL, in development for the full package
  • Two Unity tools from the same developer
See Universal Data BrowserThe Asset Store package has UDB today. UQL isn’t in it yet.

Questions

Quick
answers.

Ask DeadBeak
Can I download UQL now?

Not yet. UQL is in development, and I’m building it for the full UDB package. When there’s something to download, the link goes on this page.

Do I need UDB or an AI agent?

No. UQL is designed to work on its own, without UDB. The agent is optional too: UQL has Editor tools you can use by hand. To bring an agent in, you need a compatible MCP client and a connected local host.

Are the examples running against my project?

No. The examples come from the UQL documentation, and this website can’t reach your Unity project. To run one yourself, swap in your targets and give it the script context it expects in your own UQL host.

Does “Completed” mean my test passed?

No. Completed means the run finished. A workflow can complete with a failed or inconclusive check, so read each CHECK outcome and its reason.

Next time a value looks wrong

Give your next
question a script.

Back to the examplesRather click than type? Meet UDB