Merge Text
Concatenates two or more string streams into a single string, with an optional separator between each. The string-side analog of MergeShapes / MergePoints.
Category: Text Menu path: Text > Merge Text
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
strings_in | string | input (multi) | Two or more string inputs. Use the + button on the node to add more slots. |
out | string | output | All inputs concatenated in slot order, separated by separator. |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
separator | string | "" | Inserted between each input. Common values: "" adjacency, " " space, ", " comma-list, "\n" newline. |
How It Works
MergeText reads each connected strings_in slot in order, collects the string values, and joins them with separator between each. Equivalent to Python's separator.join([s1, s2, s3]) or JS's arr.join(sep).
Disconnected slots are skipped. A MergeText with a single connected input is a passthrough (separator is never inserted because there's no second value to separate).
Drag inputs in the node graph to reorder. Slot 0 comes first.
Usage Examples
Build a "name: value" caption
String "Frame:" → MergeText.strings_in[0], Time.frame → ... → String coerce ... → MergeText.strings_in[1] (once Math-to-String conversion ships). For now: two static or keyframed Strings into MergeText with separator: " " gives "Title One", "Title Two", etc.
Multi-line lyric block
Several String nodes (one per line, keyframed independently) → MergeText (separator: "\n") → Text.content_in. Each line snaps in at its own keyframe; the layout flows automatically.
Comma-separated tag list
Three or four String nodes feeding MergeText (separator: ", ") → Text.content_in produces "red, blue, green" style readouts.
Future: AI prompt assembly
String "A photograph of" + String (keyframed: "a cat", "a dog", ...) + String "in golden-hour light" → MergeText (separator: " ") → ImageGen.prompt_in. Animate just the middle variant; the framing stays constant.
Tips
- The separator is itself a string param, so you can keyframe it (Hold-interpolated) for separator switches mid-animation, though this is rarely useful.
- Order matters. Reorder slots in the multi-input list panel.
- Empty inputs (a
Stringwithvalue: "") still produce separator boundaries:["A", "", "B"]joined by", "yields"A, , B". To skip emptiness, disconnect the slot rather than blanking it. - The node is structural — it doesn't trim whitespace or handle special characters. If you need that, do it upstream in the source
Stringnodes.
Related Nodes
- String — The source for most MergeText inputs.
- Text — Consumes the joined string at
content_in. - MergeShapes / MergePoints — Same multi-input concatenation pattern, for shapes / points.