BeatKhana Development

Dynamic Overlay component reference

Every palette component, its visibility/data behavior, and all inspector option families.

Visibility and binding rules

A node renders only when Visible is enabled and every parent component/container is rendered. Lock affects editing only. Most data components still render their layout when data is absent, using empty text, zeroes, placeholders or waiting messages as appropriate. Live-only gameplay values update when TournamentAssistant has an active matched player; persisted song… result fields come from submitted match results. Indexes are zero-based in the inspector. Context binding inherits the current team/player/map/action from a repeater or reusable component; Index uses the node's own index.

Replay/stream media shows its waiting state until a usable player identity or source exists. Upcoming-map components show the next picked map, or a replay-pending map. Winner/result components become meaningful after official results exist. Donation components subscribe only when used.

Options common to nodes

  • Geometry/state: name, X, Y, width, height, z-index, rotation, scale X/Y, transform origin X/Y, visible, lock, radius, opacity and align-to-canvas actions.
  • Appearance: background/primary/secondary/accent/font/border/shadow colors as supported; border width/style; padding; backdrop/asset blur; blend mode; shadow blur/spread/X/Y; object position; gradient type/angle; and uploaded asset.
  • Text: template, font, size, weight, color, alignment, letter spacing, line height, stroke width/color, wrap, uppercase/lowercase/capitalize, and number animation (flow, fast, sudden).
  • Binding: team source/index, player source/index, map source/index, action index and reusable source document. Map sources are context, pool index, current TA map, pick/ban action, next-to-play or Lightshow current song.
  • Repeaters/grids: data source, preview count, gap, columns (0 balances automatically), max columns (0 unlimited), card ratio, layout and reusable item design.
  • Media: source kind/URL/channel/asset, fill or fit, object position, autoplay, loop, controls, mute, background and waiting/fallback asset.

Layout

  • Panel (shape-panel) is a styled rectangle/glass surface. Divider (shape-line) is the same shape family sized as an accent line. Both use shape, colors, border, radius, shadow and shared geometry.
  • Gradient (shape-gradient) is a two-color background; choose linear/radial behavior and gradient angle plus shared colors.

Text and identity

  • Free Text (text-free) renders literal and {{placeholder}} template text.
  • Match Coordinators, Match Referees, Match Casters and Match Stream Hosts render comma-separated staff names from the selected match and are empty when none are assigned.
  • Team Name and Team Seed use the bound team. Team Image resolves that team's logo and otherwise shows its fallback/placeholder.
  • Player Name, Pronouns, Player Avatar and Player Flag use the bound active player. Pronouns fall back to they/them; the flag uses BeatLeader country then ScoreSaber country; images use configured fallbacks when absent.

All text controls use the shared text options. Identity nodes additionally expose their team/player binding; image nodes expose image role, asset URL, fallback URL and placeholder label.

Scores and gameplay

  • Map Points (team-points) renders filled/unfilled series icons from current team points. Options: total/max points, icon size, gap, LTR/RTL direction and custom empty/filled assets.
  • Team Score (team-score-number) is the team's current map-point number. Team Replays (team-replays) renders remaining/used replay icons; options are icon size, gap, emptying direction, Material icon and unused/used assets.
  • Player Score, Modified Score, Accuracy, Misses, Bad Cuts and Combo are live TA fields for the bound player. They stay blank/zero until score telemetry exists and use all text/binding options.
  • Health Bar uses live player health; Song Progress uses the authoritative current-song clock. Their editor-only Demo progress previews layout when live data is absent.
  • Expanding Tug grows only the leading team away from center; Push Tug moves the divider. Both compare team accuracy and expose the accuracy lead percentage required to reach an edge plus primary/secondary/accent/background colors.
  • Accuracy Graph displays recent bound-player accuracy history; historyPoints controls retained points.

Map cards and picks/bans

