Plugin Developer SDK for VirtualDJ

VirtualDJ offers a high level of customization. In addition of a long list of internal options, you can create your own interface or add some new features to VirtualDJ thanks to a SDK (Software Development Kit) defined for the following part of the software:
  • Skins
  • Translations
  • Controllers
  • Effects / Plugins


Plugins in VirtualDJ are .dll (or .bundle on Mac) files that extend the functions of the software such as Audio Effects, Video Effects, Video Transitions, Auto-Start Effects, Tools etc..

In order to create a plugin, you will have to use a compiler that let you create .dll or .bundle files.
On Windows, you can use the free Microsoft Visual Studio Express. On Mac, you can use the free XCode.
Plugins in VirtualDJ look a lot like COM objects, so any languages that can create COM objects can create a plugin for VirtualDJ (Visual Basic, C#, etc).
Still, we highly recommend to use C++, since that's the native language of the header files, and that's also the language in which you'll find all the help on the forums here.

Once you are ready to start creating your plugins, you'll need to download and include the header files that define the basic plugin structure.

You have 4 main categories of plugins:
  • General plugins: Plugins that are loaded on startup and perform actions on their own.
  • Dsp plugins: Audio effects that interact with the sound.
  • VideoEffect plugins: Video effects that add some special effect to the video output.
  • VideoTransition plugins: Video effects that define a new way to crossfade from one video to another.

You need to make your own plugin derive from the interface class IVdjPluginXXXX.
Then you should implement the DllGetClassObject() function to return a new instance of your plugin's class (derived from the IVdjPluginXXXX class).

List of GUID used for VirtualDJ plugins

The plugin must be copied in the following folders:
[PC] .\Documents\VirtualDJ\Plugins\{Sub-Folder} for VirtualDJ - 32bit (dll in 32bit)
[PC] .\Documents\VirtualDJ\Plugins64\{Sub-Folder} for VirtualDJ - 64bit (dll in 64bit)
[Mac] ./Documents/VirtualDJ/Plugins64/{Sub-Folder} for VirtualDJ - 64bit (bundle in 64bit)

where {Sub-Folder} depends on the nature of your plugin

Plugin SDK v8 - VirtualDJ 8 What's new?

Examples of source code: