Skip to main content

v3.5.0

End of support for macOS 10.15

As the latest versions of Node.js have dropped support for older versions of macOS, we have been forced to discontinue support for macOS versions older than 11. If you are running macOS 10.15 or earlier, you will need to stay on Companion 3.4 or earlier.

Modernize Action Advancement

The action flow has been overhauled in this release to increase flexibility and prepare for some exciting developments planned for the next release.

The most noticeable change is the removal of the delay field from each action. Instead, we’ve introduced a new 'internal: Wait' action, which can be added just like any other action. This will delay subsequent actions in the stack.

Wait action example

Additionally, a new action called 'internal: Action Group' has been introduced. This is a different kind of action that contains other actions and will change how they are executed. The 'execution mode' option within the group allows you to choose between the default concurrent execution mode and a new sequential mode.

In this sequential mode, Companion will execute the actions one at a time, waiting for each action to complete before executing the next. However, not all modules report their action status, in which case the next action will execute immediately. We expect this to improve in future releases as modules get fixed up to support this better.

This change allows for more complex action sequences, ensuring tasks happen in the desired order without relying on fragile delays

More Pages and Page Management

This release introduces the long-awaited ability to have more than 99 pages in your Companion configuration. Additionally, we’ve added new tools to help you organize and reorder your pages. This offers greater flexibility, allowing you to add, manage, and navigate as many pages as you need.

New configurations will now default to a single page, while existing configurations will remain unchanged to prevent any disruptions.

There is a new panel to the right of the button grid where you can view and manage the pages you have setup. From here, you can easily add, rename and reorder the pages. Please note: When reordering pages, any associated actions or feedbacks will not automatically adjust to reflect the new order—you’ll need to update those manually.

Page sidebar

Improving DB resiliency

We've made significant improvements to the database format to enhance its resiliency and address the occasional issues where configurations were lost after a reboot. This change should not be noticeable to most users except for improved reliability.

The file format on disk has been switched from a simple JSON file to the industry-standard SQLite format. This also brings improved performance,when saving, SQLite will only write the modified portions of the file to disk, improving efficiency.

For those who are parsing or modifying the database file externally, the format will need to be updated to ensure continued compatibility.

Cleaner custom variables

Custom variables have been renamed for improved clarity, instead of $(internal:custom_test) you should now use $(custom:test).

While the old names are still functional, they will no longer be suggested in the UI.

This is purely a cosmetic update and does not affect their behavior.

And more

  • Support VEC foot-pedal as a surface
  • Check connection Stream Deck Studio devices for available firmware updates
  • Expanded keymap for emulators
  • Connection labels can be edited while connections are disabled
  • Add $(internal:uptime) variable
  • Performance improvements for variables
  • Performance improvements for button drawing
  • Option to dismiss 'resize grid to surfaces' prompt
  • Allow import and export to be done in YAML
  • Filename of exports can be customised
  • Command line option to disable admin ui password
  • Add one time event trigger
  • Support satellite over websockets
  • Connection of actions and feedbacks can be changed
  • Improve module status clarity
  • Improve custom variables collapsed view
  • Support HTTP GET for module variables
  • Backend code refactoring to make Companion more robust
  • Modules can now be built with node22
  • Polish getting started docs
  • Add Whats new modal and sidebar link

🐞 BUG FIXES

  • TCP protocols not disconnecting clients when disabling server
  • Allow some missing expression operators
  • TCP/UDP api not accepting button text or custom variables containing slashes
  • Surface rotation not being considered when checking if a surface overflows the grid bounds
  • Indicate when internal variable input fields have an invalid value
  • internal:bind_ip always undefined