VRStageLighting_DMX_Static component is the primary script for controlling DMX-enabled stage lighting fixtures in VRChat worlds. It provides industry-standard DMX channel control, fixture movement, intensity management, and visual properties.
Overview
This component enables fixtures to receive DMX data from external lighting control software through the VRSL Grid system. It supports both modern DMX channel addressing and legacy sector-based addressing.Inspector Properties
DMX Settings
Enables DMX mode for this fixture. When enabled, the fixture will respond to DMX data from the grid.
Optional ID number for organizational purposes. Useful for identifying fixtures in Udon scripts and matching IDs from DMX software.
The industry standard DMX channel this fixture begins on. Standard VRSL fixtures use 13 channels.
The Artnet universe to read DMX data from. Each universe contains 512 channels.
Enables 9-Universe mode for this fixture. The grid will be split by RGB channels with each section and color representing a universe. Only available on Vertical and Horizontal Grid nodes.
Enables the legacy ‘Sector’ based method of assigning DMX Channels. Keep unchecked to use industry standard DMX channels.
Enables single channel DMX mode for fixtures that only require one channel (e.g., Flasher fixtures).
(Legacy Mode) Chooses the DMX address sector. A sector is every 13 channels (Sector 0 = channels 1-13, Sector 1 = channels 14-26, etc.).
(Single Channel Mode) Specifies which of the 13 channels of the current sector to sample from.
Uses legacy GOBO range values for compatibility with older setups.
General Settings
Sets the overall intensity of the shader. Good for animating or scripting effects. Maximum value is controlled by
finalIntensity.Sets the maximum brightness value of Global Intensity. Useful for user-controlled brightness settings via UI.
Choose between setting Final Intensity for all meshes together, or individual mesh types separately.
Sets maximum brightness for volumetric meshes only (when Component Mode is enabled).
Sets maximum brightness for projection meshes only (when Component Mode is enabled).
Sets maximum brightness for fixture meshes only (when Component Mode is enabled).
The main color tint of the light. Leave at default white for pure DMX color control.
Movement Settings
Inverts the pan values (Left/Right movement) for moving head fixtures.
Inverts the tilt values (Up/Down movement) for moving head fixtures.
Enable this if the moving head fixture is mounted upside down.
Fixture Settings
Enables projection spinning (Udon Override Only).
Enables strobe effects via DMX control.
Tilt (Up/Down) offset/movement. Directly controls tilt in Udon Mode; acts as an offset in DMX mode.
Pan (Left/Right) offset/movement. Directly controls pan in Udon Mode; acts as an offset in DMX mode.
Selects which projection pattern is displayed. This is overridden in DMX mode.
Mesh Settings
Array of mesh renderers that make up the light fixture. At least one mesh is required.
Controls the radius of the mover/spot light cone.
Controls the length of the cone of a mover/spot light.
Controls the mesh length of the cone of a mover/spot light.
Maximum pan angle range for the fixture.
Maximum tilt angle range for the fixture.
Configuration Steps
Basic DMX Setup
- Add the
VRStageLighting_DMX_Staticcomponent to your fixture GameObject - Assign the fixture’s mesh renderers to the
objRenderersarray - Set the
dmxChannelto the starting channel for this fixture - Set the
dmxUniverseto match your DMX grid configuration - Ensure
enableDMXChannelsis checked
Legacy Sector Mode
If you’re using older VRSL setups:- Enable
useLegacySectorMode - Set the
sectorvalue instead ofdmxChannel - Each sector represents 13 channels (Sector 0 = Ch 1-13, Sector 1 = Ch 14-26, etc.)
Movement Configuration
For moving head fixtures:- Adjust
panOffsetBlueGreenandtiltOffsetBlueto correct the default position - Use
invertPanandinvertTiltif movement directions are reversed - Enable
isUpsideDownif the fixture is mounted inverted - Adjust
maxMinPanandmaxMinTiltto limit movement ranges
Example Setup
Standard Moving Head
Single Channel Flasher
Integration with Other Components
VRSL Grid
The DMX Static component reads data from the VRSL Grid system:- Grid nodes must be configured with matching universe settings
- Use Horizontal or Vertical grid modes for multi-universe setups
- Enable
nineUniverseModeon both grid and fixtures for RGB universe splitting
Local UI Control Panel
The component integrates withVRSL_LocalUIControlPanel for:
- Global intensity control
- Quality settings for volumetric and projection meshes
- DMX mode switching (Horizontal/Vertical/Legacy)
- Per-mesh-type intensity control when using Component Mode
Audio Link Integration
While this is the DMX component, you can switch fixtures between DMX and AudioLink modes using:- The Control Panel to enable/disable DMX rendering
- Udon scripts to toggle
enableDMXChannelsat runtime
Public Methods
_UpdateInstancedProperties()
Forces an update of all material properties. Call this after changing properties via Udon script._SetProps()
Initializes the MaterialPropertyBlock. Called automatically on Start.Udon Script Properties
Access these properties from Udon scripts:LightColorTint- Get/Set the light colorGlobalIntensity- Get/Set global intensity (0-1)FinalIntensity- Get/Set maximum intensity (0-1)ConeWidth- Get/Set cone radiusConeLength- Get/Set cone lengthSelectGOBO- Get/Set selected projection (1-8)Pan- Get/Set pan angle (0-360)Tilt- Get/Set tilt angle (0-360)IsDMX- Get/Set DMX enabled stateInvertPan- Get/Set pan inversionInvertTilt- Get/Set tilt inversion
Performance Notes
- Supports up to 5 mesh renderers per fixture for optimal performance
- Uses MaterialPropertyBlock for GPU instancing
- Component Mode allows separate intensity control for volumetric, projection, and fixture meshes
- Strobe effects can be disabled globally via Control Panel for performance
See Also
- AudioLink Static Component - AudioLink-controlled fixtures
- Grid Reader - OSC communication for DMX data
- Local UI Control Panel - User controls and settings