Skip to main content

Manually editing recordings

Although StacyPilot was not made with this in mind, you can manually edit, or even create recordings. Every recording folder contains one or multiple module scripts. Each script holds the data of an add-on. Every add-on can save multiple scripts. For example, GLights 6 save a single script named GLights6, but the camera system saves multiple scripts for each of the things it can do.

If you try opening one of the scripts, you'll see that it's filled with lines that look like this:

{Time = 5.237482374384, Data = {"Cue"; "StateCues.Cue1"; true}};

The number with many decimal places is the time when this action occurs after starting the recording (in seconds). It usually has many decimal places because the time is grabbed automatically and is precise. You're free to use less.

Next to data is a table filled with all the data needed for that action.

Below is a list of all values the officially supported products use

Lyrics Controller

The Lyrics Controller saves a single script, named Lyrics. Each line in this script is the text that will be displayed for selected players. Selected players are not saved.

Each line looks like this:

{Time = 0, Data = {"text to display here"}};

GLights 6

GLights 6 save a single script, named GLights6. The first piece of data is a string representing the name of the folder of lights and the group, for example StrobesA. After that there's other parameters.

The pieces of data follow more or less the same style as the GLights API. You can look at the cheatsheet there to get a list of all cues and actions.

Here's a full list of all possible pieces of data (using HeadsA as an example folder name):

{Time = 0, Data = {"HeadsA"; "On"}};
{Time = 0, Data = {"HeadsA"; "Off"}};
{Time = 0, Data = {"HeadsA"; "FadeOn"}};
{Time = 0, Data = {"HeadsA"; "FadeOff"}};

{Time = 0, Data = {"HeadsA"; "Cue"; "Random"; true}};
{Time = 0, Data = {"HeadsA"; "Cue"; "Random"; false}};
{Time = 0, Data = {"HeadsA"; "Cue"; "State.Cue1"; true}};
{Time = 0, Data = {"HeadsA"; "Cue"; "State.Cue1"; false}};
{Time = 0, Data = {"HeadsA"; "Cue"; "Color.ColorCue1"; true}};
{Time = 0, Data = {"HeadsA"; "Cue"; "Color.ColorCue1"; false}};
{Time = 0, Data = {"HeadsA"; "Cue"; "Position.Tilt"; true}};
{Time = 0, Data = {"HeadsA"; "Cue"; "Position.Tilt"; false}};
{Time = 0, Data = {"HeadsA"; "Action"; "Flash"; false}};
{Time = 0, Data = {"HeadsA"; "Action"; "Cue6"; false}};
{Time = 0, Data = {"HeadsA"; "Action"; "CustomPositions.In"; false}};

{Time = 0, Data = {"HeadsA"; "BeamMode"; "Gobo"}};
{Time = 0, Data = {"HeadsA"; "BeamMode"; "Beam"}};
{Time = 0, Data = {"HeadsA"; "BeamMode"; "NoBeam"}};

{Time = 0, Data = {"HeadsA"; "BeamThickness"; 2}};
{Time = 0, Data = {"HeadsA"; "GoboSpread"; 1.9}};

{Time = 0, Data = {"HeadsA"; "Tilt"; 50}};
{Time = 0, Data = {"HeadsA"; "Pan"; 20}};
{Time = 0, Data = {"HeadsA"; "MotorSpeed"; 0.001}};

{Time = 0, Data = {"HeadsA"; "RotateGobo"; 1; "Odd"}};
{Time = 0, Data = {"HeadsA"; "RotateGobo"; -1; "Even"}};

{Time = 0, Data = {"HeadsA"; "Follow"; "Workspace.GLights.FollowPoints.Follow point 1"}};
{Time = 0, Data = {"HeadsA"; "Follow"; "Workspace.gabys2005.HumanoidRootPart"}};
{Time = 0, Data = {"HeadsA"; "StopFollowing"}};

{Time = 0, Data = {"HeadsA"; "Color"; Color3.fromRGB(0, 255, 149)}};
{Time = 0, Data = {"HeadsA"; "Color"; Color3.fromRGB(255, 0, 4); "Odd"}};
{Time = 0, Data = {"HeadsA"; "Color"; Color3.fromRGB(217, 0, 255); "Even"}};