Every map card can select its map source/design and toggle song progress/details, flair, artist, mapper, difficulty, BPM, NJS, NPS, duration, map number and actioner. Shared card colors and fallback cover apply throughout. World Cup cards add large/small/compact size, facing direction, team-one/team-two pick colors, background/text/muted/tiebreaker colors and category. BSTS cards add background and gameplay-modifier visibility.

  • BeatKhana Classic, BeatKhana Broadcast, BeatKhana Flow, BeatKhana Poster and BeatKhana Compact are the five BeatKhana layouts. Current BeatKhana Card binds to the TA map and enables progress.
  • BSTS Default, BSTS Map Flow and BSTS Map Overview reproduce the live, flow and pool-overview sizes.
  • BSWC 2023, BSWC 2024, BSWC 2025, BSWC 2026, BSWC 2026 Small and BSWC 2026 Compact provide their named World Cup treatments/sizes.
  • Lightshow Current Song is a BSWC compact-style card driven by the active Lightshow Showcase and updates as that player changes map.
  • Map Card Section displays the selected pool as a balanced grid. Picks & Bans Grid adds live action, tiebreaker and winner states. Configure preview count, gap, aspect ratio, layout/max columns and map numbers/actioner.
  • Picks & Bans Flow Overview centers the current action with previous/upcoming items. Configure item size, gap, visible radius, completed/upcoming opacity and labels. Picks & Bans Timeline lays the full sequence horizontally/vertically with placeholder count and actioner visibility.
  • Actioner Avatar and Actioner Name use the selected/inherited action. Action Type shows pick, ban, tiebreaker or pending.
  • Map Cover, Map Name, Song Artist, Mapper, Difficulty, Characteristic, Duration, BPM, NJS, NPS, BeatSaver Key, Map Hash, Map Flair, Map Number and Map Metadata are independent fields for building reusable cards. They use the shared map binding; Map Flair also exposes flair shape.
  • Upcoming Map Card, Upcoming Map Image, Upcoming Map Name, Upcoming Map Artist, Upcoming Map Mapper and Upcoming Map Details resolve the next playable or replay-pending map and stay empty/waiting when none exists.
  • Map State reports available/picked/next/replay/played/banned/tiebreaker/current. Map Winner and Map Winner Image show official winner data after submission.
  • Team Map Score, Team Map Accuracy and Map Score Difference use the bound team's persisted official map result. Player Map Score and Player Map Accuracy use the bound persisted player result.
  • Map Replay Count, Replay Caller, Replay Caller Image, Replay Score To Beat and Replay Accuracy To Beat describe replay history/targets and are empty where no replay exists.

Match and broadcast

  • Match Title and Match Status render selected-match identity/status.
  • Team Card combines logo, seed, name and points; options include team binding, max points and direction. Player Panel combines avatar, identity and live score for a bound player.
  • Match Summary renders official map rows and final series score; configure maximum maps, map covers and player scores. Winner Banner renders the declared winner/current leader with configurable title and image.
  • Countdown targets an independent duration, match scheduled time or manual date/time. Configure label, fallback minutes, always-show-hours and number animation.
  • Current Match Box, Previous Match and Up Next use BeatKhana bracket cards for current/adjacent matches. Bracket Matches renders the ordered bracket around the current match with maximum match count.
  • Player Results and Team Results show persisted aggregate results. Live Player Overview and Live Team Overview show TA telemetry. The custom statistics variants can switch between persisted and live source.
  • Active Player Section repeats a reusable design for connected TA player slots. Confirmed Active Players repeats confirmed map roster members even without TA. Inactive Players repeats roster members not selected for the map. Team Section repeats teams. Picks & Bans Action Section repeats actions. Each uses the repeater options described above.

Tournament

  • Prize Pool shows live public donation total. Configure label, currency visibility/override/position, goal visibility/value/prefix, progress and 0–6 decimal places. It subscribes to donation updates only while present.
  • Tournament Logo and Tournament Background resolve tournament imagery with image/fallback options.
  • Tournament Name, Tournament Status, Tournament Description and Tournament Dates render their public tournament fields; description enables wrapping by default.

Media

  • Image / GIF renders an uploaded/URL asset. Choose image role (asset, player, player flag, team, map cover/winner/replay caller, actioner, tournament logo/background), fit, fallback and placeholder.
  • Video Asset plays an uploaded looping native video. LL-HLS Player plays a low-latency HLS URL. WebRTC Player plays a WHEP URL. Twitch Player embeds a channel. Player Stream resolves the bound active player's WHEP stream. Each exposes the applicable shared media controls and waiting text.
  • Replay Stream Player renders the bound TA replay. Configure player binding, ChroViewer URL, mute/player volume, hitsound volume, lighting (full, static, none), organizer-controlled Hide in-game UI, waiting text and every ChroViewer override below. In native output, two or more eligible players use the synchronized compositor described in Dynamic overlays.
  • Map Preview loops the next map itself or the best ScoreSaber/BeatLeader replay. Configure source, preview start or explicit minutes/seconds, master/song/hitsound volumes, lighting, Hide in-game UI, ChroViewer URL and waiting text.
  • Lightshow Showcase plays an ordered or random map list without gameplay notes. Configure maps, playback mode, loop, aim mode/duration/target, last-map behavior, master/song volume, lighting and viewer settings. It publishes its current song for Lightshow cards/placeholders.

ChroViewer overrides

Replay/preview components expose base preset, maximum FPS (native broadcast target is 60), render scale, scene MSAA, mirror quality/resolution/MSAA, post-bloom width, bloom-fog size, optional output width/height, screen displacement, custom environment colors, saber/trail visibility, replay-vs-custom saber colors, left/right colors, trail shape and advanced trail geometry fields. Master volume zero skips song decoding/audio-context creation. Hide in-game UI affects only HUD/visualizer elements, never the 3D render.

On this page