Skip to main content

BrightSign Custom Plugin Management

  • February 27, 2026
  • 0 replies
  • 67 views

This article describes how to prepare, deploy, verify, and remove custom BrightScript plugins on BrightSign devices using Device Tasks in the Appspace console.

 

In this article:

 


 

Prerequisites

  • An Appspace account with permission to manage devices.

  • A BrightSign device registered and online in the Appspace console.

  • Appspace for Devices app version 2.94.0 or later.

  • BrightSign custom plugin device task templates (included in the attached .zip file) imported to the Device Tasks extension.

 


 

Update Plugins

 

To update plugins using BrightSign-specific templates, run brightsign_-update-plugins.admpkg to manage custom plugins.

 

What it does

  • Copies new or updated plugin files into the BrightSign plugins/ directory.

  • Overwrites existing files with the same name (used for version updates).

Typical use cases

  • Deploying a new custom plugin to one or more BrightSign devices.

  • Rolling out updated plugin versions.

  • Re‑pushing a clean copy of a plugin when a file is suspected to be corrupted.

Parameters

Plugins download URL - Download URL pointing to a .zip containing the plugin folders and files (Sample zip content: SetupWiFi/main.brs, SetupWiFi/cert.pem, CustomScript/main.brs)

Reboot upon completion - Reboots after executing the device task if value is set to True

 

Notes

  • Host a .zip file containing the plugin files

  • The plugin files should be prepared following this guide:

    1. Create the custom plugin directory called CustomScript

    2. Under the CustomScript directory, create a main.brs file

      Function CustomScript_Initialize(msgPort As Object, userVariables As Object, bsp as Object)
      LogCustomScriptMessage("CustomScript_Initialize - entry")
      return NewCustomScript(msgPort, userVariables, bsp)
      End Function

      Function NewCustomScript(msgPort As Object, userVariables As Object, bsp as Object)
      LogCustomScriptMessage(" @@@ CustomScript Plugin Appspace @@@ ")
      s = {}
      s.msgPort = msgPort
      s.userVariables = userVariables
      s.bsp = bsp
      s.ProcessEvent = CustomScript_ProcessEvent
      ' START OF CUSTOM SCRIPT ````````
      ' add your custom script here
      LogCustomScriptMessage("Sample custom script executed")
      ' END OF CUSTOM SCRIPT ``````````
      return s
      End Function

      Function CustomScript_ProcessEvent(event As Object) as boolean
      returnValue = false
      return returnValue
      End Function

      Sub LogCustomScriptMessage(message as string)
      customScriptSystemLog = createobject("roSystemLog")
      customScriptSystemLog.sendline("CustomScript|main.brs: " + message)
      End Sub

       

    3. Insert custom BrightScript logic only after the ' START OF CUSTOM SCRIPT marker and save the main.brs file.

    4. Add any other files in the CustomScript directory if necessary.

    5. To add additional plugins:

      • Repeat step 1 to 4 replacing CustomScript with a new plugin name (eg. SetupWiFi)

      • In step 2, replace all CustomScript code with the new plugin name (eg. SetupWiFi). The main.brs should look like:

        Function SetupWiFi_Initialize(msgPort As Object, userVariables As Object, bsp as Object)
        LogSetupWiFiMessage("SetupWiFi_Initialize - entry")
        return NewSetupWiFi(msgPort, userVariables, bsp)
        End Function

        Function NewSetupWiFi(msgPort As Object, userVariables As Object, bsp as Object)
        LogSetupWiFiMessage(" @@@ SetupWiFi Plugin Appspace @@@ ")
        s = {}
        s.msgPort = msgPort
        s.userVariables = userVariables
        s.bsp = bsp
        s.ProcessEvent = SetupWiFi_ProcessEvent
        ' START OF CUSTOM SCRIPT ````````
        ' add your custom script here
        LogSetupWiFiMessage("Sample custom script executed")
        ' END OF CUSTOM SCRIPT ``````````
        return s
        End Function

        Function SetupWiFi_ProcessEvent(event As Object) as boolean
        returnValue = false
        return returnValue
        End Function

        Sub LogSetupWiFiMessage(message as string)
        SetupWiFiSystemLog = createobject("roSystemLog")
        SetupWiFiSystemLog.sendline("SetupWiFi|main.brs: " + message)
        End Sub
    6. Zip the folders containing the plugin files. Please note that it’s important to zip the plugin folders as they will be used to determine the plugin name. When unzipped, the folder structure should look like this:

       

 

 


 

List Plugins

 

To list plugins using BrightSign-specific templates, run brightsign_-list-plugins.admpkg to view installed custom plugins.

 

What it does

  • Returns the list of plugin files present in the plugins/ directory on the device.

Typical use cases

  • Verifying which plugins are currently deployed before making changes.

  • Confirming that Update/Delete tasks actually updated the filesystem.

  • Investigating discrepancies between expected and actual plugin sets.

 


 

Relink Plugins

 

To relink plugins using BrightSign-specific templates, run brightsign_-relink-plugins.admpkg to re-establish connections for custom plugins.

 

What it does

  • Scans the plugins/ directory.

  • Regenerates plugins.brs based on the actual plugin files currently present.

  • Eliminates the need for manual editing of plugins.brs.

Typical use cases

  • Rectify devices that have the plugin files available but the plugins.brs was reset

Parameters

Reboot upon completion - Reboots after executing the device task if value is set to True

 


 

Delete Plugins

 

To delete plugins using BrightSign-specific templates, run brightsign_-delete-plugins.admpkg to remove custom plugins.

 

What it does

  • Removes specific custom plugin directories from the BrightSign plugins/ directory.

Typical use cases

  • Retiring obsolete plugins

  • Removing an erroneous plugins

  • Cleaning up old/unused plugins that might conflict or cause confusion.

Parameters

Plugin names- Case sensitive comma-separated value to specify the plugins to be deleted (Eg. SetupWiFi,CustomScript)

Reboot upon completion - Reboots after executing the device task if value is set to True

 


 

For more information on deploying device tasks, refer to the FAQ article How Do I Deploy an Advanced Device Task?.

 

Note

BrightSign custom plugin device task templates are provided in the attached .zip file and can be imported into the Device Tasks extension.

 

This topic has been closed for replies.