{Time = 0, Data = {"HeadsA"; "Color"; ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 4)), ColorSequenceKeypoint.new(0.2, Color3.fromRGB(255, 128, 0)), ColorSequenceKeypoint.new(0.4, Color3.fromRGB(255, 247, 0)), ColorSequenceKeypoint.new(0.6, Color3.fromRGB(17, 255, 0)), ColorSequenceKeypoint.new(0.8, Color3.fromRGB(0, 234, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(157, 0, 255))})}};

{Time = 0, Data = {"HeadsA"; "SmoothColor"; true}};
{Time = 0, Data = {"HeadsA"; "AnimatedGradients"; true}};
{Time = 0, Data = {"HeadsA"; "SetGlobalCueSetting"; "SecondaryColor"; Color3.fromRGB(0, 255, 106)}};
{Time = 0, Data = {"HeadsA"; "SetGlobalCueSetting"; "GroupRandom"; true}};
{Time = 0, Data = {"HeadsA"; "SetGlobalCueSetting"; "Overshoot"; true}};
{Time = 0, Data = {"HeadsA"; "SetCueSetting"; "State.Cue3"; "Groups"; 3}};
{Time = 0, Data = {"HeadsA"; "LoopCues"; false}};

{Time = 0, Data = {"HeadsA"; "CueSpeed"; 0.25}};
{Time = 0, Data = {"HeadsA"; "FadeSpeed"; 0.33}};
{Time = 0, Data = {"HeadsA"; "Dimness"; 0.5}};

{Time = 0, Data = {"HeadsA"; "Reset"}};
{Time = 0, Data = {"HeadsA"; "HardReset"}};

Camera System V5

Unlike the other official add-ons, the Camera System add-on saves multiple scripts for each recording: BarSize, BarEnabled, Blackout, Blur, Camera, Focus, Fov, Saturation, Shake, Tilt, Transition, TransitionSpeed. Each of them is explained below:

Many of the scripts have a "time" number which is how long it takes for this to happen, it's always 0.1 if you're using the sliders.

BarSize

Saves the size of bars, the first number in Data is the new size (as a percentage of the screen that one bar takes up), the second is the amount of time the change happens.

{Time = 0, Data = {20; 0}};
{Time = 0, Data = {10; 0.1}};

BarsEnabled

Saves whether or not bars are enabled at this point in time

{Time = 0, Data = {false}};
{Time = 0, Data = {true}};

Blackout

Saves whether or not blackout is enabled at this point in time

{Time = 0, Data = {false}};
{Time = 0, Data = {true}};

Blur

Saves the intensity of the blur effect and how much it takes

{Time = 0, Data = {0; 0}};
{Time = 0, Data = {16; 0.1}};

Camera

Saves camera changes: their type, name and ID. The ID might be different every time the game starts and is only used for coloring the timeline

{Time = 0, Data = {"Static"; "CameraName"; 2}};
{Time = 0, Data = {"Moving"; "MovingCameraName"; 2}};
{Time = 0, Data = {"Drones"; "Virgil"; 1}};

Focus

Saves who the camera is focused on

{Time = 0, Data = {}};
{Time = 0, Data = {"Player"; "gabys2005"}};
{Time = 0, Data = {"Part"; "Workspace.CameraSystem.FocusPoints.Point1"}};

Fov

Saves the field of view and how long it takes to change

{Time = 0, Data = {70; 0}};
{Time = 0, Data = {47; 0.1}};

Saturation

Saves the saturation and how long it takes to change

{Time = 0, Data = {0; 0}};
{Time = 0, Data = {-0.67; 0.1}};

Shake

Saves the shake intensity

{Time = 0, Data = {0}};
{Time = 0, Data = {6.5}};

Tilt

Saves the tilt of the camera and how long it takes to change

{Time = 0, Data = {0; 0}};
{Time = 0, Data = {40; 0.1}};

Transition

Saves the transition type

{Time = 0, Data = {"None"}};
{Time = 0, Data = {"Black"}};
{Time = 0, Data = {"White"}};

TransitionSpeed

Saves the speed of the transition, as a percentage

{Time = 0, Data = {100}};
{Time = 0, Data = {143}};