Quickstart Tutorial
This tutorial walks you through running your first MA2 plugin using Color Picker Update as an example. You’ll learn how to execute plugins, understand their behavior, and verify results.Before starting, make sure you’ve installed the plugins on your console.
What You’ll Build
By the end of this tutorial, you’ll have:- ✅ Created 77 color presets (11 colors × 7 groups)
- ✅ Generated 7 sequences with color cues
- ✅ Assigned sequences to executors on page 100
- ✅ Automated color selection for fixture groups A through G
Prerequisites
Create Fixture Groups
The Color Picker Update plugin expects groups 1-7 to exist in your show file. Create at least one group:
The plugin will create presets for groups 1-7. If you don’t have all 7 groups, the plugin will still work but only create presets for existing groups.
Running the Plugin
Execute the Plugin
From the command line, execute the plugin:Or click the plugin in the Plugin Pool window.You’ll immediately see feedback in the command line:
Watch the Progress
The plugin runs in Blind Edit mode and provides status updates:
Blind Edit mode ensures the plugin doesn’t affect your live output while it’s creating presets and sequences.
Understanding What Happened
Let’s explore the plugin’s workflow by examining the code:1. Configuration Variables
The plugin starts with configuration:- groups: Labels for the 7 groups (A-G)
- presetStart: Starting preset number (1)
- presetWidth: Spacing between group preset banks (16)
- seqStart: Starting sequence number (300)
2. Color Swatch Selection
colSwatchIndex maps to specific gel colors.
3. Preset Creation
- For each group (1-7), creates 11 color presets
- Uses gel swatch colors from the library
- Stores in preset pool 4 (Color)
- Labels presets like “A White”, “A Red”, “B White”, etc.
4. Sequence and Cue Creation
- Creates sequences 300-306 (one per group)
- Each sequence has 11 cues (one per color)
- Each cue references the appropriate color preset
5. Executor Assignment
- Assigns sequences to executors on page 100
- Executor 100.101 gets Sequence 300 (Group A)
- Executor 100.102 gets Sequence 301 (Group B)
- And so on…
Verifying Results
Check Presets
Open the Color Preset Pool:
- Press
[View]→[Presets] - Select preset type 4 (Color)
- You should see presets labeled “A White”, “A Red”, “A Orange”, etc.
Check Sequences
Open the Sequence Pool:
- Press
[View]→[Sequences] - Look for sequences 300-306
- Each sequence should be labeled “A” through “G”
Customizing the Plugin
You can modify the plugin behavior by editingColorPickerUpdate.lua:
Change Preset Starting Number
Change Sequence Numbers
Change Executor Page
Add More Colors
Expand the color list:How the Plugin Works: Code Flow
Here’s the complete execution flow:Common Issues
No Presets Created
Cause: Groups 1-7 don’t exist in your show file. Solution: Create at least one group before running the plugin.Executor Page is Empty
Cause: You’re on the wrong executor page. Solution: Navigate to page 100 using[Page] [1] [0] [0] [Please].
Plugin Runs But No Feedback
Cause: Console feedback is disabled. Solution: Enable command line feedback in console settings.Next Steps
Now that you understand how plugins work, try the other plugins:Pulse Generator
Create dynamic pulse sequences with interleaved patterns
Pulse Wave Generator
Generate complex directional wave effects
Plugin Workflow Summary
Delete Old Data
The plugin removes existing presets and sequences in the configured range to avoid conflicts
The plugin uses
gma.sleep() between operations to give the console time to process commands. This prevents overwhelming the command parser.Understanding Blind Edit Mode
The plugin uses Blind Edit mode to work safely:- Changes don’t affect live output
- You can keep running your show while the plugin works
- Only exits blind edit after all operations complete
You’ve successfully run your first MA2 plugin! You now understand how to execute plugins, interpret feedback, verify results, and customize behavior. Try experimenting with the other plugins in the collection to discover more advanced features.