Scripts vs. Plugins

Short answer: they're similar but not the same. Read on to understand what makes plugins different from scripts.

What is a plugin?

In the Q-SYS Core OS Platform, a plugin is essentially a custom component. Analogous to an app on your smart phone, the purpose of a plugin is to help extend or augment the inherent functionality offered by the Core OS Platform. Plugins are written using the lightweight, embeddable programming language of Lua (resulting in a file that has the .qplug extension), and then compiled into the C++ of the application layer of the Core OS Platform.

While many users can capture their needs by using one of our various scripting components, plugins offer several benefits over a simple script. First, version control and code collaboration between developers is much easier with plugins, which can save a lot of time and effort. Furthermore, plugins can offer more robust features: user interface and user experience control, scalability of controls, access to user configurable properties, internal wiring, and even reporting data into Core Manager or Enterprise Manager. Lastly, plugins can be a great way to make integration with various manufacturers easier.

When should I use a plugin?

What about User Components?

Let’s say you don’t quite have time for a plugin, but you do want combine multiple components into a reusable interface. You can use the Core OS Platform mechanism of User Components to do this. While it might seem like a shortcut when compared to a plugin, it’s more accurate to think of them as different solutions to different problems.

For example, if you want to standardize an audio processing chain for your commissioning engineers, simply wiring together existing components and dragging some controls out for ease of use would be well suited to a User Component, since it can act more like a template or jumping off point for the engineer to customize for the system. Controlling third party devices – which require scripting – benefit more from a plugin, since users can manipulate and interact with the plugin without fundamentally changing the function of it.

Tip: Consideration of the end user or IT specialist that will eventually be maintaining the system can help determine the appropriate components for the best user experience.