Randomizing Control Point Owners

Randomizing control point owners is an option for Control Point map creators who would like to add unexpected elements to their styles of play.
How to
One way to factor random elements into a Control Point map is through the use of the logic_case entity and its PickRandom input.
To start, the map will need at least one capture point. Then add in the logic_case with an OnCase output set for each possible outcome. Under every OnCase output group, each targeted control point needs to receive two commands:
1) A SetOwner input, targeted at the team_control_point entity, to determine who the owner becomes in the chosen case.

2) A Skin input, targeted at the prop_dynamic or the base entity, which tells that model to change its skin according to the new capture point owner.

Example (See image at right): If there are two teams to differentiate between, 1 and 2, there are four owner outcomes: 1-1, 2-2, 1-2, and 2-1. Thus there would be four OnCase outcome sets. Because there are then two control points to randomize, each OnCase group consists of four outcomes, two for SetOwner inputs and two for Skin inputs.
{{note|If there are more than sixteen possible outcomes for the control point system and therefore more than sixteen necessary OnCase outputs in the logic_case, then a solution is to create two or more logic_case entities until the requisite number of OnCase output spaces is acquired. The next step would be to connect the multiple logic_case entities via another logic_case, which would include an OnCase-PickRandom output for each of the other randomizing logic case entities.

Plugging into the randomizer
Obviously the randomization system is not going to function if it does not have an external entity to instigate randomization. There are two possibilities for this:
1) Use the OnRoundStart output of the cp_timer entity to randomize a point's owner at the beginning of a game:
My output named OnRoundStart, target entities named <<name of randomizing logic_case>>, via this input PickRandom

2) Use the OnCapTeam1 and OnCapTeam2 outputs of the trigger_capture_area of one of the control points to instigate randomization when a team captures a specific point:
My output named OnCapTeam1, target entities named <<name of randomizing [[logic_case]>>, via this input PickRandom My output named OnCapTeam2, target entities named <<name of randomizing [[logic_case]>>, via this input PickRandom

