Skip to main content

Overlays and the live-value store

An overlay is a layer of graphics on top of a canvas, such as a scorebug, a game clock, team names or a permanent sponsor bug. It stays in place while hot buttons and sequences play underneath.

Overlays exist because match graphics live differently from everything else in the product. A hot button plays and then stops, while a scoreboard stays on screen for two hours and only its contents change.

Layout and values are separate​

So you edit an overlay's layout and its values in different places, at different times.

You build the layout once, before the match, in the overlay editor. During the match you leave the layout alone and change only the values.

The editor enforces this. While an overlay is on air its editor is locked, and the editor never changes a value. Values change only from the Live values panel or from a controller.

The live-value store links the two. It is a shared set of named fields, for example home_score or game_clock. A Value element in an overlay connects to a field by its name and updates the moment that field changes.

Because the link is by name only, controlling the match does not depend on the layout. If you build a new scorebug at half-time, the same controller key still adds one to the home score.

Field kinds​

Fields come in three kinds:

Number. A score, a foul count or a period. You either set the number directly or add to it, so one controller key can act as "+1 home".

Text. A team name, a player name or a sponsor caption.

Timer. A clock that counts up or down. Start it once, and every element connected to it shows the live time. A countdown timer stops at zero and only starts again after a reset.

How values change​

Two routes write to the same store.

The Live values panel is the manual route. You open it from the top bar on any page, and it docks on the right, so you can change values while running a show from another page. Each field shows only the controls for its kind:

  • − and + for a number, which you can also type.
  • One card per timer, with start, stop and reset.
  • A plain box for text.

Controller keys are the fast route, for use during play. You can bind each action of the panel to a key.

Both routes carry equal weight: they write to the same store, and an overlay only reads from it.

Teams and team stats​

A match has one sport, and the sport gives each team its team stats: the counts its rules use, such as timeouts, team fouls or yellow cards. Each stat comes with a start value, a maximum and the limit from the international rules. You can change these for a single match and add stats of your own.

A team has a name, a short name, a color, a logo and a team key, which is a short lower-case name such as nhf. ArenaDirector puts each team stat into the live-value store as a field named with the team key in front: nhf.timeouts. A team stat is an ordinary number field, so an overlay shows it and a controller key changes it just like a score you added yourself.

You can have as many teams as you like, with no fixed home and guest positions. A scorebug for two teams binds to the fields of whichever two teams are playing, and when the next match has a different visitor, you change the team.

When a count reaches its limit, the app flags the team or the player. Applying the rule is up to the referee.

Some stats reset to their start value at half time or at the end of a period, such as timeouts in handball. The rules of the sport decide which ones.

Derived values​

Some team values are calculated rather than counted. The app works them out from the active penalties: the number of players on the court, the time left on the penalty that ends first, and the number of active penalties. These derived values are fields too, so an overlay can show them, but you cannot write to them.

Each team has its own derived values. A strength strip such as "5 on 4" is two fields from two teams, side by side in one overlay.

Penalties and the reference clock​

A timed penalty counts down against one of the match's timers, usually the game clock. When the referee stops the clock, the penalties stop with it, and they start again when the clock does. A sport without a game clock, such as volleyball, has no timed penalties.

A penalty belongs to a team and can also name a player, if you keep players.

Players and the team store​

On the Pro plan, a team also has players, each with a number, a name, a position, their roles and a photo. You record a player's stats during the match, such as goals or cards. A stat with a duration, such as a two-minute suspension, also starts a penalty for the team.

A team's list of players is its roster. A roster element shows it in an overlay, either as a list or as a single player, and can also show the active penalties. One player can be in the spotlight, and a roster element can follow it, so the overlay shows whichever player you pick during the match.

The team store keeps teams outside of any match: the name, colors and logo, and on the Pro plan the players too. Every match uses the same store, so when a team plays again you add it from the store instead of typing it in again.

Matches​

A match is one game and everything its graphics need. It holds a name, a sport, the teams with their players, the fields and team stats, the values and penalties, the penalty clock and the overlays. A match's overlays can sit on different canvases.

One match is the active match. The Overlays page, the Live values panel, controller keys, hot buttons and sequences all work only on the active match. Each match keeps its own values, so when you go back to one, its scores, penalties and clock times are as you left them.

You cannot change the active match while an overlay is on air, because the switch would change the graphics on screen without you deciding to.

Venues often host the same kind of game every week, so you can reuse a match: swap in the visitor from the team store and reset the stats for the next game, and the fields and overlays stay. You can also create a new match as a copy of an existing one. The copy gets the fields and the overlays but no values.

Visibility​

On air is an overlay's master switch. While the overlay is on air, its visibility policy decides what happens when another item takes the canvas:

  • Always on top keeps the overlay above everything, takeovers included. Use it for a permanent sponsor bug or a clock that must never leave the screen.
  • Auto-hide on takeover hides the overlay while a hot button or a sequence owns the canvas and shows it again afterwards. Use it for a scorebug, or the scorebug ends up on top of a full-screen replay.

When several overlays are on air on one canvas, the overlay list decides the stacking: an overlay higher in the list shows on top.

When an overlay is showing on a canvas and nothing else is playing, the canvas's idle clip plays behind it.

Directives​

The policy is the general rule, and a directive is an exception for one clip. A hot button or a sequence cue carries the directive, which forces one overlay to show or hide while that content plays. When the content ends, the overlay goes back to its policy.

Directives cover two cases:

  • A replay that has to keep the scorebug on screen.
  • A full-screen takeover that has to hide a bug that is normally always on top.

A directive overrides the visibility policy for as long as its content plays.

See also​