>CasparCG Setup
[[Documentation/Server/Overview|SPX Graphics Controller]] can integrate with CasparCG Server for professional broadcast playout. This guide covers configuring CasparCG servers in SPX.
---
## Prerequisites
> [!warning] If SPX is used with CasparCG, version 2.3.x LTS is recommended. See [CasparCG Releases](https://github.com/CasparCG/server/releases).
## Adding CasparCG Servers
Starting from v1.0.12, SPX does not have a CasparCG server assigned by default in the [[Documentation/Server/Configurations|configuration]].
### Via Web Interface
1. Go to **Configuration** page
2. Scroll down to **CasparCG servers** section
3. Click **Add Server** or use the **[ + ]** button
4. Enter server details:
- **Name**: Server identifier (e.g., `OVERLAY`)
- **Host**: IP address or `localhost`
- **Port**: CasparCG port (default: `5250`)
5. Click **Save** at the bottom of the page
6. An empty line will appear to add another server
### Via Configuration File
Edit [[Documentation/Server/Configurations|config.json]] directly:
```json
{
"casparcg": {
"servers": [
{
"name": "OVERLAY",
"host": "localhost",
"port": "5250"
},
{
"name": "VIDEOWALL",
"host": "128.120.110.1",
"port": "5250"
}
]
}
}
```
## Server Naming
### Recommended Names
The name `OVERLAY` is preferred, since this name is used in all [SPX Store](https://spxgraphics.com/store) [[Documentation/Graphic Templates/Overview|templates]] and the default template pack which comes with the application.
**Common server names:**
- `OVERLAY` - For on-screen graphics (most common)
- `VIDEOWALL` - For video wall displays
- `FULLSCREEN` - For full-screen graphics
- `BACKUP` - For backup/overflow
> [!note] Use only alphanumeric names for CasparCG servers, without special characters or spaces.
## Template Server Assignment
Each SPX template has a setting for choosing a target CasparCG server. This server is assigned in the template settings within [[Documentation/Graphics Controller/Project Settings|Project Settings]].
The default value comes from the HTML source code of the template as the `playserver` parameter of the TemplateDefinition object. The name must match one of the configured servers for playout to work.
## Template Source Configuration
SPX has three options for loading templates. See [[Documentation/Server/Configurations|General Settings - Template Source]] for details:
1. **`spx-ip-address`** (default) - Templates loaded via HTTP from SPX
2. **`casparcg-template-path`** - Templates loaded from CasparCG's file system
3. **`http://<ip-address>`** - Manual HTTP address
### Template Path Considerations
When using `casparcg-template-path`:
- Templates **must be in two places**: SPX `ASSETS/templates` folder **and** CasparCG's templates folder
- Changes made to either location should also be done to the other
- Consider using `rsync` or other mirroring techniques to keep folders synchronized
## Troubleshooting
### Server Not Found Error
If a server name is not found during production, you'll see an error message:
```
Template requests CasparCG server [SERVERNAME] but a server by that name was not found in SPX configuration. Make sure app configuration and project settings match. This does not effect web playout.
```
**Solutions:**
1. Verify server name matches exactly (case-sensitive)
2. Check server is added in Configuration
3. Ensure server name uses only alphanumeric characters
4. Restart SPX server after configuration changes
### Connection Issues
If CasparCG playout fails:
1. **Check CasparCG is running** - Verify CasparCG Server is started
2. **Verify network connectivity** - Test connection to CasparCG host/port
3. **Check firewall** - Ensure ports are not blocked
4. **Increase log level** - Set `loglevel` to `verbose` or `debug` to see detailed messages
5. **Check CasparCG logs** - Review CasparCG Server console for errors
### Template Loading Issues
If templates don't load in CasparCG:
1. **Verify template source setting** - Check `general.templatesource` in config
2. **Check template path** - Ensure templates exist in the correct location
3. **Verify HTTP access** - If using HTTP, ensure SPX is accessible from CasparCG
4. **Check template definition** - Ensure template has valid `SPXGCTemplateDefinition`
## Configuration Example
Complete example with multiple servers:
```json
{
"general": {
"templatesource": "spx-ip-address",
"port": "5656"
},
"casparcg": {
"servers": [
{
"name": "OVERLAY",
"host": "localhost",
"port": "5250"
},
{
"name": "VIDEOWALL",
"host": "192.168.1.100",
"port": "5250"
},
{
"name": "BACKUP",
"host": "192.168.1.101",
"port": "5250"
}
]
}
}
```
## Restart Required
> [!warning] The SPX server process must be restarted whenever changes are made to the CasparCG server configuration.
---
## Read Next
- [[Documentation/Graphic Templates/Overview|Graphic Templates Overview]] - Learn how templates reference CasparCG servers
- [[Documentation/Renderer/Web Render|Web Render]] - Configure renderer output
- [[FAQ/Troubleshooting|Troubleshooting]] - More troubleshooting tips
- [[Documentation/Renderer/Workflows/SDI-NDI-2110|SDI/NDI/2110]] - Professional video outputs