#The whole idea in plain English
BrightAuthor:connected is where the presentation behaviour is built. BrightBridge distributes the finished published presentation. Companion then sends tiny network messages such as go_show to tell the running presentation what to do.
| Thing | Think of it as | Example |
|---|---|---|
| State | One playable item or behaviour | Holding slide, opening video or sponsor loop |
| Event | A rule that listens for something | When go_show arrives, move to Show |
| Super State | A reusable folder containing its own states and rules | Everything used during the Show section |
| UDP message | A short one-way network cue | go_break |
| Companion button | The labelled button that sends the cue | BREAK |
Companion button
-> UDP message: go_show
-> BrightSign player UDP Input event
-> transition into the Show Super State
-> Show's initial state starts#Before you build anything
#Create a Super State
- 1Add Super State
Drag a Super State onto the interactive playlist canvas.
- 2Name
Use the job it performs, such as Holding, Show, Break or Emergency—not a temporary media filename.
- 3Open it
Double-click the Super State to enter its internal playlist canvas.
- 4Add states
Place the images, videos, lists or other states that belong to this section inside it.
- 5Initial State
Choose the state that must play first whenever the Super State is entered.
- 6Return
Use the breadcrumb above the canvas to return to the parent Zone Content canvas.
- Put a cue on the Super State itself when it should be active while any state inside it is playing.
- Put a cue on an individual internal state when it should work only from that state.
- Use Super States to remove repeated global cues, not to hide an unexplained tangle of states.
- Nested Super States work, but one level is easier for a first show file.
#Make UDP cues change Super States
A UDP Input event listens for an exact message. The message is just text: no quotation marks and no JSON are required for a simple cue.
- 1Select the start
Select the state or Super State that should listen for the cue.
- 2Add event
Add a UDP Input event from that item.
- 3Specify UDP input
Enter a short, unique message such as go_show. Use lowercase letters, digits and underscores to keep typing predictable.
- 4Target
Connect the event to the destination Super State or state.
- 5Optional exact landing
Open the event and use Specify next state only if the cue must enter a particular internal state instead of the Super State's initial state.
- 6Save
Save the presentation, then repeat for the other required cues.
go_holding
go_show
go_break
go_emergency#Worked example for a temporary event
| Super State | Initial state inside it | Other states inside it |
|---|---|---|
| Holding | Holding Loop | Doors Open, Starting Soon |
| Show | Opening Video | Main Loop, Sponsor Sting |
| Break | Break Loop | Back in Five |
| Emergency | Safety Message | Blank Output |
- 1On the Holding Super State, add go_show to enter Show and go_emergency to enter Emergency.
- 2On the Show Super State, add go_break to enter Break, go_holding to return to Holding and go_emergency to enter Emergency.
- 3On the Break Super State, add go_show to return to Show, go_holding to return to Holding and go_emergency to enter Emergency.
- 4On the Emergency Super State, add only the approved recovery cue, such as go_holding. Keeping recovery deliberate prevents an accidental show cue from clearing a safety screen.
- 5Inside each Super State, add only the cues or Media End events needed by that particular internal sequence.
HOLDING go_holding
SHOW go_show
BREAK go_break
EMERGENCY go_emergency#Set the player's UDP receiver port
- 1UDP Receiver Port
Read the port the player will listen on. BrightAuthor:connected commonly defaults this to 5000.
- 2Record it
Put the approved port in the private show network sheet. Companion must send to this same number.
- 3Do not confuse ports
Receiver Port is for messages coming into the player. Destination Address and Destination Port are for UDP messages the presentation sends out.
- 4Save
Save and republish if you changed the receiver port.
#Create the Companion buttons
Companion versions use slightly different wording, but the setup is the same: a Generic TCP/UDP connection sends raw UDP text to the BrightSign player's local address and receiver port.
- 1Connection type
Search for and add Generic TCP/UDP.
- 2Protocol
Choose UDP rather than TCP.
- 3Target host
Enter the test player's local IP address from the private network sheet.
- 4Target port
Enter the BrightAuthor UDP Receiver Port—commonly 5000 unless the presentation uses another value.
- 5Save
Give the connection a useful name such as BrightSign - Stage Left, then save it.
- 1Button label
Name the outcome clearly, for example GO SHOW—not UDP 1.
- 2Action
Add the send-data action from the Generic TCP/UDP connection.
- 3Payload
Enter go_show as plain text, exactly as written in the BrightAuthor UDP Input event.
- 4Line ending
Use no carriage return or line feed for this simple cue unless the BrightAuthor event was deliberately built to include one.
- 5Save and copy
Test it, then duplicate the button and change both label and payload for Holding, Break and other approved cues.
| Button text | UDP payload | Target |
|---|---|---|
| HOLDING | go_holding | Holding Super State |
| GO SHOW | go_show | Show Super State |
| BREAK | go_break | Break Super State |
| EMERGENCY | go_emergency | Emergency Super State |
#Control more than one player
- For predictable targeting, create one unicast connection per player and add all required send actions to the same Companion button.
- Name every connection by physical outcome, such as Stage Left or Foyer—not only by IP address.
- Keep cue payloads identical across players only when their deployed presentations interpret them the same way.
- Network broadcasts may be blocked by VLANs, routers or Wi-Fi settings and can reach unintended players. Do not make broadcast the first show-critical design.
- If players must change on the same video frame, plain independent UDP triggers are not a frame-accurate synchronisation system. Use an approved BrightSign synchronisation design instead.
#Optional: send a value instead of only a cue
A UDP Input event can assign incoming text to a BrightAuthor User Variable. This is useful for operator-supplied labels or simple values, but it is an advanced step after ordinary state cues work.
lowerthird:Welcome to the showtitle:Welcome!!room:Main Stage!!session:Opening- Create the User Variable in the presentation before using it.
- Configure the UDP Input event to assign the input to variables using the BrightAuthor variable-input option.
- The name before the colon must match the variable name. Double exclamation marks separate multiple assignments.
- Test punctuation and spaces with the actual receiving state before using the value on a live screen.
- Never send passwords, tokens or personal data this way. Presentation User Variables are not a secret store.
#Publish it, then put it on the player
- 1Save the BrightAuthor project and publish the complete presentation output using the approved publishing method.
- 2In BrightBridge, open the Presentation library and upload the complete published output—not the BrightAuthor authoring project or a handful of media files.
- 3Open Content releases, select only the test player, choose the new presentation and run a fresh dry run.
- 4Apply the release once the preview is correct, then wait for the player to collect and start it.
- 5Confirm the expected initial screen before sending any Companion cue.
- 6Run the full cue test. Only then release the presentation to the remaining event players.
#Test every route before the event
#If the button does nothing
| What you see | Most likely cause | What to check |
|---|---|---|
| Nothing changes | Wrong address, port, payload or network path | Compare player IP, BrightAuthor Receiver Port and Companion target. Copy the cue text again. |
| Cue works from one screen only | Event is attached to one internal state | Move or add the global UDP event to the enclosing Super State. |
| It enters the wrong item | Wrong target or initial state | Check the event target, the Super State's Initial State and Specify next state. |
| One player changes | Only one connection/action worked | Inspect every Companion action and each player's address; test them separately. |
| Unexpected players change | Broadcast or reused target | Stop testing, confirm target addresses and change to explicit unicast connections. |
| Video restarts | The active cue targets the current state again | Decide whether repeat should restart, be ignored or target another state; test that design. |
| Variable stays unchanged | Assignment option or message format is wrong | Check variable name, colon, double-exclamation separators and the receiving event settings. |
| It worked yesterday | Presentation, player address or network changed | Confirm the player is running the expected published version and re-check the current network sheet. |
- 1Stop pressing the button repeatedly.
- 2Confirm the correct presentation is visibly running on the correct player.
- 3In Companion, read the exact target address, UDP port and payload.
- 4In BrightAuthor, read the UDP Receiver Port and the event's Specify UDP input value.
- 5Check whether the event is active from the state currently playing or from its enclosing Super State.
- 6Test one simple cue on one player. If it still fails, record the time, player, current state, expected target and Companion action before escalating.
#Caveats and quick answers
| Question | Short answer |
|---|---|
| Does Companion know the current BrightSign state? | Not from a simple outgoing UDP action. Add a deliberately designed feedback path if operators need trustworthy state feedback. |
| Is UDP guaranteed to arrive? | No. UDP does not provide delivery, ordering or acknowledgement. Use screen or player feedback to verify important cues. |
| Is port 5000 always correct? | No. It is a common BrightAuthor:connected default; the presentation's UDP Receiver Port is the source of truth. |
| Can one cue work from every item in a Super State? | Yes for suitable interactive events: place the event on the enclosing Super State. Keep state-specific events on the internal state. |
| Can a cue jump to an internal state? | Yes. Open the event and choose the desired internal target under Specify next state. |
| Can Super States be nested? | Yes, but entry and exit commands can run through each level. Keep the first version shallow and test command order. |
| Should we use the player's IP as a button label? | No. Label the physical outcome; keep addresses in the private network sheet and connection settings. |
| Can UDP come across the internet? | Do not expose this simple control receiver publicly. Use the organisation's approved secure network or remote-control design. |
| Do these labels match old BrightAuthor Classic exactly? | Not always. This guide follows BrightAuthor:connected; legacy BrightAuthor uses similar ideas but some screens and wording differ. |