A method of creating a virtual reality environment, the method comprising: sending, from a first client device, a request to begin a virtual reality environment computer program, the first client device associated with a first 360-degree display unit; receiving a response to initiate the virtual reality environment computer program; accessing a first 360-degree video file from a video database, the first 360-degree video file linked to a plurality of 360-degree video files via a script tree that organizes the virtual reality environment based on user input responsive to annotations associated with the 360-degree video files; accessing a first annotation associated with the first 360-degree video file from the script tree; presenting the first 360-degree video file using the first 360-degree display unit of the first client device; presenting the first annotation visually using the first 360-degree display unit of the first client device and using a second 360-degree display unit of a second client device; in response to the first annotation, receiving a first user input from the first client device and receiving a second user input from the second client device; identifying a subsequent node in the script tree based on the first user input and the second user input; accessing a second 360-degree video file associated with the subsequent node in the script tree and a second annotation for the first client device associated with the subsequent node in the script tree based on the subsequent node, the second 360-degree video file and the second annotation accessed based on the first user input and the second user input responsive to the first annotation as determined by the script tree; and presenting the second 360-degree video file and the second annotation visually using the first 360-degree display unit of the first client device while the second 360-degree display unit of the second client device is simultaneously presenting a third 360-degree video file associated with the subsequent node in the script tree and a third annotation also associated with the subsequent node in the script tree, wherein the second 360-degree video file and the third 360-degree video file represent the same event in the virtual reality environment from different perspectives. sending, from a first client device, a request to begin a virtual reality environment computer program, the first client device associated with a first 360-degree display unit; receiving a response to initiate the virtual reality environment computer program; accessing a first 360-degree video file from a video database, the first 360-degree video file linked to a plurality of 360-degree video files via a script tree that organizes the virtual reality environment based on user input responsive to annotations associated with the 360-degree video files; accessing a first annotation associated with the first 360-degree video file from the script tree; presenting the first 360-degree video file using the first 360-degree display unit of the first client device; presenting the first annotation visually using the first 360-degree display unit of the first client device and using a second 360-degree display unit of a second client device; in response to the first annotation, receiving a first user input from the first client device and receiving a second user input from the second client device; identifying a subsequent node in the script tree based on the first user input and the second user input; accessing a second 360-degree video file associated with the subsequent node in the script tree and a second annotation for the first client device associated with the subsequent node in the script tree based on the subsequent node, the second 360-degree video file and the second annotation accessed based on the first user input and the second user input responsive to the first annotation as determined by the script tree; and presenting the second 360-degree video file and the second annotation visually using the first 360-degree display unit of the first client device while the second 360-degree display unit of the second client device is simultaneously presenting a third 360-degree video file associated with the subsequent node in the script tree and a third annotation also associated with the subsequent node in the script tree, wherein the second 360-degree video file and the third 360-degree video file represent the same event in the virtual reality environment from different perspectives.