A shower control system comprising: a controller in communication with a plurality of output devices located within a shower enclosure and configured to control the plurality of output devices in accordance with a plurality of features that run as independent applications or processes within a memory of the controller; a control panel in communication with the controller and configured to provide a graphical user interface that allows a user to select or deselect each of the output devices and activate or deactivate each of the plurality of features by selecting corresponding icons (602-616; 718, 726, 736; 1414, 1416, 1420;1612-1618, 1622, 1630; 1908-1914, 1922; 2122, 2138, 2146; 2314-2318; 2402) of the graphical user interface; wherein the controller is configured to: maintain first state information indicating which of the plurality of output devices are selected, to maintain second state information indicating whether the feature is active, and to use the first state information and the second state information to determine whether to use each of the plurality of output devices to provide an output to the shower enclosure, characterized in that the controller is further configured to determine that a purge feature of the shower control system is enabled receive a user input selecting a new feature of the shower control system for activation; in response to the user input selecting the new feature for activation and prior to activating the new feature, perform a purge process comprising temporarily activating all of the output devices until a temperature of water dispensed from the output devices reaches a threshold temperature; and in response to the temperature of the water dispensed from the output devices reaching the threshold temperature, automatically activate the new feature and deactivate any of the output devices not selected prior to selecting the new feature for activation. a controller in communication with a plurality of output devices located within a shower enclosure and configured to control the plurality of output devices in accordance with a plurality of features that run as independent applications or processes within a memory of the controller; a control panel in communication with the controller and configured to provide a graphical user interface that allows a user to select or deselect each of the output devices and activate or deactivate each of the plurality of features by selecting corresponding icons (602-616; 718, 726, 736; 1414, 1416, 1420;1612-1618, 1622, 1630; 1908-1914, 1922; 2122, 2138, 2146; 2314-2318; 2402) of the graphical user interface; wherein the controller is configured to: maintain first state information indicating which of the plurality of output devices are selected, to maintain second state information indicating whether the feature is active, and to use the first state information and the second state information to determine whether to use each of the plurality of output devices to provide an output to the shower enclosure, characterized in that the controller is further configured to determine that a purge feature of the shower control system is enabled receive a user input selecting a new feature of the shower control system for activation; in response to the user input selecting the new feature for activation and prior to activating the new feature, perform a purge process comprising temporarily activating all of the output devices until a temperature of water dispensed from the output devices reaches a threshold temperature; and in response to the temperature of the water dispensed from the output devices reaching the threshold temperature, automatically activate the new feature and deactivate any of the output devices not selected prior to selecting the new feature for activation. maintain first state information indicating which of the plurality of output devices are selected, to maintain second state information indicating whether the feature is active, and to use the first state information and the second state information to determine whether to use each of the plurality of output devices to provide an output to the shower enclosure, characterized in that the controller is further configured to determine that a purge feature of the shower control system is enabled receive a user input selecting a new feature of the shower control system for activation; in response to the user input selecting the new feature for activation and prior to activating the new feature, perform a purge process comprising temporarily activating all of the output devices until a temperature of water dispensed from the output devices reaches a threshold temperature; and in response to the temperature of the water dispensed from the output devices reaching the threshold temperature, automatically activate the new feature and deactivate any of the output devices not selected prior to selecting the new feature for activation.