This is an old revision of the document!
Table of Contents
1. What this is
The BEYOND HTTP Server is a REST gateway built into Pangolin BEYOND. It is available only in BEYOND Ultimate. Other editions do not include it and cannot add it as an option. It exposes the live show engine — workspace, cue grid, playlist, live-control surfaces, projection-zone flags, and PangoScript — to any HTTP client on the LAN. There is no cloud service: the API is the BEYOND instance on that machine.
- Base URL: http://<beyond-host>:8088/apiv1/ (use the port configured in Settings).
- Default HTTP port 8088. Video preview is a separate process on 8087.
- Plain HTTP only. Put a reverse proxy in front if you need TLS.
- REST calls do not require credentials in current builds.
- Live Try-it-out is the API Playground on the show machine: http://<beyond-host>:8088/beyondswagger/
- This wiki page is documentation. It does not send live requests.
2. Enable the server and open the examples
The BEYOND Ultimate 5.8 installer places the example pages and API Playground in <BEYOND.exe folder>\www. Leave Root blank to serve that folder.
- Open BEYOND Ultimate. Settings → HTTP Server settings.
- Enable HTTP server, set the port (default 8088), click Apply.
- Leave Static file server → Root blank. Blank Root is <BEYOND.exe folder>\www (stored as HttpStatDir in BEYOND.ini if you later pick a folder).
| Layout | What to do | URL |
|---|---|---|
| Default (www) | Leave Root blank. Open the pages the installer already placed in <exe>\www. | http://<host>:<port>/index.html |
| Custom folder | Optional: click … and choose a folder that contains index.html. | http://<host>:<port>/index.html |
API Playground: http://<host>:<port>/beyondswagger/
Smoke-test:
GET http://127.0.0.1:8088/apiv1/ws/info
A 200 response is JSON describing the current workspace.
3. Request and response format
- REST paths live under /apiv1/. Future breaking changes will use /apiv2/.
- JSON endpoints return application/json unless documented otherwise (thumbnails return images).
- PangoScript to POST /apiv1/ps/execscript is raw UTF-8 text (Content-Type: text/plain). JSON wrappers such as {“code”:“…”} are not supported.
- Treat any non-2xx status as failure.
- execscript does not return WriteLn / echo text.
First script:
POST http://127.0.0.1:8088/apiv1/ps/execscript Content-Type: text/plain Blackout Sleep 500 EnableLaserOutput
curl -X POST http://127.0.0.1:8088/apiv1/ps/execscript \ -H "Content-Type: text/plain" \ --data-binary $'Blackout\nSleep 500\nEnableLaserOutput'
4. Core concepts
PangoScript objects
Most automation flows through PangoScript. Use these names with GET /apiv1/psobject?name=…
| Name | Purpose |
|---|---|
| master | Master Live Control + transition / metro / BPM state |
| playlist | Playback state mirror |
| cue.<page>.<index> | One cue by page and index |
| zone | Zone list (names, preview, uGC, flags). projectorIndex is 1-based. |
| zone.<n> | Live Control subset for one zone — not the full list-item record |
Resource groups
- Workspace — page/cue grid (/apiv1/ws/info, /apiv1/ws/page)
- Thumbnails — cue and FX raster previews
- PangoScript — run commands and scripts; read/write documented objects
- Live Control — master, cue, and zone surfaces
- Zones — flag document on /apiv1/zone. UGC and preview writes use PangoScript.
- Playlist — transport control
Typical integration flow
- Discover — read workspace endpoints.
- Command — trigger cues or run scripts over REST.
- Poll — read live-control and playlist state (about once a second is enough).
- Host UI — serve custom HTML from the static Root, or run an external app on the LAN.
5. Guides
Build a cue grid UI
- GET /apiv1/ws/info — categories and page list (or /apiv1/ws/info2 for stable property names).
- GET /apiv1/ws/page?index=0 — cue names and empty slots.
- GET /apiv1/cuethumb?page=0&cue=0&size=150 — thumbnail for each slot. Add &time=2000 to render at 2 s.
- POST /apiv1/ps/execscript with Content-Type: text/plain and body CueDown 0,3 (or StartCue). One-line form: GET /apiv1/ps/cmd/cuedown%200,3 (%20 is a space; + is literal).
Control playlist playback
- GET /apiv1/playlist/list — available shows.
- GET /apiv1/playlist/play — start the current track. Use /apiv1/playlist/settrack?index=0 to jump first.
- GET /apiv1/playlist/state — position and transport. Poll this for a now-playing UI.
- GET /apiv1/playlist/setposition?time=120000 — seek in milliseconds.
Adjust live parameters
Read the master surface:
GET /apiv1/lc/master
Partial JSON write:
POST /apiv1/lc/master
Content-Type: application/json
{"scanrate": 80, "hue": 30}
The same pattern applies to /apiv1/lc/cue (per cue) and /apiv1/lc/zone?index=0 (per zone).
Read or adjust a projection zone
- GET /apiv1/psobject?name=zone — list (names, preview, uGC, 1-based projectorIndex).
- GET /apiv1/zone?index=0 — flags only (mute, blockzone, 0-based projectorindex, visualizationid, testframe, …). zone.0 is Live Control, not the full list item.
- POST /apiv1/zone?index=0 with {“visualizationid”:0,“testframe”:0}. ugc, mesh, name, and preview on this route return 400.
- Write UGC or preview with POST /apiv1/ps/execscript, for example: Zone.0.UGC.SizeX = 99
- Live parameters: GET/POST /apiv1/lc/zone?index=0.
6. Errors and script behavior
| Code | Meaning |
|---|---|
| 200 | Success. Script calls return JSON with totalLines / executedLines / partial. No WriteLn text. |
| 400 | Validation or script error. Treat as failure. |
| 404 | Path is not under /apiv1/ and not in the static file root. |
| 5xx | Internal BEYOND error. Check Quick Log on the show machine. |
Script error body (1-based line):
{
"error": "Line: 2, Error: Unknown identifier",
"code": 400,
"line": 2,
"totalLines": 2,
"executedLines": 1,
"partial": true
}
Field validation example:
{
"error": "Unknown or unsupported field",
"field": "ugc"
}
- The whole execscript body is executed. There is no silent line cap.
- Execution stops at the first error. Earlier lines stay applied (partial: true).
- Only the first assignment on a semicolon-joined line runs.
- Out-of-range preview values may be stored and read back unclamped.
- GET /apiv1/ps/cmd/{command} is one statement. Query strings are stripped. %20 is a space. A literal + is not a space.
7. How the API behaves
- Read playlist or Live Control over HTTP whenever you need a fresh value.
- execscript returns a JSON result (status, line counts, partial). It does not return WriteLn / console text.
- /apiv1/zone is the zone flag document (mute, blockzone, projectorindex, and the other flag fields). Change UGC or preview geometry with execscript, for example Zone.0.UGC.SizeX = 99.
- psobject name=zone is the zone list. zone.<n> is that zone’s Live Control properties.
- projectorindex on /apiv1/zone is 0-based. projectorIndex on the zone list is 1-based.
8. FAQ
Can I try API requests on this wiki page?
No. Use the API Playground on the BEYOND machine at http://<beyond-host>:8088/beyondswagger/.
Do REST calls require authentication?
Not in current builds.
Is HTTPS supported?
Not natively. Place a reverse proxy in front of BEYOND if you need TLS.
Why does my tablet get connection refused?
Use the BEYOND PC LAN IP, not 127.0.0.1. Allow inbound TCP on the HTTP port in Windows Firewall.
What Content-Type for scripts?
text/plain to POST /apiv1/ps/execscript. Do not send {“code”:“…”}.
Where is the FX thumbnail endpoint?
GET /apiv1/fxthumb.
Are there rate limits?
None documented. Poll about once a second for UI feedback.
Which license includes the HTTP server?
BEYOND Ultimate only. See pangolin.com/collections/beyond-software.
How do I list or edit zones?
List: GET /apiv1/psobject?name=zone. Flags: GET/POST /apiv1/zone?index=0. UGC/preview: execscript.
Where is the machine-readable spec?
openapi.json in <exe>\www\beyondswagger, also attached beside this manual.
9. Endpoint reference
Every public REST path in OpenAPI 1.0. Replace <beyond-host> and the port with your show machine.
| Method | Path | Summary |
|---|---|---|
| GET | /apiv1/ws/info | Workspace info – categories as keys |
| GET | /apiv1/ws/info2 | Workspace info – fixed property names |
| GET | /apiv1/ws/page | Get one workspace page (info + cue array) |
| GET | /apiv1/cuethumb | Cue thumbnail (raster image) |
| GET | /apiv1/ps/cmd/{command} | Run a single PangoScript command (URI form) |
| POST | /apiv1/ps/execscript | Run a multi-line PangoScript |
| GET | /apiv1/psobject | Read a PangoScript object as JSON |
| POST | /apiv1/psobject | Write properties of a PangoScript object |
| GET | /apiv1/lc/master | Read Master Live Control |
| POST | /apiv1/lc/master | Write Master Live Control |
| GET | /apiv1/lc/cue | Read Cue Live Control |
| POST | /apiv1/lc/cue | Write Cue Live Control |
| GET | /apiv1/lc/zone | Read Projection Zone Live Control |
| POST | /apiv1/lc/zone | Write Projection Zone Live Control |
| GET | /apiv1/zone | Read projection zone flags |
| POST | /apiv1/zone | Write projection zone flags |
| GET | /apiv1/playlist/state | Get current playback state |
| GET | /apiv1/playlist/list | Get the show list and per-show metadata |
| GET | /apiv1/playlist/thumb | Get a playlist item thumbnail (raster image) |
| GET | /apiv1/playlist/play | Play |
| GET | /apiv1/playlist/stop | Stop |
| GET | /apiv1/playlist/first | First |
| GET | /apiv1/playlist/last | Last |
| GET | /apiv1/playlist/next | Next |
| GET | /apiv1/playlist/prev | Prev |
| GET | /apiv1/playlist/settrack | Jump to a specific track |
| GET | /apiv1/playlist/setposition | Seek within the current show |
| GET | /apiv1/fxthumb | FX-table thumbnail (raster image) |
Workspace
GET /apiv1/ws/info
Workspace info – categories as keys
Returns the workspace structure: a grid block describing the page matrix, plus a category map whose keys are the user-defined category names in BEYOND (e.g. Animals, Boxes). The All key is always present and lists every page regardless of category.
Use this when you want a category-driven UI like the Cue Grid demo. If you need stable property names instead of category-name keys, use /apiv1/ws/info2.
Responses: 200
GET /apiv1/ws/info2
Workspace info – fixed property names
Same payload as /apiv1/ws/info but with stable property names instead of category names as keys. Easier to type-check; harder to drive a category-named UI.
Responses: 200
GET /apiv1/ws/page
Get one workspace page (info + cue array)
Returns the metadata for a single page (pageName, pageCategory) plus an array of all cues on that page. Cues are 0-indexed up to the workspace's colCount * rowCount (typically 64 = 8×8). The empty flag distinguishes blank slots from real cues so you can render the grid without flicker.
The page index is the linear page number across the whole workspace, not a per-category index. Get it from /apiv1/ws/info.
Parameters: index (query, required)
Responses: 200
Thumbnails
GET /apiv1/cuethumb
Cue thumbnail (raster image)
Returns a raster image preview of one workspace cue. Use this to populate cue grids without instantiating the cue. The server picks the closest pre-rendered size, then resamples; very small size values render fastest.
Tip: put &time=2000 to render the cue at 2 s of its timeline rather than frame zero – useful for animated cues.
Parameters: page (query, required); cue (query, required); format (query, optional); size (query, optional); time (query, optional); backcolor (query, optional)
Responses: 200, 400
GET /apiv1/playlist/thumb
Get a playlist item thumbnail (raster image)
Returns a thumbnail for one show in the playlist. Unlike /cuethumb and /fxthumb, playlist thumbnails are user-supplied raster images baked into the show file at fixed sizes (see thumb[] in /apiv1/playlist/list). The server can't synthesize an exact size on demand – it picks the nearest pre-baked thumbnail to your requested size.
Provide either size or image:
size– server returns the closest pre-baked size.image– server returns the Nth image stored in the show.
Parameters: index (query, required); size (query, optional); name (query, optional); image (query, optional)
Responses: 200
GET /apiv1/fxthumb
FX-table thumbnail (raster image)
Returns a raster preview of one effect from the FX table. Same parameter contract as /apiv1/cuethumb but indexed by line (0..7) and index (0..100) instead of page/cue.
On current BEYOND HTTP this path is /apiv1/fxthumb. The older root path /fxthumb returns 404.
Parameters: line (query, required); index (query, required); format (query, optional); size (query, optional); time (query, optional); backcolor (query, optional)
Responses: 200
PangoScript
GET /apiv1/ps/cmd/{command}
Run a single PangoScript command (URI form)
Everything after /cmd/ is one PangoScript statement.
Query parameters are stripped and never become script. The path is percent-decoded once (%20 is a space). A literal + is not a space.
For multi-line scripts, or any statement with spaces, use POST /apiv1/ps/execscript with Content-Type: text/plain.
Examples
GET /apiv1/ps/cmd/blackoutGET /apiv1/ps/cmd/master.brightness=75GET /apiv1/ps/cmd/cuedown%200,3GET /apiv1/ps/cmd/Zone.0.Preview.PositionX%20=%200GET /apiv1/ps/cmd/cuedown+0,3— works because+0is the number zero, not a space
Parameters: command (path, required)
Responses: 200, 400
POST /apiv1/ps/execscript
Run a multi-line PangoScript
Body is UTF-8 PangoScript source (Content-Type: text/plain). Newlines separate statements. JSON wrappers such as {"code":"..."} are not supported.
The whole body is executed. There is no silent line cap. Execution stops at the first error; earlier lines stay applied (partial: true). Only the first assignment on a ;-joined line runs. Out-of-range preview values may be stored unclamped.
WriteLn / echo text is not returned. Treat any non-2xx status as failure.
Request body: text/plain script
Responses: 200, 400
Master.Brightness=75 Master.Hue=20
GET /apiv1/psobject
Read a PangoScript object as JSON
Returns the live JSON state of a documented object: master, playlist, cue.<page>.<index>, zone (list), or zone.<n> (Live Control subset).
zone list items include name, preview, uGC, and flags. projectorIndex on the list is 1-based. Top-level count appears once. zone.<n> is not the same shape as a list item.
Parameters: name (query, required)
Responses: 200, 400, 404
POST /apiv1/psobject
Write properties of a PangoScript object
Partial JSON update of a documented writable object. zone.<n> accepts Live Control fields (for example posX). name and preview on zone.<n> return 400. Unknown properties return 400.
Parameters: name (query, required)
Request body: application/json
Responses: 200, 400, 404
{
"BPM": 240
}
Live Control
GET /apiv1/lc/master
Read Master Live Control
Returns the current state of the Master Live Control surface – the global brightness/hue/scanrate/etc. layer that overlays everything. Equivalent to reading master via /apiv1/psobject but returns only the Live Control subset of properties.
For a per-cue Live Control, see /apiv1/lc/cue. For a per-zone Live Control, see /apiv1/lc/zone.
Responses: 200
POST /apiv1/lc/master
Write Master Live Control
Send a partial Live Control document; only the keys you include are mutated. To reset a property to default, omit it (POSTing null does not reset).
Request body: application/json
Responses: 200, 400
{
"scanrate": 80,
"hue": 30
}
GET /apiv1/lc/cue
Read Cue Live Control
Per-cue Live Control. The Live Control values on a cue are the current values, not the design-time defaults – they reflect any tweaks made while the cue is playing.
Parameters: page (query, required); index (query, required)
Responses: 200
POST /apiv1/lc/cue
Write Cue Live Control
Parameters: page (query, required); index (query, required)
Request body: application/json
Responses: 200
GET /apiv1/lc/zone
Read Projection Zone Live Control
Per-zone Live Control surface. Same property set as /apiv1/lc/master but applied to one projection zone.
Parameters: index (query, required)
Responses: 200
POST /apiv1/lc/zone
Write Projection Zone Live Control
Parameters: index (query, required)
Request body: application/json
Responses: 200
Zones
GET /apiv1/zone
Read projection zone flags
Returns the flag document for one zone: mute, blockzone, projectorindex, active, visualizationid, ratiox, ratioy, testframe, visible.
projectorindex is 0-based. This route does not return ugc, mesh, name, or preview. For the full list record (including uGC and preview), use GET /apiv1/psobject?name=zone.
Parameters: index (query, required)
Responses: 200
POST /apiv1/zone
Write projection zone flags
Send a partial flag document. Supported writes include visualizationid, testframe, and projectorindex (0-based integer in engine range).
name, preview, ugc, and mesh are not writable here — they return 400 (Unknown or unsupported field) and the zone is left unchanged. Non-JSON bodies and unknown fields also return 400 before any write.
To write UGC or preview geometry, use POST /apiv1/ps/execscript.
Parameters: index (query, required)
Request body: application/json
Responses: 200, 400
{
"visualizationid": 0,
"testframe": 0
}
Playlist
GET /apiv1/playlist/state
Get current playback state
Cheap snapshot of the playlist transport: whether it's playing, the position in milliseconds, the duration in milliseconds, and the current track index. Most other Playlist endpoints also return this object so you can update your UI from a single response shape.
Responses: 200
GET /apiv1/playlist/list
Get the show list and per-show metadata
Returns the complete playlist plus per-show metadata: name, comment, file paths, audio file, duration, timecode, and a list of pre-rendered thumbnail sizes. Use it to populate a playlist UI.
Responses: 200
GET /apiv1/playlist/play
Play
Start playback of the current track. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/stop
Stop
Stop playback. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/first
First
Jump to the first track. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/last
Last
Jump to the last track. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/next
Next
Advance to the next track. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/prev
Prev
Step back to the previous track. Returns the updated Playback Status.
Responses: 200
GET /apiv1/playlist/settrack
Jump to a specific track
Selects a track by zero-based index. Equivalent to clicking a row in the playlist UI. Returns the updated Playback Status.
Parameters: index (query, required)
Responses: 200
GET /apiv1/playlist/setposition
Seek within the current show
Sets the playback head, in milliseconds from the start of the current show. Use the infoDurationMS field from /apiv1/playlist/list for the upper bound. Returns the updated Playback Status.
Parameters: time (query, required)
Responses: 200
10. Zone flag fields
GET/POST /apiv1/zone returns and accepts only these fields:
| Field | Type | Notes |
|---|---|---|
| mute | integer | |
| blockzone | integer | |
| projectorindex | integer | 0-based projector slot. Out of range → 400, zone unchanged. |
| active | integer | |
| visualizationid | integer | Writable |
| ratiox | number | |
| ratioy | number | |
| testframe | integer | Writable |
| visible | integer |
11. PangoScript command catalog
511 commands from the shipped catalog. Run them with POST /apiv1/ps/execscript (text/plain) or GET /apiv1/ps/cmd/{{command}} for a single statement.
HTML Output
| Command | Signature | Description | Example |
|---|---|---|---|
| HtmlClearHead | Check HtmlBody description first. HtmlClearHead clear the Head string. | HtmlClearHead | |
| HtmlHead | htmlhead(string) | Check HtmlBody description first. Set Header string. | HtmlHead “<html><head><title></title></head>” |
| HtmlClearBody | Check HtmlBody description first. HtmlClearBody clear the Body string. | HtmlClearBody | |
| HtmlBody | htmlbody(string) | The Guide window contains HTML Viewer component. Primary purpose - style control info window for Universe or similar applications. This group contains commands for window and html parts control (head and body). Default initialization: HeadText:='<html><head><title></title></head>'; BodyText:='<body><p>Welcome to BEYOND Guide window</p></body></html>'; | var a a='BEYOND' HtmlBody “<body><p>Welcome to ”+a+“ Guide window</p></body></html>” |
| HtmlUpdate | Check HtmlBody description first. Update Guide window by correct state of Body and Header string | HtmlUpdate | |
| HtmlHide | Check HtmlBody description first. Close Guide window. | HtmlHide |
Live Control
| Command | Signature | Description | Example |
|---|---|---|---|
| Zoom | zoom(float) | Command sets Zoom parameter of the current Live Control. | Zoom 100 |
| ZoomDelta | zoomdelta(float) | Command sets Zoom parameter of the current Live Control. | ZoomDelta 5 // add 5% |
| Position | position(float, float, float) | Set Position of the current Live Control. This is absolute value command. | Position 0,0,0 |
| PositionDelta | positiondelta(float, float, float) | Shift Position of the current Live Control. This is relative value command. | PositionDelta 0,10,0 // X,Y,Z |
| AngleX | anglex(float), Notes: | Set the Angle X parameter into specified value. Angles in degrees. Same can be done using AngleX property of Live Control enabled objects. | AngleX 0; AngleX 45 |
| AngleY | angley(float) | Set the Angle Y parameter into specified value. Angles in degrees. Same can be done using AngleY property of Live Control enabled objects. | AngleY 0 |
| AngleZ | anglez(float) | Set the Angle Z parameter into specified value. Angles in degrees. Same can be done using AngleZ property of Live Control enabled objects. | AngleZ 0; AngleZ 45 |
| Angle | angle(float, float, float) | Live Control section of the geometric operations includes both a static rotation angle and a rotation speed. The Angle command defines the static rotation angle for the X, Y, and Z axes. All angles are measured in degrees. | Angle 0,0,0; Angle 0,0,90 |
| AngleDelta | angledelta(float, float, float) | AngleDelta increase Angle X, Y and Z of Live Control by specified value. This is relative command. Suggested use - MIDI encoders or | AngleDelta 0,0,0 |
| RotoSpeedX | rotospeedx(float) | Set rotation speed by X only of the current Live Control. | RotoSpeedX 0 |
| RotoSpeedY | rotospeedy(float) | Set rotation speed by Y only of the current Live Control. | RotoSpeedY 0 |
| RotoSpeedZ | rotospeedz(float) | Set rotation speed by Z only of the current Live Control. | RotoSpeedZ 0 |
| RotoSpeed | rotospeed(float, float, float) | Set rotation speed by X, Y and Z of the current Live Control. If you need static angle - use Angle… commands. | RotoSpeed 0,0,0 // rotation speed by X,Y,Z axis. degree. |
| RotoSpeedDelta | rotospeeddelta(float, float, float) | Increase rotation speed on the current Live Control. | RotoSpeedDelta 0,0,5 // increment of rotation speed. X,Y,Z axis. |
| Brightness | brightness(float) | Set Brightness parameter of associated Live Control object. | Brightness 100; Brightness 50 |
| VisiblePoints | visiblepoints(float), Notes: | Sets the Visible Point parameters of the Live Control. This is absolute version of the command. Visible Points control how the end of the frame is handled visually. | VisiblePoints 100 // 0..100 (percents); VisiblePoints 50 // 0..100 (percents) |
| ColorSlider | colorslider(float) | Set the Color slider position. The slider has neutral range (0..31), then color gradient and white are at the end. Old FB3 DMX profile style. Use Red, Green, Blue and alpha if you need exact color control | ColorSlider 0 // default pos; ColorSlider 255 // default pos |
| AnimationSpeed | animationspeed(float), Warnings: | Set animation speed of the Live Control. Animation speed parameter works on Cue and Master Live Control level. The Live Control also embedded into Projection zones, but you cannot set the playback speed of Zone. BEYOND plays content, BEYOND does not play Zones. | AnimationSpeed 100; AnimationSpeed 200 |
| ScanRate | scanrate(float) | Sets the Scan rate of the current Live Control. Note, the scan rate is a multiplie of the same rate. Final sample rate controlled by the limit of the exact projector. | ScanRate 100 |
| ResetLiveControl | Reset current LiveControl to default state. | ResetLiveControl | |
| ResetRotation | Reset Rotation X,Y and Z of the current Live Control object. Command resets speed and current value to zero. | ResetRotation | |
| Size | size(float, float, float) | Set Size X, Y and Z of the current Live Control. | Size 100,100,100 // Size X,Y,Z axis; Size 200,200,200 |
| SizeDelta | sizedelta(float, float, float), sizedelta(float, float), sizedelta(float) | Changes the size relative to the current value along the X, Y, and Z axes. | SizeDelta 10,0,0; SizeDelta 0,-10,0 |
| BrightnessDelta | brightnessdelta(float) | Relative version of Brightness command. Increase or decrease current Brightness value by provided delta. | BrightnessDelta 5 |
| VisiblePointsDelta | visiblepointsdelta(float) | Command increases or decreases the Visible Points parameter of currently active Live Control. | VisiblePointsDelta -2 |
| ColorSliderDelta | colorsliderdelta(float) | Shifts the Color slider position. The slider has neutral range (0..31), then color gradient and white are at the end. Old FB3 DMX profile style. Use Red, Green, Blue and alpha if you need exact color control | ColorSliderDelta 0 |
| AnimationSpeedDelta | animationspeeddelta(float) | Increase or decrease animation speed. This is relative version of AnimationSpeed command. | AnimationSpeedDelta 0 |
| ScanRateDelta | scanratedelta(float) | Modifies the scan rate of the current Live Control. | ScanRateDelta -10 |
| PositionIndex | positionindex(integer, float) | One axis position change. Sometimes it helps to have variable axis. | PositionIndex 1,0 // Axis, Value |
| SizeIndex | sizeindex(integer, float) | Set Size X, Y or Z, using axis index. | SizeDelta 1,50 |
| RGBADelta | rgbadelta(float, float, float, float), rgbadelta(float, float), rgbadelta(float, float, float) | Command modify the RGBA recoloring values in various combinations. The command has three overloads: 2 parameters — channel index and value change. 3 parameters — R, G, and B change, alpha stay as it is 4 parameters — R, G, B, and Alpha change | RGBADelta 16,0,0,0 |
| RGBA | rgba(float, float, float, float), rgba(float, float), rgba(float, float, float) | Sets the RGBA recoloring values in various combinations. Remember: if Alpha is 0, the RGB values have no effect. If Alpha is 255, Live Control applies full RGB recoloring (except on blank points). The command has three overloads: 2 parameters — channel index and value. 3 parameters — R, G, and B (Alpha remains unchanged). 4 parameters — R, G, B, and Alpha | RGBA 255,255,255,255 //R,G,B,Alpha. 0..255; RGBA 255,0,0,128 //R,G,B,Alpha. 0..255 |
| ResetPosition | Reset Position X,Y and Z of the current Live Control object. | ResetPosition | |
| FX | Set Effect index for FX layers. 0 means off. 1 to 100 is effect index. First argument is index for 1st layer, second argument for second layer, etc. Up to 8 arguments. | FX 0,0,0,0 | |
| SetFX | The SetFX command assigns an FX (effect) from the QuickFX table to the current Live Control. Live Control includes eight layers, with one effect per layer. The command is overloade:d -The first argument specifies the layer index (1–8). -The second argument specifies the FX index for that layer. -Additional arguments define FX indexes for subsequent layers. The command is flexible - it can be used to set a single FX layer or multiple layers at once. Layer index value range is 1 to 8 FX index range is 1 to 100 | SetFX 1, 10 // Layer number: 1..8, Effect index: 1..100; SetFX 1, 10,10,10,10 // set all 4 first layers to effect number 10; SetFX 5, 0,0,0,0, // just an example of addressing | |
| ShiftFX | shiftfx(integer, integer) | This command moves the focus within the specified layer of the QuickFX table. | ShiftFX 1, 1 |
| DropFX | dropfx(integer, integer, float) | Runs an effect from the FX table as a “drop effect” for a specified duration. Drop effects are an additional list of effects: they are defined in the main FX table, but triggered temporarily on top of the fixed FX chain. They are intended for short actions such as flashes, triggers, or brief accents. | DropFX 1,1, 1000 |
| SetFXAction | setfxaction(integer, float) | Sets FX effect action. Action is a morph between laser frame before and after effect. This is sort of CPU heavy operation. | SetFXAction 1, 100 |
| FXAction | Set FX Action for FX layers. 0 - effect does not work at all 100 - effect applied fully, without any modification. 1..99 - morph between input and out frame (after effect calculation). Command accept up to 8 arguments, one per layer. | FXAction 100,100,100,100 | |
| ZoneFXTimeScale | zonefxtimescale(float, float, float) | This command is deprecated. Use FXTimeScale instead. | ZoneFXTimeScale 1,2,1 // Layer, Clock multipler, Metronome multiplier |
| ZoneFXTimeShift | zonefxtimeshift(float, float, float) | This command is deprecated. Use FXTimeShift instead. | ZoneFXTimeShift 1,2,1 // Layer, Clock multipler, Metronome multiplier |
| ToggleFX | togglefx(integer) | Toggle FX playback. If layer not specified than toggle all 8 layers. Command work in context of scripter (same as all Live Control commands) | ToggleFX 1 // |
| PositionX | positionx(float) | Set Position X coordinate of the current Live Control. | PositionX 100 // -100 to 100 |
| PositionY | positiony(float) | Set Position Y coordinate of the current Live Control. | PositionY 100 // -100 to 100 |
| PositionZ | positionz(float) | Set Position Z coordinate of the current Live Control. | PositionZ 0 // -100 to 100 |
| SizeX | sizex(float) | Sets the X size value of the current Live Control. | SizeX 100 |
| SizeY | sizey(float) | Sets the Y size value of the current Live Control. | SizeY 100 |
| SizeZ | sizez(float) | Sets the Z size value of the current Live Control. | SizeZ 100 |
| ColorOn | coloron(float) | Enables laser frame recoloring using the Live Control RGB section. This command specifically sets the Alpha channel to either 0 or 255 - a simple on/off control for alpha. | ColorOn 1 // 1-enabled, 0-disabled |
| ColorRGB | colorrgb(integer) | Sets the color used for live frame recoloring. The color value is a 24-bit unsigned integer. | ColorRGB 0x0000FF // red |
| ColorBGR | colorbgr(integer) | Sets the color used for live frame recoloring. The color value is a 24-bit unsigned integer. | ColorBGR 0x0000FF // blue |
| ResetRotationX | Reset Rotation X of the current Live Control object. Command resets speed and current value to zero. | ResetRotationX | |
| ResetRotationY | Reset Rotation Y of the current Live Control object. Command resets speed and current value to zero. | ResetRotationY | |
| ResetRotationZ | Reset Rotation Z of the current Live Control object. Command resets speed and current value to zero. | ResetRotationZ | |
| InvertRotationX | Invert rotation X direction of the applicable live control. | InvertRotationX | |
| InvertRotationY | Invert rotation Y direction of the applicable live control. | InvertRotationY | |
| InvertRotationZ | Invert rotation Z direction of the applicable live control. | InvertRotationZ | |
| FXTimeScaleAxReset | fxtimescaleaxreset(float, float) | Reset FX time scale of the current Live Control for specified layer and time component (clock, beat) | FXTimeScaleAxReset 1,3 // Layer, Mask (1,2,3) |
| FXTimeScaleAx | fxtimescaleax(float, float, float) | Defines the scale (multiplier) for incoming time. In practice, this is a speed control for the clock and beat time. If you set the speed to anything other than 1, BEYOND automatically enables independent time calculation for this Live Control. You can reset it back to the default using FXTimeSync. | FXTimeScaleAx 1,2,1 // Layer, Mask (1,2,3), multiplier; FXTimeScaleAx 1,3,1 // Layer, Mask (1,2,3), multiplier |
| SetFXMute | setfxmute(integer, float) | Command open ability to mute (disable) FX layers of the Live Control 0-Off, 1-On, 2-Toggle | SetFXMute 1, 2 |
| SetFXMul | setfxmul(integer, float, float) | This is tricky area. The LC object has time accumulator per FX line. Each line has own Clock and Metronome time (optional). Each of time component has speed control. Overall, you can control the speed of each FX line, for clock and metronome components of time. | SetFXMul 2, 4,1 // Layer, Clock, Metronome multiplier |
| ZoneFXTimeScaleDelta | zonefxtimescaledelta(float, float, float, float) | This command is deprecated. Use FXTimeScaleDelta instead. | ZoneFXTimeScaleDelta 0,0,0,0 |
| ZoneFXTimeShiftDelta | zonefxtimeshiftdelta(float, float, float, float) | This command is deprecated. Use FXTimeShiftDelta instead. | ZoneFXTimeShiftDelta 0,0,0,0 |
| StopFxCell | stopfxcell(float), stopfxcell(float, float) | Stop effect at FX layer of current. The FX line may play up to 4 effects. If you need to stop exact - specify effect index. Otherwise - all effects in the layer. | StopFXCell |
| ResetFxTiming | This command resets all time-related effects of the current Live Control, including DJ disk, time scale, time multiplier, time shift, and time value. | ResetFxTiming | |
| StopFX | Stop/reset FX of current Live Control | StopFX | |
| SetFXAction1 | setfxaction1(float) | Set action of FX 1 layer. Command act same as clicking on QuickFX grid. | SetFXAction1 100 |
| SetFXAction2 | setfxaction2(float) | Set action of FX 2 layer. Command act same as clicking on QuickFX grid. | SetFXAction2 100 |
| SetFXAction3 | setfxaction3(float) | Set action of FX 3 layer. Command act same as clicking on QuickFX grid. | SetFXAction3 100 |
| SetFXAction4 | setfxaction4(float) | Set action of FX 4 layer. Command act same as clicking on QuickFX grid. | SetFXAction4 100 |
| SetFXMulAx | setfxmulax(integer, integer, float) | Similar to SetFXMul, this command allows to control the speed of FX, but you can define which Layer number: 1..8, Mask (1 is clock, 2 is beat, 3 is clock and beat), Value of multiplier | SetFXMulAx 1, 3, 2 // layer, mask, multiplier |
| FXTimeSync | fxtimesync(float, float) | FXTimSync resets the time calculation for an FX layer to its default state, where the FX no longer uses its own time accumulation or speed. The first parameter specifies the FX layer, and the second parameter is the mode; using value 1 resets the layer to the default (parent time). As with all Live Control commands, this instruction applies to the currently active Live Control. | FXTimeSync 1,1 // Set to master/parent time. |
| FXTimeScaleDeltaAx | fxtimescaledeltaax(float, float, float) | This is relative version of the FxTimeScaleAx command. It changes the scale (multiplier) for incoming time. | FXTimeScaleDeltaAx 1,2, 0.05 |
| ResetLCTab | Reset Live Control currently used in UI. Most of commands work with exact Live Control containers. The UI (Live Control Tab) can be connected to various Live Controls, such as Cues, ProTracks, etc. This command made for UI mapping. | ResetLCTab | |
| SetFXAction5 | setfxaction5(float) | Set action of FX 5 layer. Command act same as clicking on QuickFX grid. | SetFXAction5 100 |
| SetFXAction6 | setfxaction6(float) | Set action of FX 6 layer. Command act same as clicking on QuickFX grid. | SetFXAction6 100 |
| SetFXAction7 | setfxaction7(float) | Set action of FX 7 layer. Command act same as clicking on QuickFX grid. | SetFXAction7 100 |
| SetFXAction8 | setfxaction8(float) | Set action of FX 8 layer. Command act same as clicking on QuickFX grid. | SetFXAction8 100 |
| StrobeSpeed | strobespeed(float) | Command sets the strobe of the current Live Control. | StrobeSpeed 0.2 |
| StrobeSpeedDelta | strobespeeddelta(float) | Command changes the strobe of the current Live Control. | StrobeSpeedDelta 0.1 // period, flicker per second |
| MulFXMulAx | mulfxmulax(integer, integer, float) | Command controls the speed/multiplier for FX playback | MulFXMulAx 1, 3, 1 // Multiply multiplier… |
| Hue | hue(float) | Set the Hue component. Negative values treated as not active, and hue has not impact on recolor | Hue -1 |
| HueDelta | huedelta(float) | Increment or decrement the Hue property by specified value. This is relative command | HueDelta 5 |
| HueShift | hueshift(float) | Hue shift is an additional offset for the hue value. Made for additional oscillation around current hue. If you need to recolor then use Hue, which replaces the input color Hue. | HueShift 90 |
| HueShiftDelta | hueshiftdelta(float) | Command increment/decrement current HueShift value by provided delta. This is relative version of the Sh | HueShiftDelta 5 |
| Saturation | saturation(float) | Sets saturation level of the current Live Control. Saturation is not direct value. In Live Control it works as an offset. Incoming color transformed to HSV, modified and transformed back. | Saturation 0 |
| SaturationDelta | saturationdelta(float) | Shift the saturation level of the current Live Control. | SaturationDelta 0 |
| BeamBrush | beambrush(float), Notes: | Set BeamBrush value (laser line width). | BeamBrush 25; BeamBrush 0; BeamBrush 100 |
| BeamBrushDelta | beambrushdelta(float) | Relative version of BeamBrush command. Increase or decrease BeamBrush value by specified delta | BeamBrushDelta 1 |
Local & Animation
| Command | Signature | Description | Example |
|---|---|---|---|
| SetPage | setpage(integer) | This command sets the index of the currently visible page in the main Grid. | SetPage 1 |
| GetPage | This command is deprecated. Please do not use it. It remains enabled only to avoid syntax check failures in very old scripts. 1027 | ||
| Restart | Notes: | This is a script instruction, not a command. It restarts script execution from the beginning and also resets the execution start time, which is used by the WaitForTimePos instruction. | StartCue 1, randomin(1,100) // action Sleep 1000 // delay restart // go to beginning |
| Exit | EXIT is an instruction to stop script execution. Typically used at the end of script section, such as universe components, or a triggers. Same logic as in SWICTH () in C. | Exit | |
| GetTimeControl | Depreciated. Same as ControlFromTcTab. | GetPage | |
| GetLiveControl | Depreciated. Same as ControlFromLcTab. | GetLiveControl | |
| GetFxControl | Depreciated. Same as ControlFromFxTab. | GetFxControl | |
| CodeName | codename(string) | This command defines the name of the scripter object. The assigned name appears in the PangoScript tab and can also be used as an identifier in the StartCode and StopCode commands. | CodeName “MyCode” |
| CodeShortcut | codeshortcut(string), Notes: | Defines the shortcut for the script. The only parameters is shortcut name. Use this link for shortcut names: https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Menus.TextToShortCut | CodeShortcut “Ctrl+D”; CodeShortcut “F2” |
| Autostart | Warnings: | Enable auto start of the script. This scrip option applicable for scripts located in PangoScript tab. This command inform BEYOND that this script must be executed at start up. | AutoStart |
| StopOnBlackout | stoponblackout(integer) | Enables script termination on Blackout. When this option is enabled, the script will stop automatically if Blackout is activated. This is useful for scripts that start or manage multiple Cues, allowing BEYOND to halt the script immediately when the user clicks Blackout. | StopOnBlackout 1 |
| LinePerCycle | linepercycle(integer) | LinePerCycle defines how many script lines are executed during a single iteration of the scripting core. BEYOND can run hundreds of scripts in parallel—some may be stopped, others waiting, and some running in endless loops. To prevent any single script from monopolizing processing time, a limit is imposed on the number of lines executed per cycle. For large or time-critical scripts that need to be processed more quickly, you can increase this value. The default setting is 30 lines per cycle. | LinePerCycle 100 // put at beginning of script. |
| CodeColorMarker | codecolormarker(integer) | Defines color marker for the script in PangoScript tab. Color in standard GDI RGB encoding, where 0x0000FF is red, 0x00FF00 is green, and 0xFF0000 is blue. Yes, this is not HTML encoding. | CodeColorMarker 0x00FF00 |
| SelectMidi | selectmidi(integer) | Each scripter has a property that defines which MIDI device it operates with. Command defined index of the MIDI IN and MIDI OUT. | SelectMidi 1 // Select MIDI device pair, 1..4. |
| MidiOut | midiout(integer, integer, integer), midiout(integer, integer, integer, integer) | Sends a MIDI message to the MIDI OUT device. By default, the target device is device 1\. However, if the command is called from MIDI mapping, BEYOND automatically sets the device index based on the current context. The MIDI device index can be manually defined using the SelectMIDI command, which assigns the MIDI device index for this scripter. The parameters msg, data1, and data2 follow standard MIDI specifications. Make sure to review MIDI fundamentals before using these commands. | MidiOut 0x90, 0x40, 0x7F |
| DmxOut | dmxout(float, float), dmxout(float, float, float), Notes: | DmxOut command defines state of the DMX channel. BEYOND has multiple DMX buffers, which merged during calculation. All scripts write the data into shared buffer. The buffer channel has 16 bit signed resolution. Value -1 means undefined. Use it if you want to make this channel “transparent”. Values between 0 and 255 are normal values. This command made for output of 1 or 2 channels. If you need more than two then use DmxOutRange | DmxOut 1, 255 // set first DMX OUT channel to 255 (max value) |
| ChannelOut | channelout(integer, integer) | BEYOND provides 255 general-purpose channels. A channel is an element in an array of 255 normalized floating-point variables The main concept is that external inputs modify channel values, and these values are then used in effects as multipliers or in other forms of modulation. | ChannelOut 1, 1000; ChannelOut 1, 500 |
| OscOut | Send OSC message out. The Type Tag String composed by type of the arguments. The first argument must be string with OSC address. Command used OSC Client socket. | OscOut “/beam1/xy”, -5, 100 | |
| OscOutTTS | Send OSC message out. First argument - OSC address, string. Second argument - OSC TTS, string. Third, 4ths, etc - OSC message values. Command used OSC Client socket. | OscOutTTS “/main/volume”,“i”, 100 // Address, Type Tag String, Arguments (optional) | |
| DmxOutRange | DmxOutRange allows to write array of DMX values. First parameter is channel index, 1 to 2048 Second, third, 4th and so on - DMX values. -1 is transparent DMX value. 0 to 255 are standard DMX values | DmxOutRange 1, 100,101,102,103,104 // send 5 DMX values, starting channel 1 | |
| SetMidiLayer | setmidilayer(integer) | The command sets the layer index for the MIDI device currently selected in the active Scripter (range 1..4). Use SelectMidi to select the MIDI device. The default layer index is 1\. After selecting the device, you can control which layer is active using SetMidiLayer. | SetMidiLayer 1 // default is 1 |
| SetGrid1MSL | setgrid1msl(float) | Sets the Surface layer index for Grid1 in the MIDI Surface Mapping. | SetGrid1MSL 1 |
| SetGrid2MSL | setgrid2msl(float) | Sets the Surface layer index for Grid2 in the MIDI Surface Mapping. | SetGrid2MSL 1 |
| SetSliderMSL | setslidermsl(float) | Sets the Surface layer index for Slider in the MIDI Surface Mapping. | SetSliderMSL 1 |
| SetButtonMSL | setbuttonmsl(float) | Sets the Surface layer index for Buttons in the MIDI Surface Mapping. | SetButtonMSL 1 |
| SetZoneSelMSL | setzoneselmsl(float) | Sets the Surface layer index for Zone Selection in the MIDI Surface Mapping. | SetZoneSelMSL 1 |
| SetZoneMuteMSL | setzonemutemsl(float) | Sets the Surface layer index for Zone Mute in the MIDI Surface Mapping. | SetZoneMuteMSL 1 |
| SetFX1MSL | setfx1msl(float) | Sets the Surface layer index for FX1 in the MIDI Surface Mapping. | SetFX1MSL 1 |
| SetFX2MSL | setfx2msl(float) | Sets the Surface layer index for FX2 in the MIDI Surface Mapping. | SetFX2MSL 1 |
| SetFX3MSL | setfx3msl(float) | Sets the Surface layer index for FX3 in the MIDI Surface Mapping. | SetFX3MSL 1 |
| SetFX4MSL | setfx4msl(float) | Sets the Surface layer index for FX4 in the MIDI Surface Mapping. | SetFX4MSL 1 |
| SetFX5MSL | setfx5msl(float) | Sets the Surface layer index for FX5 in the MIDI Surface Mapping. | SetFX5MSL 1 |
| SetFX6MSL | setfx6msl(float) | Sets the Surface layer index for FX6 in the MIDI Surface Mapping. | SetFX6MSL 1 |
| MidiSysexStart | Creates the buffer for long MIDI Sysex message. Internally buffer is TMemoryStream, you can add as many bytes as you need. Use command MidiSystexAdd to write bytes into the stream. Use command MidiSysexSend to actually send complete MIDI message to output device. Check description of MidiOut command for device indexing. | MidiSysexStart | |
| MidiSysexAdd | Write parameters as bytes into local sysex stream. Check description of MidiSysexStart | MidiSysexAdd “F0477F”; MidiSysexAdd 1,2,3 // add 3 bytes. | |
| MidiSysexSend | Send prepared sysex stream to MIDI device. Use MidiSysexStart to initialize the buffer, and MidiSysexAdd to add bytes to the buffer. | MidiSysexSend | |
| LoadCue | loadcue(string), Warnings: | Load file into current cue of primary grid. | LoadCue “c:\MyAnimationFile.bani” |
| LoadWorkspace | loadworkspace(string), Warnings: | Load workspace from file. This is HTTP oriented command, do not use in script directly. | LoadWorkspace “c:\MyWorkspace.BeyondWorkspace” |
| ControlMaster | ControlMaster set the LiveControl destination of this script Master Live Control. Subsequent LiveControl commands, such as Size, will apply to Master LC only. | ControlMaster | |
| ControlCue | controlcue(integer, integer) | ControlCue set the LiveControl destination of this script to one Cue, addressed by page and cue index. | ControlCue 1,1 |
| ControlZone | controlzone(integer), controlzone(string) | ControlZone set the LiveControl destination of this script to one zone, addressed by index or by name. | ControlZone 1 // name as “Main Graphics”, or zone number 1…N; ControlZone “Main Graphics” |
| ControlProjector | controlprojector(integer) | Command depreciated. At some point of time BEYOND had Live Control in Projectors. | ControlProjector 1 |
| ControlSelZones | The ControlSelZones command sets the LiveControl destination of the script to the selected projection zones. Subsequent LiveControl commands, such as Size, will apply to all currently selected zones. | ControlSelZones | |
| ControlSelCues | The ControlSelCues command sets the LiveControl destination of the script to the selected Cues. Subsequent LiveControl commands, such as Size, will apply to all currently selected Cues. | ControlSelCues | |
| StartCode | startcode(string), Notes: | Start execution of script with specified name. In addition to that, this is overloaded command. You can add more arguments to this command and they will form parameter list. To read parameter in the script use param(index) function, where index is an index of parameter. | StartCode “MyCode”; StartCode “MyCode”, “hello, this is param”, 12345 // other script, place in PangoScript tab: Codename “MyCode” // define code name, required to work displaypopup param(1), param(2) //display two parameters |
| StopCode | stopcode(string) | Stop execution of scripts with specified name. | StopCode “MyCode” |
| ControlProTrack | controlprotrack(integer) | The ControlProTrack command sets the LiveControl destination of the script to ProTrack addressed by Index. Subsequent LiveControl commands, such as Size, will apply to this ProTrack only. | ControlProTrack 1 // bind to protrack 1 |
| ControlSelProTracks | The ControlSelProTracks command sets the LiveControl destination of the script to the selected ProTracks. Subsequent LiveControl commands, such as Size, will apply to all currently ProTracks. | ControlSelProTracks | |
| SelectGrid | selectgrid(integer) | Each scripter has a property that defines which Grid it operates on. The Grid index—similar to the MIDI Device index—determines the context in which commands are executed. | SelectGrid 1 |
| SelectTabName | selecttabname(string) | Select Tab by name. Operation by name are better to exact/safer scripting. | SelectTabName “Graphics” //define Page name! |
| SelectTab | selecttab(integer), Notes: | Selects a Tab by its index. Index-based addressing works for general-purpose scripting, such as MIDI mapping, but it may have safety implications if the tab order changes. | SelectTab 1 // |
| SelectNextTab | Notes: | Go to the next tab in the workspace. Grid defined by command SelectGrid. | SelectNextTab |
| SelectPrevTab | Notes: | Select previous Tab of the Grid. Grid defined by command SelectGrid. | SelectPrevTab |
| SelectPageName | selectpagename(string), Notes: | Select page by the name. String case sensitive. | SelectPageName “Graphics” // define Page name! |
| SelectPage | selectpage(integer), Notes: | Page is absolute index, used as cue address. The Tab is UI side. The Grid may show subset of Pages because of Category selected. | SelectPage 1 // tab index, 1..N. |
| SelectNextPage | Notes: | Go to the next page in the workspace. Grid defined by command SelectGrid. | SelectNextPage |
| SelectPrevPage | Notes: | Select previous Page of the Grid. Grid defined by command SelectGrid. | SelectPrevPage |
| ControlFromUI | Depreciated. New version ControlFromLcTab | ControlFromUI | |
| SelectAllCat | Show Grid pages of all categories. | SelectAllCat | |
| SelectCatName | selectcatname(string) | Shows only the Grid pages belonging to the specified category. | SelectCatName “Graphics” |
| SelectCat | selectcat(integer) | Shows only the Grid pages belonging to the specified category. | SelectCat 1 // category index, 1..N. |
| SelectNextCat | Go to the next category in the workspace. Grid defined by command SelectGrid. | SelectNextCat | |
| SelectPrevCat | Go to the previous category in the workspace. Grid defined by command SelectGrid. | SelectPrevCat | |
| FocusCell | focuscell(integer, integer) | Focuses the specified Grid cell using the provided column and row values. The row and column refer to UI coordinates; internally, BEYOND uses a flat 0–255 cue index. The command operates in the context of the scripter and the currently active Grid. | FocusCell 1,1 //Column (1..N), Row (1..N) |
| FocusCellIndex | focuscellindex(integer) | Focuses the specified Grid cell using the flat index, equal to cue index. The command operates in the context of the scripter and the currently active Grid. | FocusCellIndex 1 // cell index, 1..255 |
| StartCell | Starts playback of the cue located in the current cell of the current Grid. Arguments are optional and specify the names of the projection zones where the cue should output. | StartCell // start current cell | |
| StopCell | Stops playback of the cue located in the current cell of the current Grid. | StopCell | |
| ShiftFocus | shiftfocus(integer) | This command shifts the focus by N cells, forward or backward. | ShiftFocus -1 |
| MoveFocus | movefocus(integer, integer) | Move current (focused) cue of the current Grid | MoveFocus -1,0 //number of cells to go horizontally and vertically |
| ReStartCell | Restarts playback of the cue in the current cell of the current Grid. | RestartCell | |
| ToggleCell | Toggles (plays or stops) the current cue in the active Grid. This is a UI-oriented command that simply starts or stops the currently selected cue. The command can also accept multiple projection zone names. These define the destination zones where the cue’s output will be sent. | ToggleCell // current grid | |
| Echo | echo(integer) | The Echo command sets the echo mode for the TCP Talk Server. 0 – No echo, no confirmation 1 – Confirmation with “OK” or “ERROR” 2 – Echoes back the command along with the status “OK” or “ERROR” | Echo 2 //0-none, 1-ok/error, 2-echo of input plus ok/error |
| Password | password(string) | Password protection can be enabled for the TCP Talk Server. The password must be defined in the BEYOND.INI file under the “General” section. If the provided password matches, commands from the client will be accepted. No password by default. \[General\] TcpTalkServerPassword=12345 | password “enter pasword here” |
| Version | Command Version designed for TCP Talk Server. BEYOND will respond with exe version information. | version | |
| Hello | Command Hello is connection test command. Suggested use case - “TCP Talk Server”. Essentially, this is plain text communication, one command per line. Your application connects to BEYOND and send Hello command. Response will be “Hello!”. | hello | |
| ControlFromLcTab | ControlFromLcTab set the LiveControl destination of this script to whatever selected now in Live Control tab. Command made to read current state of UI. | ControlFromLcTab | |
| ControlFromFxTab | ControlFromFxTab set the LiveControl destination of this script to whatever selected now in QuickFX tab. Command made to read current state of UI. | ControlFromFxTab | |
| ControlFromTcTab | ControlFromTcTab set the LiveControl destination of this script to whatever selected now in Time Control tab. Command made to read current state of UI. | ControlFromTcTab | |
| StoreZoneSelection | Notes: | The StoreZoneSelection command saves the list of selected projection zones into the local storage of the scripter executing the script. You can restore the selection later using ReStoreZoneSelection. The main idea is: store the current selection, modify it, perform the necessary operations, and then restore the original selection. | StoreZoneSelection // use ReStoreZoneSelection to revert back |
| ReStoreZoneSelection | ReStoreZoneSelection is the counterpart to StoreZoneSelection. It restores the projection zone selection that was previously saved. | ReStoreZoneSelection | |
| SetDmxEditorChannel | setdmxeditorchannel(float, float) | Set the DMX slider value in QuickDMX editor. Good for MIDI or other external control. | SetDmxEditorChannel 1, 128 // firsh slider/channel, and 128 as value |
| ProjectionZonesDialog | Command call Projection Zone Settings dialog. Suggested use - from UMAX, sometimes you may need to give access to zone adjustments. | ProjectionZonesDialog | |
| MakeSecuredFile | makesecuredfile(string, string, float) | Command designed to help to prepare secured Timeline files. | MakeSecuredFile “Input file name”, “Output file name”, ClientHardwareSerial |
| RestorePlayer | restoreplayer(float, float, float, float, string, float, float) | This command is deprecated. There was an idea to generate a script from the current player state (a kind of “capture to script”), but this approach did not work well in practice. | RestorePlayer |
| RunApp | runapp(string, string), Warnings: | Command call Windows ShellExec() which can start any applications, or other command line. Command disabled by default. Min purpose - automation in installations projects. | RunApp “C:\Windows\Notepad.exe”, “” |
| ExecCmd | ExecCmd is a bit fancy. Idea to execute script located in the string. ExecCmd accent any number of arguments, only strings executed as commands. One command per string. | ExecCmd “Blackout”; var s s = “Blackout” ExecCmd s |
|
| Write | Notes: | Write command add a string to last string of the Script component of the Universe. See WriteLn for more details. | write “Add/ ” // run it a few times, it add to end of the current line. |
| WriteLn | Notes: | WriteLn provides terminal-style output for scripts. Both Write and WriteLn send text to the script’s own terminal output buffer. To test the command, place a Script component on the Universe page, then click the Script Edit button. Inside the OnMouseDown section, add: writeln “Hello World!”; Run the page and click the component—your message will appear. WriteLn appends a new line to the terminal’s string list, which can be viewed in the Script component on the Universe page. | writeln “Hello world!” |
| ResetMidiFeedback | resetmidifeedback(float) | Use to force refresh MIDI feedback for the surface. Command reset stored cache of the state, which cause update the MIDI feedback. | ResetMidiFeedback |
| ResetOscFeedback | Force sending the feedback of all OSC messages. BEYOND OSC feedback based on checking specified variables and sending the OSC message when the value changes. This command to send the state of all variables no matter of state. | ResetOscFeedback | |
| DefineDmxTrigger | definedmxtrigger(integer), definedmxtrigger(integer, string) | DefineDmxTrigger 1 | |
| DefineMidiTrigger | definemiditrigger(integer, integer), definemiditrigger(integer, integer, string), definemiditrigger(integer, integer, string, integer) | DefineMidiTrigger 0xC0, 0x00 | |
| DefineTrigger | definetrigger(string), definetrigger(string, string) | DefineTrigger “2+2” | |
| DefineTcTrigger | definetctrigger(string) | DefineTCTrigger “TC Test” | |
| InRangeTrigger | inrangetrigger(float, float, string) | InRangeTrigger 0,100,“MyLabel” | |
| OutOfRangeTrigger | outofrangetrigger(float, float, string) | OutOfRangeTrigger 0,100,“MyLabel” | |
| IncreaseTrigger | increasetrigger(float, float, string) | IncreaseTrigger 0,100,“MyLabel” | |
| DecreaseTrigger | decreasetrigger(float, float, string) | DecreaseTrigger 0,100,“MyLabel” | |
| MoreThanTrigger | morethantrigger(float, string), morethantrigger(float, float, float, float, string) | MoreThanTrigger 0,“MyLabel” | |
| LessThanTrigger | lessthantrigger(float, string), lessthantrigger(float, float, float, float, string) | LessThanTrigger 0,“MyLabel” | |
| InRangeTriggerCmd | inrangetriggercmd(float, float, string) | InRangeTriggerCmd 0,100,“Blackout” | |
| OutOfRangeTriggerCmd | outofrangetriggercmd(float, float, string) | OutOfRangeTriggerCmd 0,100,“Blackout” | |
| AnimateProp | animateprop(string, float, float, float), animateprop(string, float, float, float, string) | Probably unusual idea - instead of writing script with loop, tell BEYOND which variable must be “animated” and let application to the work in background. To make it work you need to supply variable/property name as string, beginning and ending values, and duration. Optionally you can specify Event name which will be triggered at the end of animation process. | AnimateProp “master.brightness”, 0,100,1000 // look at LiveControl tab, master lc, brightness |
| AnimatePropDelta | animatepropdelta(string, float, float), animatepropdelta(string, float, float, float, string) | Similar to the AnimateProp command, but instead of using a from-to value pair, it operates in a relative mode. This command changes the specified property value by a given delta. | AnimatePropDelta “master.brightness”, -10,1000 |
| DeletePropAni | Deletes property animators associated with the specified property names. The AnimateProp command creates an animator, and DeletePropAni removes it. This command accepts one or multiple property names as strings: DeletePropAni “variable” or DeletePropAni \[“variable”, …\] | DeletePropAni |
Main & Workspace
| Command | Signature | Description | Example |
|---|---|---|---|
| TimerBeat | BEYOND supports three types of events used in scripts, images, and effects: audio, manual, and timer beats. All three serve the same purpose - to initiate a process or event that can be used elsewhere. TimerBeat initiated by system metronome located on main toolbar of BEYOND. One event every beat. | TimerBeat | |
| AudioBeat | BEYOND supports three types of events used in scripts, images, and effects: audio, manual, and timer beats. All three serve the same purpose - to initiate a process or event that can be used elsewhere. Audio beat events are generated by the audio input using an FFT-based peak detector. Manual events result from user interaction, while timer events are produced by the system-wide metronome. AudioBeat command initiate audio-beat event, same as audio analyzer. You may need if you have external audio peak detector. | AudioBeat | |
| ManualBeat | BEYOND supports three types of events used in scripts, images, and effects: audio, manual, and timer beats. All three serve the same purpose - to initiate a process or event that can be used elsewhere. ManualBeat command initiate manual-beat event. | ManualBeat | |
| CueDown | cuedown(integer, integer), cuedown(integer, integer, integer) | Command perform “press” action on the Grid (workspace cue). Exact action depends on Grid mode - toggle, flash, etc. Command is not depending on the Grid (main or secondary) as well as from current page. | CueDown 1,1 // simulate client on 1st page, 1st cue |
| CueUp | cueup(integer, integer), cueup(integer, integer, integer) | Command perform “release” action on the Grid (workspace cue). Exact action depends on Grid mode - toggle, flash, etc. Command is not depending on the Grid (main or secondary) as well as from current page. | CueUp 1,1 // first page, first cue |
| StopCueNow | stopcuenow(integer, integer) | Main Stop command. Stop playback of the cue. | StopCueNow 1, 1 // page 1..255, cue 1..255 |
| StopAllSync | stopallsync(float) | Stops Cue playback in the Grid, ProTrack, and the Effect/Group pool. | StopAllSync 0.5 |
| StopAllAsync | stopallasync(float) | Stops Cue playback in the Grid, ProTrack, and the Effect/Group pool with specified fade out time. | StopAllAsync 0.5 // duration in seconds |
| StopAllNow | Stops playback of all cues and effects, including the Grid player pool, ProTracks, Effects, Zone Effects, and the DMX Server. Playback is stopped immediately, without a soft stop. This is the primary stop command used internally by BEYOND. | StopAllNow | |
| StopCueSync | stopcuesync(integer, integer, float) | Stops playback of the specified Cue. This is legacy command. Do not use. | StopCueSync 1, 1, 0.5 |
| EnableLaserOutput | Notes:, Warnings: | Enable Laser Output. This command change internal mode of BEYOND to streaming. Streaming means output to laser projector, which initiate creation of calculation threads. | EnableLaserOutput |
| DisableLaserOutput | Warnings: | Disable Laser Output. This command change internal mode of BEYOND and stop output to all projectors, release threads and decrease CPU usage. | DisableLaserOutput |
| MasterPause | masterpause(integer) | Set the playback on pause. Applied to laser and audio playbacks. | MasterPause Toggle // ON, OFF, TOGGLE |
| BlackOut | Warnings: | System wide reset. Has most impact when laser output enabled. Command has configuration for how many systems it reset. Main purpose - universal stop and reset. | BlackOut |
| VirtualLJ | virtuallj(integer) | Command enable, disable of toggle Virtual LJ (see button on main toolbar). | VirtualLJ Toggle // ON, OFF, TOGGLE |
| BeatTap | Tap tempo. Set the master BPM by means of tapping. Made for external MIDI control. BEYOND approximate last 4 taps. Max BPM is 600\. Use SetBPM command if you want to set exact value. You can read and write current BPM using Master.BPM property. | BeatTap | |
| BeatResync | Resets the master beat timer and sets its phase to zero. This command is used to synchronize the master beat timer and takes effect immediately. No parameters are required. Reset master beat timer, set phase to zero. Command made to synchronize the master beat timer. Act immediately. No parameters required. | BeatResync | |
| OneCue | Notes: | The OneCue command sets the one cue mode. In this mode, the Grid allows one cue to be started. | OneCue |
| MultiCue | The MultiCue command enables multi-cue mode. In this mode, the Grid allows multiple cues to be started and played in parallel. | MultiCue | |
| Transition | transition(integer) | Command enable, disable or toggle transition between cues in the Grid. | Transition Toggle // ON, OFF, TOGGLE |
| ClickSelect | clickselect(float) | Enable Select click mode of Live / Content Grid. | ClickSelect |
| ClickToggle | clicktoggle(float) | Enable Flash click mode of Live / Content Grid. | ClickToggle |
| ClickRestart | clickrestart(float) | Enable Restart click mode of Live / Content Grid. | ClickRestart |
| ClickFlash | clickflash(float) | Enable Flash click mode of Live / Content Grid. | ClickFlash |
| ClickLive | clicklive(float) | Enable Live click mode of Live / Content Grid. | ClickLive |
| ClickSoloFlash | clicksoloflash(float) | Enable Solo-Flash click mode of Live / Content Grid. | ClickSoloFlash |
| PauseCue | pausecue(integer, integer, integer), Notes: | Command finds the cue player, and set/remove the pause state. Command use default soft pause durations. | PauseCue 1,1, TOGGLE // page index, cue index, action (ON, OFF, TOGGLE) |
| VLJFX | vljfx(integer, integer) | Command enable/disable VLJ of QuickFX tab. | VljFX 1, Toggle // index of FX-VLJ 1..8, and action: ON, OFF, TOGGLE |
| ClickScrollZoom | clickscrollzoom(float) | Zoom slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollZoom -5 |
| ClickScrollSize | clickscrollsize(float) | Size slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollSize -5 |
| ClickScrollFade | clickscrollfade(float) | Fade slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollFade -5 |
| ClickScrollVPoints | clickscrollvpoints(float) | Visible points slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollVPoints -5 |
| ClickScrollScanRate | clickscrollscanrate(float) | ScanRate slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollScanRate -5 |
| ClickScrollColor | clickscrollcolor(float) | Color slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollColor -5 |
| ClickScrollAniSpeed | clickscrollanispeed(float) | Animation speed slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollAniSpeed -5 |
| ClickScrollR | clickscrollr(float) | Red slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollR -5 |
| ClickScrollG | clickscrollg(float) | Green slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollG -5 |
| ClickScrollB | clickscrollb(float) | Blue slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollB -5 |
| ClickScrollA | clickscrolla(float) | Alpha slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollA -5 |
| OnePer | The OnePer command sets the one-per-zone mode. This is legacy mode, which is not recommended to use. Such model was applicable at BEYOND version 1 or 2\. With increased calculation chain length, this mode become very hard to use and support. | OnePer | |
| SetBpm | setbpm(float) | Sets the master BPM - the global tempo of the BEYOND application. There is only one tempo clock for the entire system. | SetBpm 120 |
| SetBpmDelta | setbpmdelta(float) | Increment or decrement current BPM. You can have access to it using Master.BPM property. | SetBpmDelta 1 |
| RestartCue | restartcue(integer, integer) | If a cue is currently playing in the Grid or ProTrack, this command resets its playback time to the beginning. | RestartCue 1,1 // page, cue |
| ClickLCTabMode | clicklctabmode(float) | ClickLcTabMode command is same as clicking Master, Cue, Zone, ProTrack buttons in FX Tab. Command defined which Live Control is connected to Live Control tab (UI). Use following constants: 1-Master, 2-Cue, 3-Zone, 4-ProTrack | ClickLCTabMode 1 // 1-Master, 2-Cue, 3-Zone, 4-ProTrack |
| ClickFXTabMode | clickfxtabmode(float) | ClickFXTabMode command is same as clicking Master, Cue, Zone, ProTrack buttons in FX Tab. Command defined which Live Control FX is connected to QuickFX tab. Use following constants: 1-Master, 2-Cue, 3-Zone, 4-ProTrack | ClickFXTabMode 1 |
| MasterSpeed | masterspeed(float) | Sets Master.MasterSpeed property, which is general purpose speed multiplier. | MasterSpeed 1 // From zero to one |
| StartPrevious | Performs the same action as the Back button on the main toolbar. This command starts the previously played Cue. | StartPrevious | |
| TogglePrevious | A cue click history–based operation. The command starts the previously played cue, acting as a kind of “swap” function. | TogglePrevious // “SWAP” button | |
| UnselectAllProTracks | Clears the selection state of all ProTracks. After this command, no ProTracks remain selected. | UnselectAllProTracks | |
| SelectProTrack | Select one or multiple ProTracks by index or by the name. String arguments used as names, numeric as indexes (1 to 8) | SelectProTrack 1 | |
| UnselectProTrack | Clears the selection state of the specified ProTracks. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | UnselectProTrack 1,2,3,4 // unselect 1,2,3 and 4th ProTrack | |
| ToggleSelectProTrack | Toggles the Selected state of the specified ProTrack. The command accepts multiple arguments: strings are treated as ProTrack names, and numeric values are treated as ProTrack indexes. | ToggleSelectProTrack 1 | |
| UnmuteAllProTracks | Removes the muted state from all ProTracks. | UnmuteAllProTracks | |
| MuteProTrack | Mute specified ProTracks. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | MuteProTrack 1 // index(es) or name(s) | |
| UnmuteProTrack | Notes: | Removes the muted state from specified ProTrack. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | UnmuteProTrack 0,1,2,3 // unmute first four protracks |
| ToggleMuteProTrack | Toggles the muted state of the specified ProTrack. The command accepts multiple arguments: strings are treated as ProTrack names, and numeric values are treated as ProTrack indexes. | ToggleMuteProTrack 1 // index(es) or name(s); ToggleMuteProTrack 1,2,3,4 // | |
| UnselectAllFixt | Clears the selection state of all Fixtures. After this command, no Fixtures remain selected. | UnselectAllFixt | |
| SelectFixt | Set Selected state of the Fixture object | SelectFixt 0 // index(es) or name(s) | |
| UnselectFixt | Clears the selection state of the specified Fixtures. Command accept multiple arguments - strings as fixture name, and numbers as fixture index. | UnselectFixt 0,2, “Spot 1” // two indexes and one name of the Fixture | |
| ToggleSelectFixt | Toggles the Selected state of the specified Fixtures. The command accepts multiple arguments: strings are treated as FIxture names, and numeric values are treated as Fixture indexes. | ToggleSelectFixt | |
| ClickFXStopAll | ClickFXStopAll is combine action command, which send StopFX command, and stop FX VLJ actions. | ClickFXStopAll | |
| ClickFxVlj | clickfxvlj(float), clickfxvlj(float, float) | ClickFxVlc is action performed by 8 VLJ buttons in QuickFX tab. It enable, disable or toggle corresponding VLJ button state. You must specify line index. Default action - toggle. | ClickFxVlj 2 // 0 off, 1 on, 2 toggle. |
| FXCellDown | fxcelldown(integer, integer) | This command performs an FX table cell click using absolute indexing, which does not account for any horizontal shift of the table. It predates the FXCellClick command — in earlier versions, the number of effects was small and the FX grid was not scrollable. (The content grid is still not scrollable.) Consider this command as operating on absolute indexes, while FXCellClick is more UI-oriented. | FXCellDown 1, 1 // Layer number: 1..8, Effect number |
| UnmuteAllZone | Removes the muted state from all Projection Zones. | UnmuteAllZone | |
| MuteZone | Mute specified Projection Zones. Command accept multiple arguments - strings as Zone name, and numbers as Zone index. | MuteZone 0 | |
| UnmuteZone | Notes: | Removes the muted state from specified Projection Zone. Command accept multiple arguments - strings as zone name, and numbers as zone index. | UnmuteZone 0 |
| ToggleMuteZone | Warnings: | Toggles the muted state of the specified Projection Zone. The command accepts multiple arguments: strings are treated as ProTrack names, and numeric values are treated as ProTrack indexes. | ToggleMuteZone 0 |
| ToggleMuteZoneOfProjector | togglemutezoneofprojector(float), togglemutezoneofprojector(float, float) | Toggle mute state of all zones associated with the projector. | ToggleMuteZoneOfProjector 1 // 1st projector; ToggleMuteZoneOfProjector 1, 0 // 1st projector, 0 unmute |
| ClickLockSize | clicklocksize(float) | Enable or disable synchronized change of Size X and Size Y sliders in Live Control tab. Basically, moving both sliders together. | ClickLockSize 1 // 0,1,2 Off, On, toggle |
| StartAudioRecord | Start audio recording in QuickAudio tab (for spectrum, and audio triggers). | StartAudioRecord | |
| StopAudioRecord | Stop audio recording in QuickAudio tab. | StopAudioRecord | |
| SetAudioRelease | setaudiorelease(float) | Set Audio Release speed (Quick Audio tab) | SetAudioRelease 75 |
| SetAudioGain | setaudiogain(float) | Depreciated. FFT Audio compensation (1 to 15). Is not related to audio playback. | SetAudioGain 10 |
| MuteSelected | muteselected(integer) | Sets the muted state for the selected Projection Zones, ProTracks and Fixtures. | MuteSelected 2 // 0,1,2 |
| SetGridSize | setgridsize(float, float) | Command set the main grid size. | SetGridSize 8,5 |
| MasterPauseTime | masterpausetime(integer) | Sets master pause duration (the soft pause) | MasterPauseTime 1000 // set pause/unpause time to 1 second |
| SetGrid1Page | setgrid1page(integer) | Set the Main Grid page by index. | SetGrid1Page 1 |
| SetGrid2Page | setgrid2page(integer) | Set the Secondary Grid (bottom side) page by index. | SetGrid2Page 1 |
| MuteAllZones | Mute all Projection Zones. Muted zone has no output to laser projector. | MuteAllZones | |
| PreviewNxN | previewnxn(integer), previewnxn(integer, integer, integer) | Sets the Main Preview mode, same as context menu. Modes: 1 - laser 2 - 2×2 3 - 3×3 4 - 4×4 11-Custom 1 12-Custom 2 13-Custom 3 In custom modes you can specify number of rows and columns. | PreviewNxN 4 // 1 - laser, 2 - 2×2, 3 - 3×3, 4 - 4×4, 11-Custom1, 12-Custom2, 13-Custom 3 |
| DisplayPopup | Notes: | Shows popup window. This is pure UI oriented command. Take any number of parameters of any type. | DisplayPopup “Hello world!”; DisplayPopup Master.BPM; DisplayPopup 123, “hello!” |
| DisplayPreview | Display message in Main Preview Panel located in Right/Top corner of BEYOND window. Recommend to use for debug messages, or action confirmation where you do not need a window based message. Command take any number parameters of any type. | DisplayPreview “Hello world!”, 0x0000ff | |
| HoldClick | holdclick(integer) | Enable HOLD mode for Cue playback. | HoldClick 1 |
| PreviewMaster | Sets the Main Preview panel to Master View mode. This action also clears the zone selection, since zones cannot be viewed or selected in Master View mode. | PreviewMaster | |
| StopCueType | stopcuetype(integer), stopcuetype(integer, float) | Stop cue playback of a specified type. 1 - general images 2 - timeline 4 - DMX 8 - Animator 16 - Beam sequences 32 - Capture 64 - Chains (not supported now) 128 - Script (not supported now) 256 - Records (not publicly available yet) 512 - Zone effects 1024 - effect pool (group mode) | StopCueType 255 |
| FXScroll | fxscroll(integer) | Set FX table horizontal scroll position | FXScroll 1 |
| FXClick | fxclick(integer, integer) | Click on FX cell without using current UI left/right scroll. This index is absolute FX index | FXClick 1,1 |
| FXCellClick | fxcellclick(integer, integer) | The FX table is wider than the available UI space. This command performs an FX table cell click using relative indexing, which accounts for any horizontal shift of the table. In practice, it clicks by column position rather than by the absolute effect index. | FXCellClick 1,1 |
| TapByCueClick | tapbycueclick(integer) | Enables, disables, or toggles Tap-Tempo on Cue click. When enabled, clicking a Cue in the Grid generates a Tap-Tempo (BPM) click. The command can turn this option on, off, or toggle its current state. | TapByCueClick On // options: On,Off, Toggle |
| ResyncByCueClick | resyncbycueclick(integer) | This command sets the beat synchronization mode that is applied when a cue is clicked. You can use the predefined constants OFF, ON, and TOGGLE. The command is related to the master BPM (metronome) control, which also includes functions such as tap and resync. | ResyncByCueClick On |
| SynchronizePlayerToBeat | synchronizeplayertobeat(integer) | Sets the global option for players to synchronize to the beat. Synchronization occurs on player start and restart. The idea is similar to quantize in audio software: it is nearly impossible to click exactly on the beat, so the timing will always be slightly off. This option corrects that by using the current sub-beat time as the alignment reference. | SynchronizePlayerToBeat On |
| ResetCuesFX | Iterates through all cues in the workspace and performs the following actions: clears assigned FX, resets the FX Action parameter and timing, and clears the Drop-effect list All these operations are part of the LiveControl object. The purpose of this command is to reset the entire playback FX state. | ResetCuesFX | |
| ResetZonesFX | Iterates through all Projection zones and performs the following actions: clears assigned FX, resets the FX Action parameter and timing, and clears the Drop-effect list All these operations are part of the LiveControl object. The purpose of this command is to reset the entire playback FX state. | ResetZonesFX | |
| ResetProTrackFX | Iterates through all ProTracks and performs the following actions: clears assigned FX, resets the FX Action parameter and timing, and clears the Drop-effect list All these operations are part of the LiveControl object. The purpose of this command is to reset the entire playback FX state. | ResetProTrackFX | |
| ClickTCTabMode | clicktctabmode(float) | ClickTcTabMode command is same as clicking Master, Cue, Zone, ProTrack buttons in FX Tab. Command defined which Live Control is connected to Time Control tab. Use following constants: 1-Master, 2-Cue, 3-Zone, 4-ProTrack | ClickTCTabMode 1 // 1-Master, 2-Cue, 3-Zone, 4-ProTrack |
| ResetMasterFX | Reset Master Live Control FX only. | ResetMasterFX | |
| PlayListStop | Stop playback of the show in PlayList | PlayListStop | |
| PlayListPlay | Start playback of the current show from the PlayList. | PlayListPlay | |
| PlayListFirst | Go to first show from the PlayList | PlayListFirst | |
| PlayListLast | Go to last show from the PlayList | PlayListLast | |
| PlayListNext | Go to next show from the PlayList | PlayListNext | |
| PlayListPrev | Go to previous show from the PlayList. | PlayListPrev | |
| PlayListSetPos | playlistsetpos(float) | Select the Show from PlayList by index (1..N) | PlayListSetPos 1 |
| PlayListSetTime | playlistsettime(float) | Jump to time position of the current show | PlayListSetTime 0 |
| LoadPlaylist | loadplaylist(string), Warnings: | Open file into BEYOND Playlist window. | LoadPlaylist “c:\MyPlaylist.BeyondSL” |
| InvertPlayersTime | The BEYOND content player supports time direction control, allowing playback to bounce between time points A and B as part of the Time Control section. This command toggles the playback direction for players located in the Grid (dynamic pool) or the ProTrack array. The action depends on the message source—it may apply to selected zones, selected cues, selected ProTracks, or, in the case of a Master/General source, to all ProTracks and Grid players. | InvertPlayersTime | |
| PlayersSetJump | Notes: | This command stores the current player time on the first call, and on the second call jumps back to the stored position. It is another variation of DJ-style live time effects. | PlayersSetJump |
| PlayersResetJump | Notes: | Clears the time stored in player by command PlayerSetJump. Command might be applied to ProTracks and Grid players, depending on selection. | PlayersResetJump |
| PlayersSetLoop | playerssetloop(integer), Notes: | The idea of this feature is to loop the player between two points and allow back-and-forth playback. It provides three actions in total: 1\. Store point A. 2\. Store point B (looping begins). 3\. Clear the loop settings. | PlayersSetLoop -1 // automatic mode, set A, set B, clear. |
| PlayersDisk | playersdisk(float), playersdisk(float, float), Notes: | Time Control command. The DJ Disk located in the Time Control tab can slow down the playback as well as to time shift (scratch). If you need time shift only action look at PlayerDiskShift command. | PlayersDisk 1, 0.1 // speed scale, the shift |
| PlayersDiskShift | playersdiskshift(float), Notes: | Time Control command. This command is simplified version of PlayerDisk. Shift applied to clock and beat time components . | PlayersDiskShift 0.1 |
| InvertProTrackTime | Inverts the playback direction of the selected ProTracks. The main idea is to reverse the playback temporarily, allowing quick back-and-forth motion—similar to a DJ-style effect. | InvertProTrackTime | |
| ProTrackSetJump | This command stores the current player time on the first call, and on the second call jumps back to the stored position. It is another variation of DJ-style live time effects. | ProTrackSetJump | |
| ProTrackResetJump | Clears the time stored in player by command PlayerSetJump. Command always applied to the ProTracks only. | ProTrackResetJump | |
| ProTrackSetLoop | Notes: | The idea of this feature is to loop the player between two points and allow back-and-forth playback. It provides three actions in total: 1\. Store point A. 2\. Store point B (looping begins). 3\. Clear the loop settings. | ProTrackSetLoop -1 // automatic mode, set A, set B, clear. |
| ProTrackDisk | protrackdisk(float), protrackdisk(float, float) | Time Control command, applied to ProTracks only. The DJ Disk located in the Time Control tab can slow down the playback as well as to time shift (scratch). If you need time shift only action look at PlayerDiskShift command. | ProTrackDisk 1, 0.1 |
| ProTrackDiskShift | protrackdiskshift(float) | Time Control command, applied to ProTracks only. This command is simplified version of PlayerDisk. Shift applied to clock and beat time components . | ProTrackDiskShift 0.1 |
| MasterAudioVolume | masteraudiovolume(float) | Controls Timeline audio players volume. | MasterAudioVolume 100 // volume in percent. |
| MasterShowBrightness | mastershowbrightness(float) | Set the Timeline/Show brightness. Specific for this content. Main intention - quick and universal way to fade the show playback not matter of place. | MasterShowBrightness 100 |
| MasterClockShift | masterclockshift(float) | MasterClockShift sets Master.MasterClockShift property. MasterClockShift is part of the base offset value applied to cue calculations on a per-zone basis. The offset is sum of the master offset and the cue level offset. Simple way to see it - set cue routing to multiple zones, and set the shift value. | MasterClockShift 0 // in seconds |
| MasterMetroShift | mastermetroshift(float) | MasterMetroShift sets Master.MasterMetroShift property. MasterMetroShift is part of the base offset value applied to cue calculations on a per-zone basis. The offset is sum of the master offset and the cue level offset. Simple way to see it - set cue routing to multiple zones, and set the shift value. | MasterMetroShift 0 |
| MasterEffectClockShift | mastereffectclockshift(float) | Defines global offset for effects (clock component). This shift works if effect has enabled master shift, and work as additional offset to other offsets. | MasterEffectClockShift 1 // 0 is default |
| MasterEffectMetroShift | mastereffectmetroshift(float) | Defines global offset for effects (metronome component). This shift works if effect has enabled master shift, and work as additional offset to other offsets. | MasterEffectMetroShift 1 // beats |
| MasterCueSpeed | mastercuespeed(float), Notes: | The MasterCueSpeed command sets the CueSpeed value of the Master object. This parameter acts as a speed multiplier for all Player objects. The value is measured in percent, with 100 as the default. | MasterCueSpeed 200 // twice faster |
| MasterCueLcSpeed | mastercuelcspeed(float), Notes: | The MasterCueLcSpeed command sets the CueLcSpeed value of the Master object. This parameter acts as a speed multiplier for all Live Control objects, including those embedded in cues, zones, and other elements. The value is measured in percent, with 100 as the default. | MasterCueLcSpeed 100 // default speed |
| MasterLCSpeed | masterlcspeed(float) | Sets the Master.MasterLcSpeed property. MasterLcSpeed is a multiplier applied to the time delta during time accumulation for Live Control objects | MasterLCSpeed 100 |
| MasterFXSpeed | masterfxspeed(float) | Sets the Master.MasterFxSpeed property. MasterFxSpeed is a multiplier applied to the time delta during time accumulation for FX layers. | MasterFXSpeed 100 |
| MasterZoneFxSpeed | masterzonefxspeed(float) | Sets the Master.MasterZoneFxSpeed property. MasterZoneFxSpeed is a multiplier applied to the time delta during time accumulation for FX layers. | MasterZoneFxSpeed 100 // in percents |
| MasterShowSpeed | mastershowspeed(float) | Set the Timeline/Show playback speed. Specific for this content type. Main intention - quick and universal way to control the timeline speed. | MasterShowSpeed 100 |
| MasterAudioVolumeMute | masteraudiovolumemute(float) | Mute or unmute Timeline audio players. | MasterAudioVolumeMute 1 // On(1), Off(0), Toggle(2) |
| EnableFb3StyleDmxIn | enablefb3styledmxin(float) | EnableFb3StyleDmxIn is a legacy oriented command. BEYOND has multiple modules which react on DMX IN Data. One of oldest is FB3 Style DMX IN, which came into BEYOND from QuickShow. This is very simplified approach to DMX IN, considering modules like DMX to PangoScript and DMX Server of BEYOND. Anyway, this is standard disable/enable/toggle command. | EnableFb3StyleDmxIn 1 |
| MasterShowShift | mastershowshift(float) | Made to add some offset to laser calculation. Audio may have delay, at least due to distance. A client requested to be able to delay laser a bit | MasterShowShift 0 |
| MuteAllProTracks | Mute all ProTracks of BEYOND. In muted state the calculation still happens, but output to laser disabled. | MuteAllProTracks | |
| StopProTrack | Stop Playback of the specified ProTracks. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | StopProTrack 1,2,3,4 | |
| StopProTrackFX | No arguments – stops FX on all ProTracks. One argument – stops FX on the specified ProTrack (by index or name). Multiple arguments – stops FX on the specified ProTrack, with the second and subsequent arguments specifying the layer indexes to stop (multi effect per line mode). | StopProTrackFX; StopProTrackFX 1 | |
| FocusProTrack | focusprotrack(string), focusprotrack(float) | Command defines the focused ProTrack in the UI. | FocusProTrack 1 // Track index or name |
| SetProTrackZones | Defines routing information for the specified ProTrack. Routing consists of one or more Projection Zones. The first argument is the ProTrack name or index. If the name does not exist or the index is out of range, the command exits silently. The second and subsequent arguments are the Projection Zones, specified either by name or index. String values are treated as names; numeric values are treated as indexes. | SetProTrackZones 1, “Scanner 1 Main”, “Scanner 2 Main” // Track index/name, Zone name(es)/index(es) | |
| UnSoloAllProTrack | Removes the Solo state from all ProTracks. | UnSoloAllProTrack | |
| SoloProTrack | Command sets the Solo state on specified ProTrack. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | SoloProTrack 1 | |
| UnSoloProTrack | Command removes the Solo state from specified ProTrack. Command accept multiple arguments - strings as ProTrack name, and numbers as ProTrack index. | UnSoloProTrack 1 // index(es) or name(s) | |
| ToggleSoloProTrack | Toggles the Solo state of the specified ProTrack. The command accepts multiple arguments: strings are treated as ProTrack names, and numeric values are treated as ProTrack indexes. | ToggleSoloProTrack 1 | |
| ClickTrack | clicktrack(float) | Enable Track click mode of Live / Content Grid. | ClickTrack |
| DisplayPopupOnTop | A version of DisplayPopup with higher visibility priority. | DisplayPopupOnTop “Hello world!” | |
| GoGridMode | Switches BEYOND to the Grid view, equivalent to clicking the corresponding button on the main toolbar. | GoGridMode | |
| GoTimelineMode | Switches BEYOND to the Timeline view, equivalent to clicking the corresponding button on the main toolbar. | GoTimelineMode | |
| GoPlayListMode | Switches BEYOND to the Play List view, equivalent to clicking the corresponding button on the main toolbar. | GoPlayListMode | |
| GoUniverseMode | Switches BEYOND to the Universe view, equivalent to clicking the corresponding button on the main toolbar. | GoUniverseMode | |
| CloseUmax | UMAX is a full-screen “universe” window designed to cover the entire display. It responds only to the Alt + F4 shortcut and normally prevents manual closing. To close it from a MIDI command or script, use the Close UMAX command. | CloseUmax | |
| EnableDmxIn | enabledmxin(float) | EnableDmxIn is a dual-action command that enables, disables, or toggles the DMX IN state, while also resetting the state of all DMX Server players. The reset of DMX Server players is always performed. When DMX IN is enabled, the command updates the state of the Script core and the FB3-style DMX IN object. It also updates the Master.DmxInButtonDown property and the corresponding UI button on the main toolbar. | EnableDmxIn Toggle // 0,1,2 Toggle; EnableDmxIn 0 |
| SetEffectChannelAction | seteffectchannelaction(float), seteffectchannelaction(float, float) | Defines channel action parameter which impact channel calculation. | SetEffectChannelAction 0 // 0..100 |
| SetChannelToChannelRatio | setchanneltochannelratio(float) | Channel is a shell of 4 values and 4 multipliers with auto-gain correction. ChannelToChannel is the multiplier for original channel value. Additional parts are - DMX, VDJ and FFT multipliers. Overall logic: Gain = ChannelRatio + DmxRatio + FFTRatio + VdjRatio; OutValue = ChannelVal \// (ChannelRatio/Chain) + DmxVal \// (DmxRario/Gain) + FFTVal \// (\//FFTRatio/Gain) + VdgValue \* (VdjRatio/Gain) | SetChannelToChannelRatio 100 |
| SetDmxToChannelRatio | setdmxtochannelratio(float) | BEYOND Channels hide several internal mechanisms, one of which is the ability to mix DMX data with direct channel values. A channel is a general-purpose, global array of variables that can be used in Images and Effects. You can view them in the Channels tab. This command sets the multiplier (ratio) that defines how DMX data contributes to the Channel values. See SetChannelToChannel for more details. | SetDmxToChannelRatio 50; SetDmxToChannelRatio 100 |
| SetFFTToChannelRatio | setffttochannelratio(float) | Command sets the ratio of Audio/FFT data in the output channel value. See SetChannelToChannel for more details. | SetFFTToChannelRatio 100 |
| SetVdjToChannelRatio | setvdjtochannelratio(float) | Command sets the ratio of VDJ data in the output channel value. See SetChannelToChannel for more details. | SetVdjToChannelRatio 0 // 0 to 100. |
| TimelinePlay | Command from the Timeline Editor group. Plays the timeline from the current position. | TimelinePlay | |
| TimelineStop | Command from the Timeline Editor group. Stops timeline playback. | TimelineStop | |
| TimelineJumpToStart | Command from the Timeline Editor group. Jump the the timeline beginning. | TimelineJumpToStart | |
| TimelineJumpToEnd | Command from the Timeline Editor group. Jump the the timeline ending. | TimelineJumpToEnd | |
| TimelineJumpDelta | timelinejumpdelta(float) | Shift timeline cursor position by specified number of seconds | TimelineJumpDelta 1 |
| TimelineSetViewRange | timelinesetviewrange(float, float) | Set timeline visibility range (timeline view area from left to right) | TimelineSetViewRange 1,5 |
| TimelineShiftViewRange | timelineshiftviewrange(float) | Shift timeline visibility left or right. | TimelineShiftViewRange 1 //one second shift |
| TimelineSetPos | timelinesetpos(float) | Sets timeline position in seconds. | TimelineSetPos 10 // 10th second. |
| TimelineShowItNow | timelineshowitnow(float) | Command from the Timeline Editor group. Defined state of ShowItNow button (output to laser). | TimelineShowItNow 1 |
| TimelinePlayFromMarker | timelineplayfrommarker(string) | Command from the Timeline Editor group. Find the marker by name and start playback from marker position. | TimelinePlayFromMarker “MyMarker” // you should have the name of marker in your timeline. |
| TimelineQuickSave | Notes: | Save current timeline to file. Command use existing file name. | TimelineQuickSave |
| TimelineFirstTab | Command from the Timeline Editor group. Go to the first timeline/tab of the editor. | TimelineFirstTab | |
| TimelineNextTab | Command from the Timeline Editor group. Go to next timeline/tab of the editor. | TimelineNextTab | |
| TimelinePrevTab | Command from the Timeline Editor group. Go to previous timeline/tab of the editor. | TimelinePrevTab | |
| TimelineLastTab | Command from the Timeline Editor group. Go to the last timeline/tab of the editor. | TimelineLastTab | |
| TimelineSetTabIndex | timelinesettabindex(float) | Command from the Timeline Editor group. Go to timeline/tab by index. | TimelineSetTabIndex 1 |
| TimelineSetTabName | timelinesettabname(string) | Command from the Timeline Editor group. Go to timeline/tab by index. | TimelineSetTabName “MyShow” |
| TimelineEnableTC | timelineenabletc(float) | Command enables or disable using of incoming timecode for the playbak. | TimelineEnableTC |
| TimelineNextMarker | Command from the Timeline Editor group. Go to next marker (legacy name - log). Marker is vertical line, a time position on the timeline. | TimelineNextMarker | |
| TimelinePrevMarker | Command from the Timeline Editor group. Go to previous marker. | TimelinePrevMarker | |
| TimelineNextEditPoint | Command from the Timeline Editor group. Go to next edit point such as event boundary, marker, etc. | TimelineNextEditPoint | |
| TimelinePrevEditPoint | Command from the Timeline Editor group. Go to previous edit point such as event boundary, marker, etc. | TimelinePrevEditPoint | |
| SetLocation | setlocation(integer, float, float, float) | Locations are at prototype phase. Please do not use this command, it may change or might be removed. | SetLocation 1, 0,0,0 |
| SetZoneMeshPointPos | setzonemeshpointpos(float, float, float, float, float) | This command provides control over the Free-Form Mesh component of the Projection Zones geo-correction system. | SetZoneMeshPointPos 1, 1,1, 0,0 |
| ClickScrollHue | clickscrollhue(float) | Hue slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollHue -5 |
| ClickScrollHueShift | clickscrollhueshift(float) | Hue Shift slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollHueShift -5 |
| ClickScrollSaturation | clickscrollsaturation(float) | Saturation slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollSaturation -5 |
| ClickScrollBeamBrush | clickscrollbeambrush(float) | Beam brush slider of Live Control tab. The slider includes two buttons on the left and right sides that control its movement toward the boundaries. Use a negative step value to move toward the lower boundary and a positive value to move toward the upper boundary. A higher absolute value results in faster motion. Use zero to stop the movement. | ClickScrollBeamBrush -5 |
| SetGridView | Go to Grid view (main form, mode/view buttons) | SetGridView | |
| SetTimelineView | Go to Timeline view (main form, mode/view buttons) | SetTimelineView | |
| SetPlayListView | Go to Play List view (main form, mode/view buttons) | SetPlayListView | |
| SetUniverseView | Go to Universe view (main form, mode/view buttons) | SetUniverseView | |
| UnselectAllProjectors | Command depreciated. Unselect all projectors. | UnselectAllProjectors | |
| FXScrollDelta | fxscrolldelta(integer) | Shift FX table horizontal scroll position (left or right) | FXScrollDelta 8 |
| SelectProjector | Command depreciated. Do not use. | SelectProjector 1 // index(es) (1..N) or name(string). Can be used more than one argument | |
| UnselectProjector | Command depreciated. Unselect projectors by index or name. | UnselectProjector 1 // index(es) (1..N) or name(s) | |
| ToggleSelectProjector | Command depreciated. Toggle selected/unselected state of all projectors. | ToggleSelectProjector 1 // index(es) (1..N) or name(s) | |
| FocusProjector | focusprojector(integer), focusprojector(string) | Command depreciated. Do not use. | FocusProjector 1 // Projector index, 1..N. |
| StartTvMode | starttvmode(float) | Start TV output mode. TV Mode is global fixed FPS mode applied to all projectors. | StartTvMode 30 // 30 FPS |
| StopTvMode | Stop TV mode of BEYOND. This is companion command to StartTvMode. | StopTvMode | |
| GroupCue | Enables the Group mode of the Grid. Group mode is a playback and cue start/stop mode that organizes cues into groups, visually represented by colors. Only one cue can play per group, although behavior also depends on the cue type—content, destination, and effects. | GroupCue | |
| Set4FxPerLine | Set QuickFX tab in extended four-effect per line mode. | Set4FxPerLine | |
| SetDropFxMode | Set FX Table into “drop effect” mode, which is 3rd mode. | SetDropFxMode | |
| Set1FxPerLine | Set QuickFX tab in standard one-effect per line mode. | Set1FxPerLine | |
| PreviewAsUninverse | previewasuninverse(integer) | Command enable or disable Universe in Main Preview panel | PreviewAsUninverse 1 |
| PreviewZoneGrid | Command under development/prototype phase. | PreviewZoneGrid | |
| LockScreen | The LockScreen command places BEYOND into a locked state, preventing unauthorized access or unintended changes to the user interface. | LockScreen | |
| UnLockScreen | Unlock the BEYOND UI. Used as pair for command LockScreen. | UnLockScreen | |
| MoboNotify | mobonotify(string) | Send text message to all connected MoboLaser applications. | MoboNotify “Hello!” |
| SetUiFPS | setuifps(integer) | The command sets the frequency of the BEYOND UI repaint. The default frequency is relatively low—only 25 FPS. If you use BEYOND primarily for show design, it may be a good idea to increase the FPS to 50 or 60\. Keep in mind that a higher FPS can increase CPU load and may slightly reduce keyboard responsiveness in the worst case. BEYOND is designed to handle dropped frames and will not lock up, but this is a reminder to maintain a balance and avoid overloading the main thread. | SetUiFPS 50 |
| Fb4DiscoveryMode | fb4discoverymode(integer), Notes: | Command set FB4 detection mode. By default BEYOND always searching for FB4 and establish connection as soon as it detected. However, it can be changed. Mode values: 0 - always. Default mode. 1 - auto. Check is there other BEYOND in the network, if yes then do not start discovery. If no then start search of hardware. 2 - manual. Enable or Disable discovery by command. Good option if you want to control it manually. | Fb4DiscoveryMode 0 // 0-always, 1-auto, 2-manual |
| StartFb4Discovery | Enable discovery of FB4 in the networks. | StartFb4Discovery 0 | |
| StopFb4Discovery | Disable discovery of FB4 in the networks. | StopFb4Discovery | |
| SetVdgPlugin | setvdgplugin(integer) | This command enables, disables, or toggles the data-retrieval state of the VirtualDJ plugin. | SetVdgPlugin 2 // 0 disable, 1 enable, 2 toggle |
| SetCueCaptionColor | setcuecaptioncolor(float, float, float) | Set the cue caption background color | SetCueCaptionColor 1,2, 0x0000FF // page 1, cue 2, color (windows, 24bit color) |
| ToggleUMaxPage | toggleumaxpage(float), toggleumaxpage(string) | This command performs page navigation (UMAX window). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleUMaxPage 1 // next page |
| PulseEvent | Pulses one or more Events. Each parameter is a string containing the Event name to pulse. This command is used to trigger other scripts that are waiting for an Event using WaitForEvent. | PulseEvent “MyEventName” // OTHER SCRIPT WaitForEvent “MyEventName” DisplayPopup “It works!” restart |
|
| RefreshDmxIn | Notes: | Force BEYOND to regenerate commands for state update. Related to PangoScript to DMX and legacy FB3 style DMX IN. | RefreshDmxIn |
| DmxInMute | dmxinmute(float, float), dmxinmute(float, float, float) | BEYOND provides the ability to mute incoming DMX channels. The DmxInMute command allows you to mute or unmute one or multiple channels. | DmxInMute 1, 2048, 0 // from, to, state; DmxInMute 1, 2048, 1 // from, to, state; DmxInMute 100, 0 // channel, state |
| ToggleUEditPage | toggleueditpage(float), toggleueditpage(string) | This command performs page navigation (Universe editor). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleUEditPage 1 // next page |
| ToggleUCenterPage | toggleucenterpage(float), toggleucenterpage(string) | This command performs page navigation (Universe docked to main window). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleUCenterPage 1 // next page |
| ToggleUToolPage | toggleutoolpage(float), toggleutoolpage(string) | This command performs page navigation (Universe docked into QuickTools area). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleUToolPage 1 // next page |
| ToggleURightPage | toggleurightpage(float), toggleurightpage(string) | This command performs page navigation (Universe docked into right side tabs). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleURightPage 1 // next page |
| ToggleUPreviewPage | toggleupreviewpage(float), toggleupreviewpage(string) | This command performs page navigation (Universe docked into main Preview panel). A numeric argument triggers a relative action (go to the previous or next page). A string argument selects a page by its name. | ToggleUPreviewPage 1 // next page |
| SetUEditPage | setueditpage(float), setueditpage(string) | This command selects a page of the Editor Universe panel, using either its index or its name. | SetUEditPage 1 |
| SetUCenterPage | setucenterpage(float), setucenterpage(string) | This command selects a page of the Universe panel, located in the central area, using either its index or its name. | SetUCenterPage 1 // set first page |
| SetUToolPage | setutoolpage(float), setutoolpage(string) | This command selects a page of the Universe panel, located in the QuickTools area, using either its index or its name. | SetUToolPage 1 |
| SetURightPage | seturightpage(float), seturightpage(string) | This command selects a page of the Universe panel, located in the right side area, using either its index or its name. | SetURightPage 1 |
| SetUPreviewPage | setupreviewpage(float), setupreviewpage(string) | This command selects a page of the Universe panel, located in the preview area, using either its index or its name. | SetUPreviewPage 1 |
| SetUMaxPage | setumaxpage(float), setumaxpage(string) | This command selects a page of the Universe panel, located in the UMAX, using either its index or its name. | SetUMaxPage 1 |
| ShutDownWindows | This command is intended for companies that operate permanent installations, where BEYOND needs to run on a schedule or be controlled remotely. The command requires the ShutDownWindows.exe application to function. On the BEYOND side, it simply calls ShellExecute(). | ShutDownWindows // require ShutDownWindows.exe application | |
| SelectCue | selectcue(string), selectcue(float, float), selectcue(float, float, float) | Controls the Selected property of a cue. You can identify a cue either by its Page/Cue indexes or by its name. BEYOND first searches for the cue name in the current page of the main Grid. If the cue is not found there, the search continues from the first page of the workspace. | SelectCue “Cue01” // Enter correct Cue name! |
| StartCue | startcue(integer, integer), startcue(string), startcue(string, string) | Starts playback of a Cue. The Cue can be specified either by its page and cue index, or by its name. In Multi-Cue mode, this command may start more than one Cue. In Single-Cue mode, only one Cue will be started. | StartCue 1,1 |
| StopCue | stopcue(integer, integer), stopcue(string), stopcue(string, string) | Stops playback of the specified Cue. | StopCue 1,1 |
| ToggleCue | togglecue(integer, integer), togglecue(string), togglecue(string, string), Notes: | Finds a cue by name, by page name and cue name, or by index. Once the cue is located, the command toggles its playback state (play/stop). | ToggleCue 1,1 |
| CaptureToClipboard | BEYOND can create a “Capture” content object from the currently playing cues and place it into the clipboard. The CaptureToClipboard command triggers the corresponding user interface action to perform this operation. | CaptureToClipboard | |
| PasteToCue | Paste clipboard top object into current cue. | PasteToCue | |
| UnselectAllZones | Notes: | Clears the selection state of all Projection Zones. After this command, no zones remain selected. | UnselectAllZones |
| SelectZone | The command accepts multiple arguments. A string is treated as a zone name, and a numeric value is treated as a zone index. You can specify multiple names or indexes in any order. The command adds each Projection Zone to the current Master Selection Array. The order of the zones in this array is important for time-shift operations. | SelectZone 1,2,3, “Scanner 2 main” | |
| UnSelectZone | Removes the Selected state from specified Projection Zone. Command accept multiple arguments - strings as zone name, and numbers as zone index. | UnSelectZone 1 // index or names | |
| ToggleSelectZone | Toggles the Selected state of the specified Projection Zone. The command accepts multiple arguments: strings are treated as Zone names, and numeric values are treated as Zone indexes. | ToggleSelectZone 1 | |
| SelectZoneName | Command depreciated (act same as SelecteZone). | SelectZoneName “Main Graphics” | |
| UnSelectZoneName | Removes the muted state from specified Projection Zone. Command accept multiple arguments - strings as zone name, and numbers as zone index. | UnSelectZoneName “Main Graphics”, “Scanner 1 Main” | |
| MuteSelectedZones | muteselectedzones(integer) | Sets the muted state for the selected Projection Zones only. | MuteSelectedZones OFF |
| FocusZone | focuszone(integer), focuszone(string) | Put zone in focus. Related to QuickFX tab and Effect tab. | FocusZone 1 |
| SelectAndFocusZone | selectandfocuszone(integer), selectandfocuszone(string) | Find Projection zone by name or index, make it selected and update Effect and QuickFX tabs. | SelectAndFocusZone 1 |
| MuteZonesOfProjector | Mute zones of one or many specified projectors. Use indexes of the projector. | MuteZonesOfProjector 1 | |
| UnMuteZonesOfProjector | Unmute zones of one or many specified projectors. Use indexes of the projector. | UnMuteZonesOfProjector 1,2,3 // projector 1,2 and 3 | |
| SetActiveGrid | setactivegrid(float) | Sets the active Grid to either the first (main) or second (secondary) Grid. The active Grid concept is used in many parts of BEYOND. In practice, the rule is simple: the last Grid you interacted with becomes the active one. | SetActiveGrid 1 // 1 or 2 |
| StartTalkClient | Start Talk client - UDP based script messaging. The client send messages. | StartUdpTalkClient | |
| StopTalkClient | Stop Talk client - UDP based script messaging. The client send messages. | StopUdpTalkClient | |
| StartTalkServer | Start Talk server - UDP based script messaging. The server receive messages. | StartUdpTalkServer | |
| StopTalkServer | Stop Talk server - UDP based script messaging. The server receive messages. | StopUdpTalkServer | |
| SelectNextCatGrid1 | Notes: | Go to the next category in the workspace. The command is always associated with the Main Grid. | SelectNextCatGrid1 |
| SelectPrevCatGrid1 | Go to the previous category in the workspace. The command is always associated with the Main Grid. | SelectPrevCatGrid1 | |
| SelectNextPageGrid1 | Notes: | Go to the next page in the workspace. The command is always associated with the Main Grid. | SelectNextPageGrid1 |
| SelectPrevPageGrid1 | Notes: | Select previous Page of the Grid. The command is always associated with the Main Grid. | SelectPrevPageGrid1 |
| SelectNextTabGrid1 | Notes: | Go to the next tab in the workspace. The command is always associated with the Main Grid. | SelectNextTabGrid1 |
| SelectPrevTabGrid1 | Notes: | Select previous Tab of the Grid. The command is always associated with the Main Grid. | SelectPrevTabGrid1 |
| RebootConnectedFB4 | Send Reboot command to all connect FB4\. Might help of you want to reboot the hardware remotely. Also might be required if you just uploaded firmware on the SD card and need to start update process. | RebootConnectedFB4 | |
| UnselectAllCue | Clears the selection state of all workspace cues. After this command, no cues remain selected. | UnselectAllCue | |
| Pub | pub(string, string), pub(string, string, integer), pub(string, string, integer, integer), pub(string, float) | Internal | pub “data/”, “test text” |
| SubProp | subprop(string, string) | Internal | |
| SubJson | subjson(string, string) | Internal | |
| SubCmd | subcmd(string) | Internal | |
| PubObject | pubobject(string, string), pubobject(string, string, string) | Internal | |
| Chat | chat(string), chat(string) | Internal Prototype stage command. Under construction. Do not use. | |
| SetProp | setprop(string, string), setprop(string, integer), setprop(string, float) | Set the property value. Idea - universal setter, where you can use string variable with property name and second with property value. | SetProp “Master.bpm”, 123 |
| StartCueMulti | startcuemulti(integer, integer), startcuemulti(string), startcuemulti(string, string) | Starts playback of a Cue. The Cue can be specified either by its page and cue index, or by its name. Command always in multi-cue mode. You are responsible to stop the cue. | StartCueMulti 1,1 |
| ToggleCueMulti | togglecuemulti(integer, integer), togglecuemulti(string), togglecuemulti(string, string) | Finds a cue by name, by page name and cue name, or by index. Once the cue is located, the command toggles its playback state (play/stop). Allows multiple cues to be started simultaneously, which may lead to system overload if used excessively. | ToggleCueMulti 1,1 |
| SetLimiterProfile | setlimiterprofile(integer), Notes: | Choose between 3 limiter profiles | SetLimiterProfile 1 |
| SetLimiterPerZone | setlimiterperzone(integer), Notes:, Warnings: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. | SetLimiterPerZone 3 // do not use this |
| SetLimiterPerGrid | setlimiterpergrid(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. SetLimitPerGrid defined total limit. | SetLimiterPerGrid 10 |
| SetLimiterFlash | setlimiterflash(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. SetLimiterFlash defines max number of the simultaneously playing cues in FLash mode. | SetLimiterFlash 4 |
| SetLimiterHold | setlimiterhold(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. | SetLimiterHold 3 |
| SetLimiterBeam | setlimiterbeam(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. SetLimiterBeam defines max number of the simultaneously playing QuickBeam-cues. | SetLimiterBeam 5 |
| SetLimiterDMX | setlimiterdmx(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. SetLimiterDMX defines max number of the simultaneously playing DMX-cues. | SetLimiterDMX 5 |
| SetLimiterShow | setlimitershow(integer), Notes: | This command belongs to the SetLimiter… group. Live/Grid playback uses a dedicated pool of cue players, which operates under specific rules such as limiters that define the maximum number of simultaneously playing cues by type. SetLimiterShow defines max number of the simultaneously playing timelines-cues. | SetLimiterShow 2 |
| QLog | Displays a message in the Quick Log panel. The command accepts any number of arguments and concatenates them into a single string without separators. The message is added as an Info-level entry. | QLog “Hello World!” | |
| LogInfo | Sends an Info message to the QuickLog tab. Any number of parameters can be provided—they will be concatenated into a single string. | LogInfo “My message to QLog tab” | |
| LogWarning | Sends a Warning message to the QuickLog tab. Any number of parameters can be provided—they will be concatenated into a single string. | LogWarning “My message to QLog tab” | |
| LogError | Sends an Error message to the QuickLog tab. Any number of parameters can be provided—they will be concatenated into a single string. | LogError “My message to QLog tab” | |
| AddSms | addsms(string), addsms(string, string), addsms(string, string, string), addsms(string, string, string, integer) | Command adds a new message to the SMS FIFO queue for display on the laser projector. You can view the message FIFO in the QuickSMS tab, located at the bottom of the main window. This module was originally designed for compatibility with the Pangolin IMU software, which is now discontinued. However, the ability to add messages through scripting allows connectivity with various external input sources. | AddSMS “This is my demo message”; AddSMS “Red text message”, “”,“”, 0x0000FF |
| ShowItNowSMS | showitnowsms(integer) | Enable/disable laser output from QuickSMS tab. | ShowItNowSMS 1 |
| ExitBEYOND | The ExitBEYOND command closes the BEYOND application, equivalent to clicking the close button on the main window. Execution of this command is asynchronous. | ExitBEYOND | |
| RegisterOscFeedback | registeroscfeedback(string, string) | This command allows monitoring the state of a variable and sending an OSC message when the value of an object property changes. Implementation details: BEYOND maintains a dedicated list of property names to watch. Their values are checked periodically by a timer. When a value changes, BEYOND sends an OSC message automatically. This approach is somewhat CPU-intensive, but it is universal and works with all object properties accessible in PangoScript. | RegisterOscFeedback “/beyond/master/brightness”, “master.brightness” |
| SetMassSlider | setmassslider(float) | Command control Physics slider (mass) of Master tab. | SetMassSlider 4 |
| SetAttractionSlider | setattractionslider(float) | Command control Physics slider (attraction) of Master tab. | SetAttractionSlider 10 |
| SetFrictionSlider | setfrictionslider(float) | Command control Physics slider (Friction) of Master tab. | SetFrictionSlider 10 |
| SetPhysicsCheckbox | setphysicscheckbox(integer) | This command enables, disables, or toggles the Physics checkbox located in the Live Control tab. | SetPhysicsCheckbox TOGGLE |
| ShowMasterHelpFile | Show BEYOND help file. Legacy command. | ShowMasterHelpFile | |
| SetAudioInGain | setaudioingain(float) | FFT Audio compensation (1 to 15). Is not related to audio playback. Gain on input of FFT. | SetAudioInGain 10 |
| SetAudioInRelease | setaudioinrelease(float) | FFT analyzer parameter - peak release speed, decrease intense jumping of the value up and down. | SetAudioInRelease 75 |
| ShowHint | showhint(string) | This command displays a popup window with hint text. It is useful for showing which slider is currently in motion and its value. This type of popup is used by the QuickShow MIDI-mapping system, and BEYOND allows you to use the same feature for any slider you are mapping. | ShowHint “Hello!” |
| LoadZoneFromBlob | loadzonefromblob(integer, boolean) | Internal Load workspace from BLOB. This is HTTP oriented command, do not use in script directly. | <internal commmand> |
| LoadCueFromBlob | loadcuefromblob(integer, integer, boolean), Warnings: | Internal Command designed for special project, do not use in PangoScript. | <internal commmand> |
Recording
| Command | Signature | Description | Example |
|---|---|---|---|
| StartQuickRecord | Start recorder located in QuickRecord tab. Feature is not publicly available yet. | StartQuickRecord | |
| StopQuickRecord | Stop recorder located in QuickRecord tab. Feature is not publicly available yet. | StopQuickRecord | |
| SetRecordFile | setrecordfile(string) | Command sets the file name for the recording. The recording feature is in not released state yet. | SetRecordFile “C:\BEYOND50\MyFile.best” |
Wait & Triggers
| Command | Signature | Description | Example |
|---|---|---|---|
| Sleep | sleep(integer), Notes: | The Sleep instruction puts the script into a waiting state for the specified number of milliseconds. | Sleep 1000 |
| WaitForMidi | waitformidi(integer, integer, integer), Warnings: | WaitForMIDI instruction put scripter into waiting state for MIDI message param(1) - first byte of MIDI message (msg) param(2) - second byte of MIDI message (data1) param(3) - third byte of MIDI message (data2) Data2 also stored as extvalue in normalized form | WaitForMidi 0x90, -1, -1 DislayPopup param(1), param(2), param(3) restart |
| WaitForDmx | waitfordmx(integer), Warnings: | param(1) - DMX channel index param(2) - DMX channel value | WaitForDmx 1 DisplayPopup param(2) restart |
| WaitForChannel | waitforchannel(integer), Warnings: | WaitForChannel put script into waiting state for channel value. param(1) - channel index param(2) - channel value | WaitForChannel -1 displaypopup param(1), param(2) restart |
| WaitForCueStart | waitforcuestart(integer, integer), Warnings: | The WaitForCueStart command puts the script into a waiting state until a cue playback starts. This command is not related to UI cell interaction. The hook is placed in the playback engine that manages player allocation. If you click on an empty grid cell to start a new cue, this waiting operation will not respond. When triggered, the fired cue and page indexes are stored as script parameters. Use param(1) to get the page index and param(2) to get the cue index. Note that BEYOND uses zero-based indexing internally, so both param(1) and param(2) return zero-based values. | WaitForCueStart -1,-1 displaypopup param(1)+1, param(2)+1 restart |
| WaitForCueStop | waitforcuestop(integer, integer), Warnings: | The WaitForCueStop command puts the script into a waiting state until a cue playback stops The hook is placed in the playback engine that manages player allocation. When triggered, the stopped cue and page indexes are stored as script parameters. Use param(1) to get the page index and param(2) to get the cue index. Note that BEYOND uses zero-based indexing internally, so both param(1) and param(2) return zero-based values. | WaitForCueStop 1, 1 //page 1, cue 1 displaypopup “stopped…” restart |
| WaitForCellDown | waitforcelldown(integer), Notes:, Warnings: | Wait for click (cell down) on the content grid. Use -1 to wait for any click (cell down) on the grid. Otherwise specify exact cell index. function Param(1) returns zero based cell index | // run this script in PangoScript tab // click on left/top cell of content grid. waitforcelldown 1 displaypopup “cell down” restart; // run this script in PangoScript tab waitforcelldow -1 // -1 means any cell displaypopup param(1)+1 // index is zero based internally restart |
| WaitForCellUp | waitforcellup(integer), Notes:, Warnings: | Wait for click release (cell up) on the content grid. Use -1 to wait for any click (cell up) on the grid. Otherwise specify exact cell index. function Param(1) returns zero based cell index | // run this script in PangoScript tab // click on left/top cell of content grid. waitforcellup 1 displaypopup “cell down” restart; // run this script in PangoScript tab waitforcellup -1 displaypopup param(1)+1 // index is zero based internally restart |
| WaitForTime | waitfortime(integer, integer, integer, integer), Warnings: | The WaitForTime command puts the scripter into a waiting state until the specified time is reached. Once the system clock passes the defined time, the waiting ends and the next command is executed. | // NOTE: THIS IS NOT GOOD FOR SCHEDULER. // at 15:30 WaitForTime 15,30,0,0 // hours, minutes, seconds, ms StartCue 1,1 // at 15:40 WaitForTime 15,40,0,0 // hours, minutes, seconds, ms StartCue 1,2 |
| WaitForTimePos | waitfortimepos(integer, integer, integer, integer), Warnings: | This wait command wait for time passed from script execution. This is relative time command. Restart command reset the local script time. | // beginning WaitForTimePos 0,0,0,0 StartCue 1,1 // minute later WaitForTimePos 0,1,0,0 StartCue 1,2 // in 2 minutes WaitForTimePos 0,2,0,0 StartCue 1,3 |
| WaitForHotKey | Warnings: | Each scripter has hotkey. This waiting command allows organize waiting for the hotkey press and doing some action after it/ | WaitForHotKey DmxOut 1, 255 Sleep 1000 DmxOut 1, 0 restart |
| WaitForAudioBeat | waitforaudiobeat(integer), Warnings: | Put Scripter into waiting state for the audio-beat event | WaitForAudioBeat 1 // waiting instruction, every beat master.color = randomin(32,255) // example of action - random color of master lc. restart // jump to script start, and immediatelly run into waiting state |
| WaitForManualBeat | waitformanualbeat(integer), Warnings: | Put Scripter into waiting state for the manual-beat event | WaitForManualBeat 1 // every manual beat displaypopup “Manual beat!” // ui message as an action restart // jump to script start, and immediatelly run into waiting state |
| WaitForTimerBeat | waitfortimerbeat(integer), Warnings: | Put Scripter into waiting state for the timer-beat event. Best approach for waiting scripts - put them into PangoScript tab, and use structure like: WaitFor… // your action, executes once waiting completed. Restart | WaitForTimerBeat 4 // waiting instruction master.brightness = randomin(0,100) // example of action - random brightness restart // jump to script start, and immediatelly run into waiting state |
| WaitForBeat | waitforbeat(integer, integer) | Put Scripter into waiting state . WaitForBeat instruction allows to wait for beat defined by the mask parameter. | WaitForBeat 7, 1 // any and every of beats displaypopup “Booom!” // ui message as an action restart // jump to script start, and immediatelly run into waiting state |
| WaitForEvent | Warnings: | WaitForEvent is a general-purpose waiting command that works in conjunction with the PulseEvent command. It must include at least one event name, defined as a string of your choice. Multiple event names can be specified. As soon as any of the listed events is pulsed, the script resumes execution. The main purpose of this command pair is to enable coordination and interaction between multiple scripts. The syntax: WaitForEvent “Event1” WaitForEvent “Event1”, “Event2”,“Event3” | // script 1: WaitForEvent “MyEventName” DisplayPopup “MyEventName pulsed” restart // script 2 PulseEvent “MyEventName”; // script 1: codename “DrumAction” var a a = 0 LoopPoint: WaitForEvent “Kick”, “Snare” DisplayPopup “Boom!” goto LoopPoint // script 2 DrumAction.a = 100 PulseEvent “Kick” // script 3 DrumAction.a = 200 PulseEvent “Snare” PulseEvent “Snare” |
| WaitForTC | waitfortc(integer, integer, integer, integer), Warnings: | The WaitForTC command puts the scripter into a waiting state until the specified TIMECODE time is reached. Once the incoming timecode passes the defined time, the waiting ends and the next command is executed. param(1) has current timecode time in seconds. | // NOTE: THIS IS NOT TIMELINE. THIS JUST SEQUENTIAL WAITING // at 00:00:00:000 WaitForTC 0,0,0,0 // hours, minutes, seconds, ms StartCue 1,1 // at 00:00:30:000 WaitForTime 0,0,30,0 // hours, minutes, seconds, ms StartCue 1,2 |
| WaitForPageChange | Warnings: | WaitForPageChange command put into waiting state, which ends when main content grid page is changed. It does not applicable to secondary grid. param(1) returns current page index (zero based) | WaitForPageChange |
12. Import into other tools
Attach or download openapi.json (OpenAPI 3.0.3) and import it into Postman, Insomnia, Bruno, or a code generator. The same file ships in <exe>\www\beyondswagger\openapi.json.
Example pages (cue grid, playlist, live control) ship in the installer www folder.
13. Common mistakes
- Using 127.0.0.1 from another device. Use the BEYOND PC LAN IP.
- Calling paths without the /apiv1/ prefix.
- Sending {“code”:“…”} to execscript instead of raw text/plain.
- Treating + as a space on ps/cmd. Use %20.
- POSTing ugc or preview to /apiv1/zone — that returns 400. Use execscript.
- Leaving static Root blank but expecting files next to BEYOND.exe instead of in <exe>\www. The 5.8 installer fills www.