- grandMA3 User Manual
- About the manual
- Device Overview
- grandMA3 consoles
- grandMA3 full-size
- grandMA3 full-size CRV
- grandMA3 light
- grandMA3 light CRV
- grandMA3 compact XT
- grandMA3 compact
- grandMA3 extension
- grandMA3 replay unit
- grandMA3 processing units
- grandMA3 Nodes
- grandMA3 Nodes DIN-Rail
- grandMA3 I/O Node
- grandMA3 I/O Node DIN-Rail
- grandMA3 onPC command wing XT
- grandMA3 onPC command wing
- grandMA3 onPC fader wing
- grandMA3 onPC rack-unit
- Screen allocation
- Keyboard shortcuts
- Keys
- . [Dot]
- <<< [GoFastBackward] | Black
- >>> [GoFastForward] | Flash
- - [Minus]
- + [Plus]
- / [Slash] | * [Asterisk/Multiply]
- At
- Assign
- Align
- Blind
- Clear
- Channel
- Copy
- Cue
- Down
- Delete
- Esc
- Edit
- Freeze
- Full
- Fixture
- Group
- Goto
- Go+ [large]
- Go- [large]
- Go+ | Temp
- Go- | Top
- Help
- Highlt [Highlight]
- If
- Learn | Rate1
- List
- MA
- Menu
- Move
- Next
- Numeric keys | arrows
- Oops
- On
- Off
- Pause [large]
- Pause | Fix
- Page+
- Page-
- Please
- Power
- Preset
- Prvw [Preview]
- Prev [Previous]
- Select
- SelFix [SelectFixture]
- Sequ [Sequence]
- Set
- Solo
- Stomp
- Store
- Thru
- Time
- Up
- Update
- U1
- U2
- X1 | Clone
- X2 | Link
- X3 | Grid
- X4 | Layout
- X5 | Step
- X6 | TC
- X7 | View
- X8 | DMX
- X9
- X10
- X11
- X12
- X13 | Phaser
- X14 | Macro
- X15 | Page
- X16 | Exec
- Xkeys
- Control elements
- Command area
- Master area
- Custom area
- Dual encoders
- Level wheel
- Grand master
- Executor elements
- Connector pin assignment
- grandMA3 consoles
- System Overview
- Standalone device
- Locally networked devices
- World server
- Parameters
- Calculate parameters
- Expand the amount of parameters
- First Steps
- Unpack the device
- Check scope of delivery
- Position the device
- Connect power
- Connect desk light
- Connect external screens
- Connect USB devices
- Connect DMX
- Connect Audio In
- Connect MIDI
- Connect LTC
- Connect Ethernet
- Connect DC Remote In
- Connect grandMA3 extension
- Connect grandMA3 fader wing
- Turn on the device the first time
- grandMA3 onPC
- System requirements grandMA3 onPC
- Windows installation
- Optimize Windows
- macOS installation
- Optimize macOS
- onPC Terminal App
- onPC settings
- Clean start
- Show File Handling
- Workspace
- User interface
- Configuration of displays
- Desk lock
- User-defined area
- Command line
- Control bar
- View bar
- Tables in general
- Trackpad window
- Gestures
- Command area
- Master controls
- Playback controls
- Displays in grandMA3 onPC
- Encoder bar
- Feature group control bar
- Encoder toolbar
- Calculator
- Playback bar
- Command wing bar
- Colors
- System
- Markers
- Color theme
- User interface
- Command Syntax and Keywords
- General syntax rules
- All keywords
- ; [Semicolon]
- / [Slash]
- . [Dot]
- .. [DotDot]
- = [Equal]
- <<< [GoFastBackward]
- >>> [GoFastForward]
- - [Minus]
- * [Asterisk]
- % [Percent]
- + [Plus]
- Absolute
- Acceleration
- Action
- ActivationGroup
- Align
- AlignTransition
- Appearance
- Assign
- At
- Attribute
- Black
- Blind
- Block
- BPM
- Call
- Camera
- Capture
- Certificate
- ChangeDestination
- Channel
- ChannelSet
- Chat
- Cleanup
- Clear
- ClearActive
- ClearAll
- ClearSelection
- Clone
- CmdDelay
- ColorTheme
- Configuration
- Console
- Cook
- Copy
- Cue
- CueAbs
- CueDelay
- CueFade
- CueInDelay
- CueInFade
- CueOutDelay
- CueOutFade
- CueRel
- CurrentUser
- CurrentUserProfile
- Cut
- DataPool
- Deceleration
- Decimal8
- Decimal16
- Decimal24
- Default
- Delay
- Delete
- DelGlobalVar
- DelUserVar
- Dismiss
- Display
- DMXAddress
- DMXReadout
- DMXUniverse
- Down
- Drive
- Echo
- Edit
- EditSetting
- Eject
- Effect
- EndIf
- Exchange
- Executor
- Export
- Extract
- Extension
- Fade
- Fader
- FaderHighlight
- FaderLowlight
- FaderMaster
- FaderRate
- FaderSolo
- FaderSpeed
- FaderTemp
- FaderTime
- FaderX
- FaderXA
- FaderXB
- FeatureGroup
- Filter
- Fix
- Fixture
- FixtureType
- Flip
- Flash
- Fog
- Font
- Freeze
- Full
- Gel
- GetGlobalVar
- GetUserVar
- Universal
- Go+
- GoStep
- Go-
- Goto
- Grid
- Group
- HardwareKey
- Help
- Helplua
- Hex8
- Hex16
- Hex24
- Highlight
- Houselights
- Hz
- If
- IfActive
- IfOutput
- IfProg
- Image
- Import
- Index
- Insert
- Integrate
- Interface
- Invert
- Invite
- IP
- JoinSession
- Key
- Keyboard
- KeyboardShortcuts
- Knockin
- Knockout
- Label
- Language
- Layout
- LearnRate
- LearnSpeed
- LeaveSession
- Library
- List
- ListOwner
- ListRef
- Load
- Loaded
- LoadShow
- Lock
- Login
- Logout
- Lowlight
- Lua
- LuaFile
- Macro
- Master
- MAtricks
- Media
- Menu
- Mesh3DS
- MessageCenter
- Monitor
- Move
- MyRunningMacro
- MyRunningSequence
- NewShow
- Next
- Node
- NonDim
- Normal
- Off
- On
- OnPC
- OSC
- Oops
- Output
- OutputLayer
- Page
- Part
- Park
- Paste
- Patch
- Pause
- Percent
- PercentFine
- Phase
- Physical
- Plugin
- Preset
- PresetUpdate
- Press
- Preview
- Previous
- Programmer
- Property
- PU
- Pyro
- Rate1
- Readout
- Reboot
- Recast
- Relation
- Relative
- Release
- ReloadPlugins
- ReloadUI
- Remote
- RemoteHID
- RemoteCommand
- Remove
- Reset
- Restart
- Root
- RTChannel
- RunningMacro
- RunningSequence
- SaveShow
- ScreenConfig
- ScreenContent
- Scribble
- Seconds
- Select
- Selection
- SelFix
- Sequence
- SendOSC
- Set
- SetGlobalVar
- SetUserVar
- Shuffle
- Shutdown
- SnapDelay
- SoftwareUpdate
- SoundChannel
- Solo
- SpecialExecutor
- Speed
- Speed1
- Stage
- Station
- Step
- Stomp
- Store
- Temp
- Texture
- Thru
- Time
- Timecode
- TimecodeSlot
- Toggle
- Top
- Transition
- Type
- UIChannel
- UiGridSelection
- Unblock
- Unlock
- Unpark
- Unpress
- Up
- Update
- UpdateContent
- User1
- User2
- User
- UserProfile
- Video
- Version
- View
- ViewButton
- Width
- World
- Xkeys
- Zero
- Extended command line syntax options
- Windows, Views, and Menus
- Add window
- Rearrange
- Store and recall views
- Remove windows from a screen
- Window settings
- Menus
- Change menu locations
- Pool windows
- Create pool object
- Label pool objects
- Move pool objects
- Insert pool objects
- Copy pool objects
- Lock and unlock pool objects
- Delete pool objects
- Networking
- Interfaces and IP
- Session
- Create a session
- Join a session
- Leave a session
- Invite to a session
- Dismiss from session
- Create a custom key
- Web remote
- SFTP connection
- DMX In and Out
- DMX port configuration
- Ethernet DMX
- Art-Net menu
- sACN menu
- Transmit DMX using Art-Net
- Single User and Multi User Systems
- Create User
- User settings
- Patch and Fixture Setup
- What are fixtures
- Add fixtures to the show
- MVR
- Live patch
- DMX sheet
- DMX universes
- Remove fixtures from the show
- Position fixtures in the 3D space
- Marker fixture
- 3D window
- Camera Pool
- Stages
- Classes and Layers
- Attribute definitions
- Activation group
- Feature group
- Parameter list
- DMX curves
- Operate Fixtures
- What is the programmer
- Fixture sheet
- Encoder resolution
- Using the color picker
- Selection bar
- Align
- Selection Grid
- Smart view
- Scribbles
- Create scribbles
- Edit scribbles
- Assign scribbles
- Delete scribbles
- Images
- Screenshots
- Appearances
- Create appearances
- Use appearances
- Delete appearances
- Groups
- Create groups
- Edit groups
- Delete groups
- Group masters
- Presets
- Preset pools
- Create new presets
- Recipe presets
- Use preset
- Edit or Update presets
- Worlds and Filters
- At filter
- Create a world
- Create a filter
- Use a world or filter
- Delete a world
- Delete a filter
- MAtricks and Shuffle
- Blocks
- Groups
- Wings
- Widths
- Shuffle
- Cues and Sequences
- What is tracking
- Look at cues and sequences
- Sequence settings
- Store cues
- Update cues
- Copy cues
- Cue recipes
- Store settings and preferences
- Play back cues
- Move in black
- Cue timing
- Renumber cues
- Delete cues
- Executors
- Assign object to an executor
- Executor configurations
- Running playbacks
- Special executors
- Masters
- Selected masters
- Grand masters
- Time Control
- Speed masters
- Playback masters
- Phasers
- Step bar
- Phaser editor
- Create sinus dimmer phaser
- Create circle phaser
- Create circle phaser around position
- Create color rainbow phaser
- Macros
- Create macros
- Edit macros
- Assign macros to keys and buttons
- Examples
- Agenda
- Agenda modes
- Create an agenda entry
- Edit an agenda entry
- Agenda toolbar
- Agenda edit menu
- Timecode
- What are timecode slots
- Timecode settings
- Track groups
- Time ranges and events
- Toggle view mode
- Record a timecode show
- Record an external timecode show
- Edit a timecode show
- Layouts
- Create a layout
- Edit layout
- Layout view settings
- Edit layout view
- Edit layout elements
- Layout encoder bar
- Plugins
- What is Lua?
- Lua function list
- Lua functions
- Object-Free API
- Cmd
- CmdIndirect
- CmdIndirectWait
- CmdObj
- Confirm
- DataPool
- Echo
- ErrPrintf
- ErrEcho
- Export
- GetPath
- GetShowFileStatus
- GetSubfixture
- GetSubfixtureCount
- HookObjectChange
- HostOS
- HostSubType
- HostType
- Import
- MessageBox
- ObjectList
- PopupInput
- Printf
- ProgressBar
- SelectedSequence
- SelectionCount
- SelectionFirst
- SerialNumber
- SelectionNext
- TextInput
- Timer
- UserVariables
- Version
- Object API
- Children
- Export
- HasActivePlayback
- Import
- ToAddr
- Object-Free API
- Data Pools
- System
- Date and time
- Clock
- Desk lights
- System information
- System monitor
- Info Window
- Sound Window
- Remote In and Out
- DC remotes
- MIDI remotes
- DMX remotes
- OSC
- PSN
- RDM
- Control other MA Devices
- grandMA3 Nodes
- MA Network Switch
- RemoteHID
- Update the Software
- Update grandMA3 consoles
- Update grandMA3 Nodes
- Update grandMA3 onPC windows hardware
- Update grandMA3 viz-key
- Network update
- Troubleshooting
- Fixture Types
- Import fixture types
- Import GDTF
- Build fixture types
- Insert fixture types
- Insert DMX modes
- Insert geometries
- Insert models
- Link models to geometries
- Link DMX modes to geometries
- Export fixture types
- Export GDTF
- Import fixture types
- File Management
- Import / Export Menu
- Folder Structure
- Shut down the System
- grandMA3 Quick Start Guide
- grandMA3 Quick Manual consoles
- grandMA3 Quick Manual processing units
- grandMA3 Quick Manual Nodes
- grandMA3 Quick Manual Nodes DIN-Rail
- grandMA3 Quick Manual onPC command wing XT
- grandMA3 Quick Manual onPC command wing
- grandMA3 Quick Manual onPC fader wing
- grandMA3 Quick Manual onPC rack-unit
- grandMA3 Quick Manual viz-key
- grandMA3 Quick Manual I/O Nodes
- Release Notes
New help version
The help version you selected belongs to an older software version. You may want to view the latest help version.
Lua Function List
The grandMA3 Lua API includes a variety of Lua functions.
The Lua functions included in the current software version can be exported into a list called "grandMA3_lua_functions.txt" in the gma3_library:
For more information read the HelpLua keyword topic.
List of grandMA3 Lua Functions
Object-Free API
Echo(string:format ...): nothing
ErrEcho(string:format ...): nothing
Printf(string:format ...): nothing
ErrPrintf(string:format ...): nothing
Cmd(string:format[,light_userdata:undo], ...): string:command execution result (Ok, Syntax Error, Illegal Command...)
CmdIndirect(string:cmd_to_execute[,light_userdata:undo[,light_userdata:target]]): nothing
CmdIndirectWait(string:cmd_to_execute[,light_userdata:undo[,light_userdata:target]]): nothing
HostOS(nothing): string::OsType
HostType(nothing): string::HostType
HostSubType(nothing): string::HostSubType
SerialNumber(nothing): string::SerialNumber
OverallDeviceCertificate(nothing): pCertificate::OverallCertificate
AddIPAddress(light_userdata: interface handle): nothing
DeleteIPAddress(light_userdata: interface handle): nothing
ReleaseType(nothing): string::release type
Version(nothing): string::version
BuildDetails(nothing): table:build details
GetShowFileStatus(nothing): Enums.ShowFileStatus
CmdObj(nothing): light_userdata:handle
Root(nothing): light_userdata:handle
Pult(nothing): light_userdata:handle
DefaultDisplayPositions(nothing): light_userdata:handle
Patch(nothing): light_userdata:handle
FixtureType(nothing): light_userdata:handle
ShowData(nothing): light_userdata:handle
ShowSettings(nothing): light_userdata:handle
DataPool(nothing): light_userdata:handle
MasterPool(nothing): light_userdata:handle
Programmer(nothing): light_userdata:handle
ProgrammerPart(nothing): light_userdata:handle
Selection(nothing): light_userdata:handle
CurrentUser(nothing): light_userdata:handle
CurrentProfile(nothing): light_userdata:handle
CurrentExecPage(nothing): light_userdata:handle to current ExecPage
SelectedSequence(nothing): light_userdata:handle
GetExecutor(integer:exec number): light_userdata:handle to executor, light_userdata: handle to page
LoadExecConfig(light_userdata: exec handle): nothing
SaveExecConfig(light_userdata: exec handle): nothing
SelectionFirst(nothing): int:first subfixture index,int:x, int:y, int:z
SelectionNext(int:current subfixture index): int: next subfixture index,int:x, int:y, int:z
SelectionCount(nothing): int: amount of selected subfixtures
SelectionComponentX(nothing): int: min,int:max,int:index,int:block,int:group
SelectionComponentY(nothing): int: min,int:max,int:index,int:block,int:group
SelectionComponentZ(nothing): int: min,int:max,int:index,int:block,int:group
GetSubfixtureCount(nothing): int:subfixture count
GetSubfixture(int:subfixture index): light userdata:reference to Subfixture object or nil
GetUIChannelCount(nothing): int:ui channel count
GetRTChannelCount(nothing): int:rt channel count
GetAttributeCount(nothing): int:attribute count
GetUIChannels(integer: subfixture index or light userdata: reference to Subfixture object[,boolean: as handles]): {array of UI channel indices or handles} or nil
GetRTChannels(integer: fixture index or light userdata: reference to Fixture object[,boolean: as handles]): {array of RT channel indices or handles} or nil
GetUIChannel(integer: channel UI index): {ChannelUI descriptor} or nil
GetRTChannel(integer: channel RT index): {ChannelRT descriptor} or nil
GetAttributeByUIChannel(integer: UI channel index): light userdata: reference to attribute or nil
GetAttributeIndex(string:attribute name): int:attribute index
GetUIChannelIndex(int:subfixture index,int:attribute index): int:ui channel index
GetChannelFunctionIndex(int:ui channel index,int:attribute index): int:channel function index
GetChannelFunction(int:ui channel index,int:attribute index): light_userdata: handle
GetSelectedAttribute(): light_userdata:attribute handle
GetTokenName(string:shortName): string:fullName
GetTokenNameByIndex(integer: token index): string:fullName
SetProgPhaser(number:uichannelindex,{[fade:<val>][delay:<val>][speed:<Hz>][repeat:<val>][phase:<val>][preset:lud]{[cfindex:<val>][preset:lud][trans:<val>][width:<val>][accel:<val>][decel:<val>][rel:<val>][abs:<val>]}*}): nothing
SetProgPhaserValue(number:uichannelindex,number:step,{[cfindex:<val>][preset:lud][trans:<val>][width:<val>][accel:<val>][decel:<val>][rel:<val>][abs:<val>]}): nothing
GetProgPhaser(number:uichannelindex,bool:phaser_only): {fade:<val>,delay:<val>,speed:<Hz>,repeat:<val>,phase:<val>,preset:lud,{cfindex:<val>,preset:lud,trans:<val>,width:<val>,accel:<val>,decel:<val>,rel:<val>,abs:<val>}*}
GetProgPhaserValue(number:uichannelindex,number:step): {cfindex:<val>,preset:lud,trans:<val>,width:<val>,accel:<val>,decel:<val>,rel:<val>,abs:<val>}
SetColor(string:colormodel(RGB,xyY,Lab,XYZ,HSB),double:tripel1,double:tripel2,double:tripel3,double: Brightness, double: Quality, bool: const_Brightness): int:flag
GetPresetData(light_userdata:handle(Preset)): array of phaser data
ColMeasureDeviceDarkCalibrate(): int:flag
ColMeasureDeviceDoMeasurement(): table:values
ObjectList(string:address): table of light_userdata:handle
FromAddr(string:address[, light_userdata:base handle]): light_userdata:handle
ToAddr(light_userdata:handle): string:address
IntToHandle(LuaInteger): light_userdata:handle
HandleToInt(light_userdata:handle): LuaInteger
StrToHandle(string: handle in H#... format): light_userdata:handle
HandleToStr(light_userdata:handle): string: handle in H#... format
IsObjectValid(light_userdata:handle): true or nil
Export(string:filename,table:export_data): bool:success
Import(string:filename): table:content
ExportJson(string:filename,table:export_data): bool:success
ExportCSV(string:filename,table:export_data): bool:success
HookObjectChange(function:callback,light_userdata:handle,light_userdata:plugin_handle[,light_userdata:target]): nothing
Unhook(function:callback): nothing
UnhookMultiple(function:callback(can be nil), light_userdata:handle to target(can be nil), light_userdata: handle to context (can be nil)): integer: amount of removed hooks
GetPath(string:path type | int as path type from enum 'PathType'[,bool: create]): string:path
GetPathType(light_userdata:target object[, integer: content type (Enums.PathContentType)]): path type name
GetPathOverrideFor(string:path type | int as path type from enum 'PathType', string:path[,bool: create]): string:overriden path
GetPathSeparator():
FileExists(string:path): boolean:result
SyncFS(nothing): nothing
DirList(string:path[,string:filter(s)]): array of {name:string, size:int, time:int}
StartProgress(string:name): light_userdate:handle
StopProgress(light_userdate:handle): nothing
SetProgressText(light_userdate:handle, string:text): nothing
SetProgressRange(light_userdate:handle, integer:start, integer:end): nothing
SetProgress(light_userdate:handle, integer:value): nothing
IncProgress(light_userdate:handle[, integer:delta]): nothing
GetPropertyColumnId(light_userdata:handle, string:propertyname): LuaInteger
Keyboard(integer: displayIndex, string:type('press','char','release'), (str:char(for type 'char') | str:keycode, bool:shift, bool:ctrl, bool:alt, bool:numlock)): nothing
Mouse(integer: displayIndex, string:type('press','move','release'), (str:button('Left', 'Middle', 'Right' for 'press', 'release') | integer:absX, integer:absY)):
Touch(integer: displayIndex, string:type('press','move','release'), integer:touchId, integer:absX, integer:absY):
Time(nothing): number:time
MouseObj(nothing): light_userdata:mouse object handle
TouchObj(nothing): light_userdata:touch object handle
KeyboardObj(nothing): light_userdata:keyboard object handle
Timer(function:name,number:dt,number:max_count,[function:cleanup],[light_userdata:context object]): nothing
FindBestDMXPatchAddr(light_userdata:patch,integer:starting address,integer:footprint): integer:absolute address
CheckDMXCollision(light_userdata:dmx mode,string:dmx address[,integer:count[,integer:breakIndex]]): boolean:true - no collision, false - collisions
CheckFIDCollision(integer:FID[,integer:count[,integer:type]]): boolean: true - no FID collisions, false - collisions
GetDMXValue(integer:address[,integer:universe, boolean: modePercent]): integer: dmx value
GetDMXUniverse(integer:universe[,boolean: modePercent]): table of integer: dmx values
SetLED(light_userdata:usb device object handle,table:led_values): nothing
GetButton(light_userdata:usb device object handle): table of bool:state
CreateUndo(string:undo text): light userdata: handle to undo
CloseUndo(light userdata: handle to undo): boolean: true if was closed, false - if it's still in use
DeskLocked(): boolean: true if desk is locked
RefreshLibrary(light userdata: Handle):
SelectionNotifyBegin(ligh_userdata:associated context):
SelectionNotifyObject(ligh_userdata:object to notify about):
SelectionNotifyEnd(ligh_userdata:associated context):
GlobalVars(): light userdata: global variables
UserVars(): light userdata: user variables
PluginVars([string: plugin name]): light userdata: plugin variables
AddonVars(string: addon name): light userdata: addon variables
SetVar(light userdata: variables, string:varname,value): bool:success
GetVar(light userdata: variables,string:varname): value
DelVar(light userdata: variables,string:varname): bool:success
CreateNeuralTraining(integer : InputLayerSize, integer: OutputLayerSize, table : TrainingValues, String : filename):
GetSample(string: type ('MEMORY', 'CPU', 'CPUTEMP', 'GPUTEMP', 'SYSTEMP', 'FANRPM')): number: current value in percent
GetFailedFrameCounter(enum: RealtimeSection): integer: current failed frame counter value for a given realtime section
SetRTTimeAllowance(enum: RealtimeSection, integer: new time budget in microseconds): nothing
RTSectionDeltaTime(enum: RealtimeSection): number: smoothed amount of microseconds
AddFixtures({mode:handle to DMX mode, amount:integer [,undo: string][,parent: handle][,insert_index:integer][,idtype:string][,cid:string][,fid:string][,name:string][,layer:string][,class:string][,patch:{array 1..8: string address}]}): true on success or nil
TextInput([string:title[,string:value[,integer:x[,integer:y]]]]): string:value
PopupInput({title:str,caller:handle,items:table:{{'str'|'int'|'lua'|'handle', name, type-dependent}...},selectedValue:str,x:int,y:int,target:handle,render_options:{left_icon,number,right_icon},useTopLeft:bool,properties:{prop:value}}): string:value
Confirm([string:title[,string:message[,integer:displayIndex]]]): boolean:result
GetDisplayByIndex(integer:display_index): light_userdata:display_handle
GetUIObjectAtPosition(integer:display_index, {x,y}:position): light_userdata:handle to UI object or nil
WaitObjectDelete(light_userdata:handle to UIObject[, number:seconds to wait]): boolean:true on success, nil on timeout
GetFocus(nothing): light_userdata:display_handle
GetFocusDisplay(nothing): light_userdata:display_handle
GetDisplayCollect(nothing): light_userdata:handle to DisplayCollect
FindBestFocus([light_userdata:handle]): nothing
FindNextFocus([bool:backwards(false)[,int(Focus::Reason):reason(UserTabKey)]]): nothing
CloseAllOverlays(nothing): nothing
GetTopModal(nothing): light userdata: handle to top modal overlay
GetTopOverlay(integer:display_index): light userdata: handle to top overlay on the display
WaitModal([number:seconds to wait]): handle to modal overlay or nil on failure(timeout)
SetBlockInput(boolean:block): nothing
FindTexture(string:texture name): light userdata: handle to texture found
MessageBox({title:string,[ backColor:string,][,timeout:number (ms)][,timeoutResultCancel:boolean][,timeoutResultID:number][ icon:string,][ titleTextColor:string,][ messageTextColor:string,] message:string[, display:(integer|lightuserdata)], commands:{array of {value:integer, name:string}}, inputs:{array of {name:string, value:string, blackFilter:string, whiteFilter:string, vkPlugin:string, maxTextLength:integer}}, states:{array of {name:string, state:boolean[,group:integer]}, selectors:{array of {name:string, selectedValue:integer, values:table[,type:integer 0-swipe, 1-radio]} }): {success:boolean, result:integer, inputs:{array of [name:string] = value:string}, states:{array of [name:string] = state:boolean}, selectors:{array of [name:string] = selected-value:integer}}
Object API
ToAddr(light_userdata:handle): string:address
Addr(light_userdata:handle,[light_userdata:base_handle[,bool:force parent-based address]]): text:numeric root address
AddrNative(light_userdata:handle[,light_userdata:base_handle[,bool:escape names]]): text:numeric root address
Index(light_userdata:handle): number:index
Parent(light_userdata:handle): light_userdata:parent_handle
Count(light_userdata:handle): number:child_count
MaxCount(light_userdata:handle): number:child_count
Compare(light_userdata:handle, light_userdata:handle): bool:isEqual, String:whatDiffers
Resize(light_userdata:handle,number size): nothing
Ptr(light_userdata:handle,number:index(1-based)): light_userdata:child_handle
CmdlinePtr(light_userdata:handle,number:index(1-based)): light_userdata:child_handle
Children(light_userdata:handle): table of light_userdata:child_handles
CurrentChild(light_userdata:handle): light_userdata:current child or nil
Create(light_userdata:handle,number:child_index(1-based)[,string:class[,light_userdata:undo]]): light_userdata:child_handle
Append(light_userdata:handle[,string:class[,light_userdata:undo]]): light_userdata:child_handle
Aquire(light_userdata:handle[,string:class[,light_userdata:undo]]): light_userdata:child_handle
Delete(light_userdata:handle,number:child_index(1-based)[,light_userdata:undo]): nothing
Insert(light_userdata:handle,number:child_index(1-based)[,string:class[,light_userdata:undo]]): light_userdata:child_handle
Remove(light_userdata:handle,number:child_index(1-based)[,light_userdata:undo]): nothing
Copy(light_userdata:dst_handle,light_userdata:src_handle[,light_userdata:undo]): nothing
HasParent(light_userdata:handle,handle:object to check): nothing
Changed(light_userdata:handle,string:change level enum name): nothing
IsEmpty(light_userdata:handle): boolean:returns true if objects is considered 'empty'
Set(light_userdata:handle,string:property_name,string:property_value): nothing
SetChildren(light_userdata:handle_of_parent,string:property_name,string:property_value[,bool:recursive (default: false)]): nothing
Get(light_userdata:handle,string:property_name[,enum{Roles}:role]): string:property_value (if 'role' provided - always string)
PropertyCount(light_userdata:handle): number:property_count
PropertyName(light_userdata:handle,number:property_index): string:property_name
PropertyType(light_userdata:handle,number:property_index): string:property_type
IsValid(light_userdata:handle): bool:result
IsClass(light_userdata:handle): string:class_name
GetClass(light_userdata:handle): string:class_name
GetChildClass(light_userdata:handle): string:class_name
GetAssignedObj(light_userdata:handle): light_userdata:handle
HasEditSettingUI(light_userdata:handle): bool:result
HasEditUI(light_userdata:handle): bool:result
GetUIEditor(light_userdata:handle): string:ui_editor_name
GetUISettings(light_userdata:handle): string:ui_settings_name
FindParent(light_userdata:search_start_handle,string search_class_name): light_userdata:found_handle
Find(light_userdata:search_start_handle,string search_name[,string search_class_name]): light_userdata:found_handle
FindRecursive(light_userdata:search_start_handle,string search_name[,string search_class_name]): light_userdata:found_handle
FindWild(light_userdata:search_start_handle,string search_name): light_userdata:found_handle
Import(light_userdata:handle,string:file_path,string:file_name): bool:success
Export(light_userdata:handle,string:file_path,string:file_name): bool:success
GetExportFileName(light_userdata:handle[,bool:camel_case_to_file_name]): string:filename
Load(light_userdata:handle,string:file_path,string:file_name): bool:success
Save(light_userdata:handle,string:file_path,string:file_name): bool:success
CommandCall(light_userdata:handle,light_userdata:dest_handle,bool:focusSearchAllowed(default:true)): nothing
CommandAt(light_userdata:handle): nothing
CommandDelete(light_userdata:handle): nothing
CommandStore(light_userdata:handle): nothing
CommandCreateDefaults(light_userdata:handle): nothing
SetFader(light_userdata:handle,{[double:value[0..100]], [bool:faderDisabled], [string:token(Fader*)]}): nothing
GetFader(light_userdata:handle, {[string:token(Fader*)], [integer:index]}): double:value[0..100]
GetFaderText(light_userdata:handle, {[string:token(Fader*)], [integer:index]}): string:text
HasActivePlayback(light_userdata:handle): boolean:result
InputSetTitle(light_userdata:handle,string:name_value): nothing
InputSetEditTitle(light_userdata:handle,string:name_value): nothing
InputSetAdditionalParameter(light_userdata:handle,string:parameter name,string:parameter value): nothing
InputRun(light_userdata:handle): nothing
InputCallFunction(light_userdata:handle,string:function name[,...parameters to function...]): <depends on function>
InputHasFunction(light_userdata:handle,string:function name): true or nil
AddListStringItem(light_userdata:handle,string:name,string:value[,{[left={...}][right={...}]}:appearance]): nothing
AddListPropertyItem(light_userdata:handle,string:name,string:value,light_userdata:target handle[,{[left={...}][right={...}]}:appearance]): nothing
AddListNumericItem(light_userdata:handle,string:name,number:value[,light_userdata:base handle[,{[left={...}][right={...}]}:appearance]]): nothing
AddListLuaItem(light_userdata:handle,string:name,string:value/function name,lua_function:callback reference[,<any lua type>:argument to pass to callback[,{[left={...}][right={...}]}:appearance]]): nothing
AddListObjectItem(light_userdata:handle,light_userdata:target object[,(string: explicit name[,{[left={...}][right={...}]}:appearance] | enum{Roles}: role [,:boolean: extended_name[,{[left={...}][right={...}]}:appearance]])]): nothing
AddListStringItems(light_userdata:handle, table{item={[1]=name,[2]=value},...}): nothing
AddListPropertyItems(light_userdata:handle, table{item={[1]=name,[2]=property name,[3]=target handle},...}): nothing
AddListNumericItems(light_userdata:handle, table{item={[1]=name,[2]=integer:value},...}): nothing
AddListLuaItems(light_userdata:handle, table{item={[1]=name,[2]=value/function name,[3]=callback reference[,[4]=argument of any lua type to pass to callback]},...}): nothing
AddListChildren(light_userdata:handle, light_userdata:parent[,enum{Roles}:role]): nothing
AddListChildrenNames(light_userdata:handle, light_userdata:parent[,enum{Roles}:role]): nothing
AddListRecursiveNames(light_userdata:handle, light_userdata:parent[,enum{Roles}:role]): nothing
RemoveListItem(light_userdata:handle,string:name): nothing
ClearList(light_userdata:handle): nothing
SelectListItemByName(light_userdata:handle,string:name_value): nothing
SelectListItemByValue(light_userdata:handle,string:value): nothing
SelectListItemByIndex(light_userdata:handle,integer:index(1-based)): nothing
IsListItemEnabled(light_userdata:handle,integer:index): nothing
SetEnabledListItem(light_userdata:handle,integer:index[,bool:enable(default:true)]): nothing
IsListItemEmpty(light_userdata:handle,integer:index): nothing
SetEmptyListItem(light_userdata:handle,integer:index[,bool:empty(default:true)]): nothing
GetListItemValueStr(light_userdata:handle,integer:index): string:value
SetListItemValueStr(light_userdata:handle,integer:index,string:value): nothing
GetListItemValueI64(light_userdata:handle,integer:index): integer:value
GetListItemName(light_userdata:handle,integer:index): string:name
SetListItemName(light_userdata:handle,integer:index,string:name): nothing
GetListItemAppearance(light_userdata:handle,integer:index): {left={AppearanceData}, right={AppearanceData}}
SetListItemAppearance(light_userdata:handle,integer:index,{[left={...AppearanceData...}][right={...AppearanceData...}]}): nothing
GetListItemButton(light_userdata:handle,integer:index): light userdata:button or nil if not visible
GetListSelectedItemIndex(light_userdata:handle): integer:1-based index
GetListItemsCount(light_userdata:handle): integer:amount of items in the list
FindListItemByValueStr(light_userdata:handle,string:value): integer:1-based index
FindListItemByName(light_userdata:handle,string:value): integer:1-based index
GridGetBase(light_userdata:handle to UIGrid (or derived)): light_userdata:handle to GridBase
GridGetData(light_userdata:handle to UIGrid (or derived)): light_userdata:handle to GridData
GridGetSelection(light_userdata:handle to UIGrid (or derived)): light_userdata:handle to GridSelection
GridGetSelectedCells(light_userdata:handle to UIGrid (or derived)): array of {r,c, r_UniqueId,r_GroupId,c_UniqueId,c_GroupId} cells in the selection
GridGetSettings(light_userdata:handle to UIGrid (or derived)): light_userdata:handle to GridSettings
GridGetDimensions(light_userdata:handle to UIGrid (or derived)): {r,c}
GridGetScrollOffset(light_userdata:handle to UIGrid (or derived)): {v = {index,offset}, h={index,offset}}
GridSetColumnSize(light_userdata:handle to UIGrid (or derived), integer: columnId, integer:size in pixels): nothing
GridGetScrollCell(light_userdata:handle to UIGrid (or derived)): {r,c}
GridGetCellData(light_userdata:handle to UIGrid (or derived), {r,c}:cell): {text, color={text,back}}
GridIsCellVisible(light_userdata:handle to UIGrid (or derived), {r,c}:cell): boolean
GridCellExists(light_userdata:handle to UIGrid (or derived), {r,c}:cell): boolean
GridIsCellReadOnly(light_userdata:handle to UIGrid (or derived), {r,c}:cell): boolean
GridScrollCellIntoView(light_userdata:handle to UIGrid (or derived), {r,c}:cell): nothing
GridGetCellDimensions(light_userdata:handle to UIGrid (or derived), {r,c}:cell): {x,y,w,h}
GridGetParentRowId(light_userdata:handle to UIGrid (or derived), integer: rowId): parent row id (integer) or nil (if there's no parent)
GridsGetExpandHeaderCell(light_userdata:handle to UIGrid (or derived)): {r,c} or nil
GridsGetLevelButtonWidth(light_userdata:handle to UIGrid (or derived), {r,c}:cell): width in pixels or nil
GetOverlay(light_userdata:handle to UIObject): light_userdata:overlay_handle
GetDisplay(light_userdata:handle to UIObject): light_userdata:display_handle
GetDisplayIndex(light_userdata:handle to UIObject): integer:display_index
GetScreen(light_userdata:handle to UIObject): light_userdata:handle
GetUIChildrenCount(light_userdata:handle to UIObject): integer:count
ClearUIChildren(light_userdata:handle to UIObject): nothing
GetUIChild(light_userdata:handle to UIObject, integer:index(1-based)): light_userdata:handle to UIObject
UIChildren(light_userdata:handle to UIObject): array of references to children of passed UIObject
WaitInit(light_userdata:handle to UIObject[, number:seconds to wait[, bool: force to re-init, default - false]]): boolean:true on success, nil on timeout or if object doesn't exist
WaitChildren(light_userdata:handle to UIObject, integer:expected amount of children, [, number:seconds to wait]): boolean:true on success, nil on timeout or if object doesn't exist
HookDelete(light_userdata:handle to UIObject, function:callback to invoke on deletion[,any:argument to pass by]): boolean:true on success, nil on failure
ShowModal(light_userdata:handle,callback:function): nothing
SetPositionHint(light_userdata:handle,integer:x,integer:y): nothing
ScrollIsNeeded(light_userdata:handle,integer:scroll type (see 'ScrollType' enum)): boolean:true if scroll of the requested type is needed
ScrollDo(light_userdata:handle,integer:scroll type (see 'ScrollType' enum), integer:scroll entity (item or area, see 'ScrollParamEntity' enum), integer: value type (absolute or relative, see 'ScrollParamValueType' enum), number: value to scroll (items - 1-based), boolean: updateOpposite side): boolean:true scroll
ScrollGetInfo(light_userdata:handle,integer:scroll type (see 'ScrollType' enum)): {index(1-based), offset, visibleArea, totalArea, itemsCount, itemsOnPage} or nil
ScrollGetItemSize(light_userdata:handle,integer:scroll type (see 'ScrollType' enum), integer: 1-based item idx): integer:size of the item of nil
ScrollGetItemOffset(light_userdata:handle,integer:scroll type (see 'ScrollType' enum), integer: 1-based item idx): integer:offset of the item or nil
ScrollGetItemByOffset(light_userdata:handle,integer:scroll type (see 'ScrollType' enum), integer: offset): integer:1-based item index
UILGGetColumnWidth(light_userdata:handle to UILayoutGrid, idx:integer): size:integer
UILGGetRowHeight(light_userdata:handle to UILayoutGrid, idx:integer): size:integer
UILGGetColumnAbsXLeft(light_userdata:handle to UILayoutGrid, idx:integer): x:integer
UILGGetColumnAbsXRight(light_userdata:handle to UILayoutGrid, idx:integer): x:integer
UILGGetRowAbsYTop(light_userdata:handle to UILayoutGrid, idx:integer): y:integer
UILGGetRowAbsYBottom(light_userdata:handle to UILayoutGrid, idx:integer): y:integer
OverlaySetCloseCallback(light_userdata:handle to Overlay, callbackName:string[, ctx:anything]): nothing