Skip to content
Bit Quirky Round Trip
Visual Scripting

Search documentation

All topics and APIs

Close returns focus to Search.

What are you looking for?

Try a common topic or enter a complete API identifier.

Browse the reference instead

Esc closes · Tab reaches results · Enter opens the focused link

v0.89.0
Menu

What it does not do yet

The current Round Trip limits, why Compile refuses them and what to do in C# today.

Round Trip refuses a write when it cannot prove that the resulting C# keeps the meaning and shape of your method. Refusal is deliberate: the file stays unchanged, the message names the construct, and you can edit that part in C#. Saving the file makes the graph parse again.

Current edge What you see What to do today
An unknown statement syntax A gray placeholder node. Any non-design placeholder refuses Compile for that method. Edit the statement in C#, save, and let Round Trip re-parse it.
An unknown expression or operator An unsupported expression, sometimes represented by a gray placeholder. Keep that expression in C# and make visual edits only after the method parses without a blocking placeholder.
Query expressions such as LINQ query syntax A placeholder path instead of an editable expression graph. Edit the query in C#. Round Trip re-parses the method after the file changes.
A declaration with multiple declarators in an emitted statement path Body generation refuses because one visual declaration cannot safely stand for every declared variable. Split or edit the declaration in C#, then reopen the graph.
A declaration with no initializer or input Compile refuses to invent a value. Supply the value in C#, or complete the supported visual input before compiling.
Nested deconstruction The flattened graph cannot prove the original nested shape. Edit the nested deconstruction in C#.
An array construction used on its own, or an array literal outside a declaration The writer refuses that placement. Write that array expression in C# and let it re-parse.
A throw expression in an unsupported position The writer names the throw expression and writes nothing. Edit the expression in C#.
An incomplete or malformed created loop, switch or assignment Compile refuses instead of inventing missing control flow or values. Finish the node’s required pins and arms, or write the construct in C#.
Scope or flow that cannot be proven from the graph The refusal names the ambiguous structure and leaves the method unchanged. Repair the structure in C#, then re-open the method.
A yield return, yield break or await foreach created or changed on the canvas The graph draws these statements in a coroutine or async method, and Compile keeps the existing ones byte-for-byte while you edit the statements around them. The writer refuses to compose a new or changed one, naming “a yield return”, “a yield break” or “an await foreach loop”. Type that statement in C#. The rest of the method stays editable on the canvas.

These declaration boundaries refuse by name in 0.89.0:

  • A field inside #if, or a new field that would land there.
  • An enum member inside #if, or a new enum member that would land there.
  • A field of a partial class declared in another file.
  • An attribute edit on a multi-variable declaration such as int a, b;.
  • An attribute Round Trip cannot resolve in the project.
  • An attribute, member or type that is no longer in the source file.
  • A new field in a struct, record or interface.
  • A base type on a new enum.
  • Whole-enum composition when several members share one line.
  • A local in the file changed to var when it has no value, or when its value is null or default. var takes its type from the value, so the message reads like {name} was not retyped because it has no value for var to take its type from. Give the local a value such as 0, or choose its type.

For the other cases, make that declaration change in C#. The next source refresh re-indexes and re-parses it. A refused draft stays pending and does not permit an approximate source write.

Round Trip is an editor for source visualization and authoring. It has no runtime execution trace, live node highlight or graph debugger view. Use Unity’s normal play-mode, logging and debugging tools to inspect behavior while the game runs.

Layouts are shared only when you choose it

Section titled “Layouts are shared only when you choose it”

Local layout storage is the default. Files under <Project>/UserSettings/RoundTrip are machine-local, so another teammate may arrange the same method differently. Choose shared storage in Project Settings > Round Trip when the team wants graph configuration under <Project>/RoundTrip to travel together.

Roslyn can parse more C# than Round Trip can safely represent and write. Support is versioned by construct, not described as all-or-nothing. A method may remain useful to read even when one gray placeholder makes visual write-back unavailable.

  • Supported C#: see the broader supported, partial and unsupported matrix.
  • When it refuses: read a refusal and recover without losing source.
  • Release notes: see which boundaries moved in recent versions.
Full-size image