Player variables in FUSE allow operators to select individual players from team rosters and display their statistics, names, photos, and team information within broadcast graphics. When you add a player variable to a FUSE graphic, it creates a dropdown selector in the Control Room that lists all players from the match roster, enabling real-time player selection during live broadcasts.
Player variables connect directly to the LIGR platform's player roster data. When an operator selects a player from the dropdown, FUSE retrieves that player's information and populates the graphic elements you've bound to player data fields. This includes basic information like first and last names, as well as detailed statistics like goals, assists, tackles, shots, passes, and more.
You use player variables when building graphics that display individual player information during matches - player statistics overlays, player introduction cards, player-of-the-match graphics, or head-to-head player comparisons. These variables give operators control over which player's information appears on screen without needing to manually enter any data.
Prerequisites
Before setting up player variables in FUSE, you need:
* Access to the FUSE graphics editor
* A Rive file designed for displaying player information with exposed text and image inputs
* Player roster data configured in the LIGR platform with statistics assigned to players
* Basic understanding of FUSE expression syntax for data binding
How to Add a Player Variable
Open your graphic in the FUSE editor and navigate to the Control Variables panel in the right-hand sidebar. Click Add Variable and select Player as the variable type. Give your variable a descriptive name like selectedPlayer or playerA. If you're building a head-to-head comparison graphic, create two player variables named playerA and playerB so operators can select two different players.
The player variable will appear in the Control Variables list. When you publish this graphic and assign it to a match, the Control Room will display a dropdown for this variable populated with all players from both teams' rosters. Operators can select any player from the dropdown, and the graphic will immediately update to show that player's information.
Player variables pull their roster data from the Assets section of LIGR Live. If players aren't appearing in the dropdown, verify that player rosters are configured for the teams involved in the match and that the players toggle is enabled in the match settings.
Binding Player Name Expressions
Once you've created a player variable, you need to bind player data fields to your Rive graphic's exposed inputs. Select the text element in your Rive file where you want the player's name to appear. In the expression field, enter player.data.first_name to display the player's first name, or player.data.last_name for the last name.
If you want to display the full name in one field, use player.data.first_name + " " + player.data.last_name. This concatenates the first and last name with a space between them. You can also apply formatting functions - for example, upper(player.data.first_name + " " + player.data.last_name) displays the full name in uppercase.
The player.data object references the currently selected player from your player variable. If you have multiple player variables in your graphic, specify which one you're referencing by using the variable name: playerA.data.first_name or playerB.data.first_name.
Accessing Player Statistics
FUSE provides access to detailed player statistics through the player.data.stats object. Common statistics available include goals, assists, shots, shots on target, passes, tackles, fouls, yellow cards, and red cards. The exact statistics available depend on your sport configuration and what data is being tracked for your matches.
To display a player's goal count, bind a text element to player.data.stats.goals. For assists, use player.data.stats.assists. For tackles, use player.data.stats.tackles. These expressions return numerical values that update in real-time as match events are logged.
If a player has no data for a particular statistic, the expression returns 0 by default. This is generally appropriate for numerical statistics displays - it's clearer to show 0 goals than to show a blank space. If you want different behavior when data is missing, you can use conditional expressions to hide elements or display alternative text.
Statistics data comes from match events captured in the LiveScore app or from external data providers. If statistics aren't appearing correctly, verify that match events are being logged and that the statistics are configured to be tracked for your competition in the competition's Additional Settings.
Displaying Player Team Information
Player variables also provide access to the player's team data through player.data.team expressions. This is useful when you want to display team branding alongside player statistics - for example, showing the team logo next to the player's name in a player-of-the-match graphic.
To display the team name, use player.data.team.name. For the team abbreviation, use player.data.team.short_name. To access the team logo, use player.data.team.logo_url and bind this to an image input in your Rive file. The logo URL points to the team logo uploaded in the Assets section.
Team colors are also accessible through player variables. Use player.data.team.primary_color or player.data.team.secondary_color to apply team branding colors to graphic elements. These expressions return color values that can be bound to color inputs in your Rive file.
Setting Up Player Images
To display player photos in your FUSE graphics, your Rive file must have an exposed image input. In Rive, create an image placeholder and ensure it's exposed so FUSE can access it. Name the image input descriptively, like playerImage or playerPhoto.
In FUSE, select the image element and bind it to player.data.image_url. This expression retrieves the URL of the player's photo from the LIGR platform. Player photos must be uploaded in the Assets section - navigate to Assets, select the player, and upload their photo using the player profile editor.
Player images in LIGR are typically sized at 300x300 pixels. You should configure an image template in your competition theme settings with these dimensions to ensure player photos are processed consistently. If a player has no photo uploaded, the image slot will display blank unless you configure a default fallback image.
When uploading player photos in Assets, you can crop, zoom, and remove backgrounds using the built-in image editor. These edits are saved with the player profile, so the processed image appears automatically in your FUSE graphics without any additional configuration.
Building Multi-Player Graphics
For graphics that display multiple players simultaneously - such as head-to-head comparisons or combined statistics displays - create multiple player variables with distinct names. For a head-to-head graphic, create playerA and playerB variables. For a three-player comparison, create player1, player2, and player3.
When binding data to graphic elements, explicitly reference which player variable you're accessing. Use playerA.data.first_name for the first player's name and playerB.data.first_name for the second player's name. This keeps the data binding clear and prevents confusion in the Control Room.
In the Control Room, operators will see separate dropdowns for each player variable. They can select different players for each dropdown, allowing them to build custom player comparisons or multi-player displays during the broadcast. Each dropdown is independent - selecting a player in one dropdown doesn't affect the others.
Combining Player Variables with Control Variables
Player variables work alongside other control variable types to create flexible, operator-controlled graphics. You can combine player variables with Boolean variables to create show/hide toggles, with String variables to add custom text, or with other player variables for multi-player displays.
For example, create a Boolean variable called showStats to control whether the statistics panel appears on screen. Use a String variable called customLabel to allow operators to add custom text like "Player of the Match" or "Goal Scorer". Combine these with your player variable to create a fully customizable player information graphic.
Control variables appear in the Control Room in the order you create them in FUSE. Organize your variables logically - place the player selection variable first, followed by display options like show/hide toggles, then customization options like text fields. This creates an intuitive interface for operators during live broadcasts.
Handling Missing or Incomplete Player Data
When a player has incomplete data - missing statistics, no photo, or unpopulated fields - FUSE handles this in predictable ways. Numerical statistics return 0 when no data exists. Text fields return empty strings. Image URLs return blank when no photo is uploaded.
Design your graphics to handle these situations gracefully. For statistics displays showing 0 is usually appropriate and clear. For player photos, consider designing your graphic layout so that a blank photo slot doesn't create visual problems - for example, use a background shape or team logo as a fallback.
If you want more control over how missing data is handled, use conditional expressions. You can check if a value exists before displaying it, or show alternative content when data is missing. However, for most player statistics graphics, the default behavior of showing 0 for missing statistics is sufficient and clear to viewers.
Testing Player Variables in FUSE Preview
Before publishing your graphic, use the FUSE preview to test your player variable configuration. The preview mode displays your control variables panel, including the player dropdown. Select different players from the dropdown to verify that all data fields update correctly and that your graphic layout handles varying data lengths and content.
Test with players who have complete data and players who have minimal data to ensure your graphic displays correctly in both scenarios. Check that player photos load correctly, that statistics display in the right format, and that team branding elements appear as expected. This testing phase catches data binding errors before you go live.
If the player dropdown in preview mode is empty or doesn't show the expected roster, check that the graphic is assigned to a competition that has teams with configured player rosters. The preview pulls player data from the competition context, so proper assignment is necessary for accurate testing.
Publishing and Using Player Variables in the Control Room
After configuring and testing your player variables, publish the graphic to make it available in the Control Room. Navigate to the Matches section, select your match, and assign your published graphic to a stream overlay. When operators open the Control Room during the match, your player variable will appear as a dropdown selector.
The player dropdown in the Control Room lists all players from both teams' rosters. Players are typically grouped by team for easier selection. When an operator selects a player, the graphic updates immediately to show that player's information. There's no delay or save button - the change happens in real-time.
Operators can change player selection as many times as needed during a broadcast. This makes player variables ideal for showing different players throughout a match - highlighting the goal scorer after each goal, featuring different players during breaks in play, or showing player-of-the-match at the end of the game.
Common Issues and Solutions
Issue: Player dropdown is empty in the Control Room.
Solution: Verify that player rosters are configured for both teams in the match. Navigate to Assets, select each team, and confirm that players are added to the roster. Also check that the players toggle is enabled in the match settings - if this toggle is off, player data won't be available.
Issue: Player statistics show as 0 even though events have been logged.
Solution: Confirm that match events are being logged with player assignments. In the LiveScore app, when logging goals or cards, ensure the specific player is selected. Check that the competition's Additional Settings have statistics tracking enabled. Verify that your FUSE expressions reference the correct statistic names like player.data.stats.goals rather than incorrect field names.
Issue: Player photos don't appear in the graphic.
Solution: Player photos must be uploaded in the Assets section before they appear in graphics. Navigate to Assets, select Players, find the player, and upload their photo using the player profile editor. Verify that your Rive file has an exposed image input and that your FUSE expression correctly references player.data.image_url. Check that your competition theme has an image template configured at 300x300 pixels.
Issue: Team logo or colors don't display correctly for the selected player.
Solution: Verify that team logos and colors are configured in the Assets section for the player's team. Check your FUSE expressions - use player.data.team.logo_url for logos and player.data.team.primary_color for colors. If the player was recently added to a different team, refresh the roster data or restart the match to pull updated team assignments.
Best Practices for Player Variables
Use descriptive variable names: Name your player variables clearly like selectedPlayer, playerA, or goalScorer so operators understand what each dropdown controls in the Control Room.
Test with incomplete data: Before going live, test your graphic with players who have minimal statistics or missing photos to ensure your layout handles these situations gracefully.
Keep statistics up to date: Player statistics in FUSE come from the LIGR platform's roster data. Ensure match events are being logged consistently throughout your matches so statistics remain accurate and current.
Design for varying data lengths: Player names vary in length. Design your graphic layout to accommodate short and long names without breaking the visual design. Test with the longest player names in your roster during the preview phase.
Combine with Boolean variables: Add Boolean control variables like showStats or showPhoto to give operators granular control over what elements appear on screen. This flexibility is valuable during live broadcasts when visual priorities change.
Upload player photos in advance: Don't wait until match day to upload player photos. Add photos to player profiles in the Assets section well before your broadcast so they're ready when operators need to display player information.
Use the 300x300 image template: Configure your competition theme with a 300x300 pixel image template for player photos. This ensures consistent sizing and formatting across all player images in your graphics.
Leverage team branding: Use player.data.team.primary_color and player.data.team.logo_url expressions to incorporate team branding into your player graphics. This creates visual consistency and makes it immediately clear which team the player belongs to.
