Composer Pro is the dealer tool for building and maintaining a Control4 project. It edits the project that runs on the controller (Director). This guide covers the views, the project tree, drivers, identifying devices, refreshing Navigators, and backups.
Composer Pro views
Composer Pro has five main views. Switch with the Go menu or Ctrl+1 through Ctrl+5 (current builds; very old builds numbered them differently).
| View | Shortcut | Use it for |
|---|---|---|
| System Design | Ctrl+1 | Project tree, adding drivers, device and room properties |
| Connections | Ctrl+2 | Control/AV bindings, room endpoints, network identify (IP and ZigBee) |
| Media | Ctrl+3 | Stored and broadcast media, playlists, channel lists |
| Agents | Ctrl+4 | Scheduler, lighting scenes, variables, macros, wakeup, announcements, and the rest |
| Programming | Ctrl+5 | Event, conditional, and action scripts |
Monitoring view: a Monitoring view exists in Composer HE (the homeowner edition) and some older builds. Current Composer Pro has no separate Monitoring view. Device status and health live under the Tools menu (Network Tools, ZigBee Health, Device Logs, System Diagnostics, Update Manager, System Manager) and on each driver's Properties tab.
The Media menu only appears while the Media view is active. If a pane gets lost or docked oddly, use Help > Reset Composer Layout.
Connecting Composer Pro to a system
On launch Composer Pro offers three ways in:
- Local System: connect to a controller found on the LAN. Every change writes live to Director. This is the normal on-site mode.
- Remote System: connect through the Control4 cloud to a registered customer system. It behaves like Local once connected. It needs the system registered, the remote access subscription the OS version requires (4Sight on older systems, Connect on X4), and a dealer login. Only users assigned as technicians on the dealer account can connect.
- Virtual System: a virtual Director on your PC with no hardware. Use it to pre-build projects, train, or test programming.
There is no "Save" in the usual sense when connected to a live controller. Changes commit to Director as you make them. Backing up writes a .c4p copy to your PC.
To move a Virtual project to a real controller: in Virtual, File > Back Up As. Connect to the real controller with Local System. File > Load Project and pick the .c4p. Loading replaces the controller's project, so back up the controller first if it has anything on it.
The project tree: Site, Building, Floor, Room, Device
The System Design tree always follows Site > Building > Floor > Room > Device. A device must live in a room. If you drop a room into an empty project, Composer creates the Site, Building, and Floor above it.
Build order matters because each layer depends on the one before:
- Project properties (homeowner info, ZIP/location, time zone). Sunrise and sunset scheduling depend on the location being right.
- Locations: add buildings, floors, rooms from the Items pane > Locations tab.
- Controller(s), then lighting, keypads, remotes, touch screens.
- AV gear: displays, receivers, switchers, sources.
- Comfort and security: thermostats, shades, locks, cameras, security panel.
- Connections (bindings and identify).
- Agents, then Programming.
- Validate, Refresh Navigators, back up.
You cannot program a button before the keypad exists, and you cannot bind a TV to a receiver before both are in the project.
Rooms carry their own properties: Navigator menus and visibility, A/V endpoints, volume behavior, and room-off behavior. Put each device in the room where the customer expects to control it, not where it sits in the rack. A rack-mounted AVR that serves the Theater belongs in the Theater.
Adding drivers in System Design
The Items pane on the right of System Design has these tabs:
- Locations: sites, buildings, floors, rooms.
- My Drivers: a curated list by category with a search box. A good default.
- Search: full search by device type, manufacturer, and model, with a Local or Online toggle.
- Discovered: devices found on the network through SDDP. Only SDDP devices that are not already in the project show here.
To add a driver: select the target room in the tree, then double-click the driver, or drag it onto the room. Some categories (receivers, TVs, disc players) prompt for manufacturer and model.
To add a driver file you have on disk (.c4z or .c4i): Driver menu > Add or Update Driver, or copy the file into Documents\Control4\Drivers and search with Local selected. Agents go in Documents\Control4\Agents (the Update Driver file picker for an agent opens there).
First things to set on a new driver: the communication method if the driver offers IR, serial, or IP; serial settings or IP identification; then bindings in Connections; then test from the driver's Actions or Commands.
Local vs online drivers and Manage Drivers
Drivers exist in three places: the online Control4 driver database, your PC's local driver database, and the controller's driver store. Dealers normally keep local in sync with online, then push to the controller.
Driver > Manage Drivers (Ctrl+M) lists every driver with type, manufacturer, model, status, creator, and dates. Its Update options include updating local and controller to the latest online version, syncing newest, syncing to local or to the controller, and replacing obsolete drivers with the recommended replacement. An Auto Update tab handles background updates.
After dropping new .c4z files into the Drivers folder, refresh the local driver database so Local search finds them.
Local vs online, practically: online drivers come from the Control4 catalog and update through Manage Drivers. Local drivers are files you added, such as third-party drivers from a driver vendor. Those update only when you load a newer file.
Updating a driver in a project
Per device: in System Design, right-click the driver > Update Driver, then pick the new .c4z. Properties, bindings, and programming normally carry over.
Things to know:
- If the new file has the same version number, Composer asks to overwrite ("Versions are equal"). Yes is fine when rolling out a fixed build.
- A driver update that adds or changes connections makes Director migrate bindings. Expect a brief Composer disconnect. That is normal.
- If a device still shows old or missing properties after an update, delete that instance and add a fresh one, or restart Director. Composer can hold a stale driver instance.
- Update one instance first, test it, then update the rest.
- Back up before updating drivers on a live system.
Removing devices and drivers
Right-click the device in System Design > Remove (or select and press Delete). Removing a device also removes its bindings and any programming that references it, including actions inside other scripts and agent membership such as lighting scene loads. Before removing, check the device's programming in the Programming view so you know what you will lose.
To swap hardware (same model, failed unit), do not remove and re-add. Keep the driver and re-identify the new unit. Programming and bindings stay intact. For a different model, add the new driver, rebuild bindings and programming against it, then remove the old one.
Identifying devices: SDDP, manual IP, ZigBee, serial, IR
Identifying ties a driver in the project to a physical device. The method depends on the device.
SDDP (Simple Device Discovery Protocol): many Control4 and certified third-party IP devices announce themselves on the LAN. They appear on the Discovered tab and their address fills in automatically. SDDP devices are tracked by their identity, not just their IP, so they follow DHCP address changes.
Manual IP: in Connections > Network tab > IP Network, find the device (blank Address column). Right-click > Identify and follow the prompt, or enter the IP address for devices that do not announce themselves. Manually entered IPs do not follow address changes, so give the device a DHCP reservation first.
ZigBee: Connections > Network > ZigBee Network. Start Identify on the driver, then press the device's identify sequence within the countdown (often a button tap sequence such as four taps on the top button, or a recessed button on sensors; the driver's identify text says which). Wake battery sensors right as you start. When it joins, it shows online in the mesh tree.
Serial (RS-232): bind the device's serial connection to a controller or IR/serial expander serial port in Connections > Control/AV. Set baud, parity, data bits, and stop bits in the driver to match the device.
IR: bind the device's IR input to a controller IR output port and place the emitter on the device's IR window.
Contacts and relays: bind the driver's contact or relay connection to the controller's contact or relay port.
Refreshing Navigators
Navigators are the user interfaces: the Control4 app, touch screens, and on-screen interfaces. They cache the project. After any change that affects what users see (new devices, renamed rooms or devices, menu visibility, custom buttons, scenes, favorites), push it with File > Refresh Navigators (Shift+F5).
If one touch screen or phone still looks stale after a refresh, restart the app or the touch screen. If a newly added experience button is missing, check its visibility: many experience buttons are added as Hidden by default and must be set Visible in the room's Navigator menu settings.
Other refresh commands that are easy to confuse:
- Refresh Composer / Refresh from Director: reload the project from the controller into Composer when another tech has made changes or Composer looks out of date.
- Refresh driver database: rescan the local driver folders.
Project backups and restores
A .c4p is a zipped snapshot of the project: the project tree, bindings, programming, agent configuration, and the drivers in use. Scanned media databases are only included if you back up with media.
- File > Back Up: writes to your PC (Documents\Control4\Projects by default).
- File > Back Up As: always asks for a name. Use date-stamped names such as Smith-2026-11-08.c4p.
- Backup to cloud: an encrypted backup to the Control4 cloud for registered systems. The Backup agent can schedule these.
- File > Load Project: pushes a .c4p to the connected controller. This replaces the controller's project.
Restore after a controller replacement: install the new controller, register it, connect locally, update it to the OS version the backup was made on, Load Project, then re-identify devices that do not use SDDP and check ZigBee devices (moving a mesh can take a few minutes to settle).
End of every visit: Validate Project, Refresh Navigators, Back Up As with a date, and a cloud backup.
Validate Project and the Tools menu
File > Validate Project checks for orphan bindings, missing devices, and broken references. Run it before handing off or after big changes.
Useful Tools menu items (names vary slightly by version):
- Network Tools: every networked device with address, online state, and firmware version.
- ZigBee Health: mesh status and signal quality for ZigBee devices.
- Device Logs and System Diagnostics: logs for support cases.
- Update Manager: OS updates for the controller and Control4 devices.
- System Manager: controller-level settings.
- Account Services: registration and account items.
Each DriverWorks driver also has a Lua tab in System Design showing its Lua output, which is the first place to look when a third-party driver misbehaves.