Photo overlays are branded layers placed on top of your team photos. Build each overlay in the canvas editor with text fields, image elements, and dynamic variables (like team name and completion time). Set per-event auto-apply rules so the right overlay lands on the right photo without anyone picking it manually.
Getting started
Navigate to Photos > Photo settings from the sidebar. The page shows your overlay library and a button to create a new one.
How it works
Each overlay is a transparent layer with two kinds of elements: text fields (with content, font, size, and color) and images (logos, borders, frames). You arrange the elements on a canvas sized to the aspect ratio of your photos. When you save, the overlay is available to any photo from the Photos page.
Auto-apply rules let you wire each overlay to one or more events with an extra condition (game completed, not completed, or always). When a photo gets assigned to an event that matches a rule, the overlay applies on its own. Static text fields take their value from what you typed; dynamic variables like [Team Name] or [Completion Time] pull live data from the event session at render time.
Step-by-step guide
Browse and manage your overlay library
Open Photos > Photo settings. The library lists every overlay with its name and description, an aspect-ratio badge, and a three-dot menu with Edit overlay and Delete overlay actions. Click any row to open the editor, or use the three-dot menu to edit or delete. The empty state ("No overlays have been created.") appears when no overlays exist.
Create a new overlay
From Photos > Photo settings, click Create new overlay at the top right (icon-only on mobile). The editor opens with the heading Create new overlay. Fill in the top fields (Name of overlay and Aspect ratio are required; Description is optional, see the Reference section below for the full field details), add elements with the canvas editor, configure auto-apply rules if needed, and click Create overlay at the bottom.
Add a text element
In the editor, click Add text field. A new text element appears in the elements table and on the preview canvas. Configure its properties inline (Custom text, Font family, Font size, Color), then drag the element on the preview canvas to position it. The full property reference is in the Reference section below.
Use a dynamic variable in a text field
Add a text field (or open an existing one). In the Custom text input, type a variable name in square brackets, or scroll to the Supported dynamic variables section, click the copy icon next to the variable, and paste it in. Variables are replaced at render time, so the same text field can show different values for different photos. The full list of supported variables is in the Reference section below.
Add an image element
In the editor, click Upload image and pick an image file (any format your browser supports, single file at a time). The image appears on the canvas and in the elements table. Set the Image width and Image height numerically, then drag the element on the preview canvas to position it.
Reorder element layers
In the elements table, open the three-dot menu on any element and pick a layer action: Push to front brings the element above all others, Push to bottom sends it behind all others, and Delete element removes it. The preview canvas updates immediately.
Configure auto-apply
In the editor, scroll to the auto-apply section. Toggle Auto-apply by default on; the popover hint reads "Automatically apply this overlay when a photo is assigned to the selected games." In the Apply to games multi-select, pick one or more events. In the Apply when dropdown, pick a condition: Game was completed (photos for events the team completed), Game was not completed (photos for events the team didn't complete), or Always (every photo for the selected events, regardless of outcome). Save the overlay.
When a photo is later assigned to one of the selected events, the overlay applies on its own.
Preview the overlay
- The Preview canvas on the right side of the editor shows a live composite of every element on a representative background
- Drag elements directly on the preview to reposition them
- The preview updates as you change colors, sizes, and content
Save the overlay
- Click Create overlay when creating a new overlay, or Save overlay when editing
- Success message: Overlay created or Overlay updated
- The overlay is now available in the photo gallery's overlay dropdown
Delete an overlay
- In the library on Photo settings, open the three-dot menu on the overlay row
- Click Delete overlay
- Confirm
- Success message: Overlay deleted
Deletion is permanent.
Reference
Overlay library page
| Element | Description |
|---|---|
| Create new overlay | Top-right button (icon-only on mobile) |
| Library table | Name, aspect ratio, and per-row three-dot menu (Edit overlay, Delete overlay) |
| Empty state | "No overlays have been created." |
Overlay editor top fields
| Field | Required | Notes |
|---|---|---|
| Name of overlay | Yes | Required text input |
| Aspect ratio | Yes | Dropdown of seven preset ratios |
| Description | No | Free-text textarea |
Aspect ratio options
Pick the ratio that matches the photos your camera produces. The wrong ratio will letterbox the overlay or stretch it.
| Ratio | Orientation | Where you'll see it |
|---|---|---|
| 1:1 | Square | Instagram-style square photos. Good for social sharing. |
| 2:1 | Landscape | Cinematic / wide promotional shots. |
| 3:2 | Landscape | Classic DSLR / mirrorless photo ratio (35mm convention). |
| 4:3 | Landscape | Default photo ratio on most rear-facing phone cameras (iPhone, most Android). |
| 9:16 | Portrait | Vertical phone video. Instagram Stories, Reels, TikTok, YouTube Shorts. |
| 16:9 | Landscape | HD widescreen. Default for landscape phone video, YouTube, most modern displays. |
| 20:9 | Landscape | Ultra-wide modern phone screens (Samsung Galaxy S20+, Pixel 6+). Less common for photos, more for fullscreen captures. |
If you're not sure, 4:3 matches most rear-camera photos and 9:16 matches most portrait phone photos. Take one test photo, check its dimensions, and pick the closest ratio.
Text element properties
| Property | Description |
|---|---|
| Custom text | Static text or dynamic variable in square brackets |
| Font family | Dropdown of available fonts (a few restricted families are excluded) |
| Font size | Numeric pixel size |
| Color | Color picker with alpha channel for transparency |
Image element properties
| Property | Description |
|---|---|
| Image width | Numeric width |
| Image height | Numeric height |
Layer actions (three-dot menu)
| Action | Effect |
|---|---|
| Push to front | Brings the element above all others |
| Push to bottom | Sends the element behind all others |
| Delete element | Removes the element from the overlay |
Auto-apply controls
| Control | Description |
|---|---|
| Auto-apply by default | Toggle. Off means the overlay is only applied manually from the photo gallery |
| Apply to games | Multi-select dropdown of events |
| Apply when | One of Game was completed, Game was not completed, or Always |
Dynamic variables
| Variable | Inserts | Notes |
|---|---|---|
| [Game Name] | Event name | |
| [Team Name] | Team name | Requires game-tracker session |
| [Company Name] | Your company name | |
| [Location Name] | Company group / location name | |
| [Completion Time] | Recorded completion time | Requires game-tracker session |
| [Custom Time] | Host-entered custom completion time | Requires game-tracker session |
| [Time Remaining] | Time left at completion | Requires game-tracker session |
| [Number Of Hints] | Hints used during the session | Requires game-tracker session |
Save controls
| Button | When |
|---|---|
| Create overlay | New overlay |
| Save overlay | Editing an existing overlay |
| Cancel | Discards unsaved changes and returns to the library |
Good to know
- The aspect ratio should match the photos your camera produces. Most phones default to 4:3 or 16:9. Pick 9:16 for portrait-orientation photos.
- Color elements support an alpha channel (transparency), which is useful for subtle watermark-style text or semi-transparent badges.
- Dynamic variables that depend on a game-tracker session (Team Name, Completion Time, Custom Time, Time Remaining, Number Of Hints) only resolve when the photo is tied to a tracker session. They render as empty strings otherwise.
- The Apply when condition is independent of the Apply to games multi-select. You can have one overlay that applies to escape rooms 1 and 2 only when the team completed the event ("Win" overlay), and a different overlay for the same events when they didn't complete ("Better luck next time" overlay).
- Only one overlay auto-applies per event per condition. If multiple overlays match, only the most recently saved one applies. Manual selection from the photo gallery always overrides auto-apply.
- Overlays are applied non-destructively. The original photo is preserved and the overlay can be changed or removed at any time without losing the original capture.
- Image element fit options exist in the codebase but aren't surfaced in the editor today. Width and height are the only image-shape controls.
FAQ
Q: Can I have multiple overlays for the same event?
A: Yes. Save as many overlays as you need. Auto-apply matches one overlay per condition (completed / not completed / always); use the Select overlay dropdown on a photo to switch to any other overlay manually.
Q: How do dynamic variables like [Team Name] get filled in?
A: At render time, the platform replaces each variable with the live value from the photo's linked booking and game-tracker session. If the photo isn't tied to a tracker session, session-dependent variables (Team Name, Completion Time, Custom Time, Time Remaining, Number Of Hints) render as empty.
Q: I changed an overlay after photos were taken. Does the change apply to old photos?
A: Yes. Overlays are rendered live each time a photo is viewed or emailed, so old photos pick up the latest overlay design automatically. If you need a snapshot of an older design, save the photo with that overlay applied before changing the design.
Q: My auto-apply isn't kicking in. Why?
A: Check three things: Auto-apply by default is on, the event in question is in Apply to games, and Apply when matches the actual session result. If the team didn't complete the event but your condition is "Game was completed", the overlay won't apply.
Q: Can I use a video or animated GIF as an image element?
A: No. Image elements are static. Animated formats render as the first frame.
Q: Why are some fonts missing from the Font family dropdown?
A: A small list of fonts is intentionally excluded to keep overlays consistent and readable. Libre Baskerville, the Material Icons families, and M PLUS Rounded 1c don't appear.