SCENARIO SCRIPTS

Scenario scripts were introduced in SpaceEngine 0.990. Older versions does not supports scripts.

This manual describes how to make scenario scripts in SpaceEngine. Before continuing, it is recommended to read this manual: Introduction

SpaceEngine console and *.se files

SpaceEngine 0.990 introduced a new type of file – *.se. These are scenario script files. They contains code which can be executed by SpaceEngine. A great example of what scenarios are capable of are Tutorials, introduced in 0.990. The default location for *.se files is data/scripts/ or addons/*/scripts/. You can run an *.se file from SpaceEngine by opening the console ([~] key by default) and typing this command:

Code
run filename

If the file filename.se exists in the mentioned folders, it will be executed. Another way to run *.se files is by passing them into SpaceEngine’s executable through a command line argument. The best way to do that is to associate the *.se extension with SpaceEngine.exe in your system. In that case double-clicking on the file will launch SpaceEngine and order it to execute the scenario script. If SpaceEngine is already running, this running instance will execute the script.

All commands could be executed in the ‘direct mode’ by typing them in the console, or executed from a *.se script file. Commands and most of their parameters are not case-sensitive, but string constants such as names of GUI widgets and names of triggers are case-sensitive.

Some commands can have (or even must have) additional parameters, provided in the curly braces block (i.e. those commands are actually tags). Example:

Code
Goto
{

Time 5.5
Dist 25000

}

Additional parameters could be typed in a single row:

Code
Goto { Time 5.5 Dist 25000 }

Using the single-row style sometimes makes the script code more compact and easy to read and understand.

All commands are split into groups according to their functions. Unroll the blocks below to read details.

SCRIPT CONTROL COMMANDS

Run

Runs a *.se script. It is possible to run one script from another, up to 16 nested calls are allowed. This is useful for executing a common set of commands, or to add a camera spline path from another script file (see the Camera spline path chapter for details). Syntax:
Run filename – executes the filename.se script file located in the data/scripts/ or addons/*/scripts/ folder.
Run “path/filename.sc” – executes the script file located at the provided path. Path is relative to SpaceEngine’s folder.

Break

Interrupts the currently executed script. If there was multiple scripts running, they will all be interrupted. Used primarily in direct mode (from the console) to break the script, but could be called from the *.se file.

Wait

Delays script execution by specified time in seconds. Syntax:
Wait 3.5 – delays script by 3.5 seconds.
This is one of the most useful command in SE scripts. You will use it after many commands, which require delays before the next command. For example, when you call the Goto command with parameter Time 10 (duration of the flight – 10 seconds), you probably want to follow it by Wait 10 to delay the script execution until the Goto command completes.

CheckVersion

Checks if the current version of SpaceEngine corresponding the version number provided in the command. If not, the following error message will be displayed to the user: “This script was designed for a different version of SpaceEngine. It cannot be run in the current version, sorry”. Syntax:
CheckVersion 990 – for SE version 0.990

if, elif, else, endif

This is the conditional operator statement. Syntax:
if { Variable == 1.0 }

if_commands

elif { Variable >= 2.0 }

elif_commands

else

else_commands

endif
The Variable is a name of SpaceEngine variable (see Variables chapter for details). The == is a comparison operator, possible operators are:
== (equal)
!= (not equal)
< (less)
> (greater)
<= (not greater)
>= (not less)
The value to the right of the operator is numerical for the integer, float and double variables, or 0/1 or true/false for boolean variables (see Variables chapter for details).
If the first condition (after if) is satisfied, then all the if_commands will be executed; after that control will be given to the first command after endif.
If the first condition is not satisfied, then control will be given to the first elif, if present, or to the else, if present, otherwise to the first command after endif. The elif statement works like if: if condition is satisfied, then all the elif_commands will be executed; after that control will be given to the first command after endif. Otherwise control will be given to the next elif or else, if they are present, otherwise – to the first command after endif. So you may use multiple elif statements. They can have conditions for other variables than if, statements are fully independent.
If the else statement is present and neither of the if and/or elif conditions were satisfied, all the else_commands will be executed, and after that control will be given to the first command after endif.
Curly braces for the conditions and the endif are mandatory, otherwise the “Syntax error” message will be shown. The elif and else statements are optional.
Important: nested if statement is not yet supported, i.e. you cannot do something like this:
if { Var1 == 1 } if { Var2 == 0 } command endif endif.
The error message “Nested IF statement is not supported” will be shown in this case.

Loop, EndLoop

This is a simple loop statement. Syntax:
Loop

commands

EndLoop
This repeats all commands enclosed between the Loop and EndLoop infinitely. Use Wait command there to delay execution.

CAMERA CONTROL COMMANDS

FOV

Sets field-of-view in degrees. Syntax:
FOV 90

Select

Selects a space object, ship, waypoint or spline path. Equivalent of a mouse click on the object, selecting it using search tool, etc. If the command succeeds, the selection pointer will be switched to the selected object. If the command fails, an error message will be shown in the console, and further execution of the scenario could be wrong. Syntax:
Select Earth – selects a space object by its name. Quotes can be skipped if there are no spaces in object’s name.
Select “RS 8474-2738-5-27954-210 1” – selects a space object by its name. Use quotes if there are spaces in the object’s name.
Select “Waypoint 1” – selects a previously defined waypoint (see Waypoint).
Select “Path 1” – selects a previously defined spline path (see SplinePath).
To resolve name ambiguity, prepend object’s name with its parent name, separated by |. For example:
Select “Saturn|Pandora” – selects Pandora (satellite of Satrun)
Select “Sol|Pandora” – selects asteroid (55) Pandora.

Unselect

Removes any selection. The selection pointer will disappear.

Goto

Moves the camera to the selection. If there is no object selected, an error message will be shown in the console, and further execution of the scenario could be wrong. Syntax:
Goto – starts a flight with default parameters.
Goto { … } – starts a flight with custom parameters provided below:
{

Time 15.0 – duration of the flight in seconds; default is 2.
Dist 0.001 – stop point distance from the target in pc; no default.
DistKm 12500.0 – stop point distance from the target in km; no default.
DistRad 2.5 – stop point distance from the target in multiples of the target’s radii; default depends of object type, 2 for planets.
HeightKm 150.0 – stop point height from the target in km; no default.
Lon 86.4 – stop point longitude in degrees; no default.
Lat 13.5 – stop point latitude in degrees; no default.
Up ( 0.871, 0.124, -0.355) – stop point up vector; no default.
Yaw 60.3 – stop point yaw Euler angle in degrees; no default.
Pitch 21.6 – stop point Pitch angle in degrees; no default.
Roll 35.5 – stop point Roll angle in degrees; no default.

}
If Lon and/or Lat are provided, the end point binding mode will be “SyncRot”.
If no stop-point rotation-parameters were provided, the camera will end up rotated towards the center of the selected object.
If selection is a spline path, camera will go to its first knot point position and change its orientation to the first knot point orientation.
If you want to instantly “teleport” to the selection, use Time 0.
If you want to end the flight with the camera looking straight at the object, don’t specify any orientation parameters, or use Yaw 0 Pitch -90 Roll 0.
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command, with wait time equal to those in the Time parameter.

Center

Starts a turn toward the selection. If there is no object selected, an error message will shown in the console, and further execution of the scenario could be wrong. Syntax:
Center – starts a turn with default parameters.
Center { … } – starts a turn with custom parameters provided below:
{

Time 15.0 – duration of the turn in seconds; default is 2.

}
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command, with wait time equal to those in the Time parameter.

Horizon

Starts a turn toward the selection’s horizon. If were no object selected, an error message will shown in the console, and further execution of the scenario could be wrong. Syntax:
Horizon – starts a turn with default parameters.
Horizon { … } – starts a turn with custom parameters provided below:
{

Time 15.0 – duration of the turn in seconds; default is 2.

}
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command , with wait time equal to those in the Time parameter.

GotoLocation

Immediately moves (teleports) the camera to the specified location. Depending on the complexity of the location scene, loading may take a while. You may use FadeOut/FadeIn combined with WaitTrigger “LoadingComplete” to hide the loading process. If the current SpaceEngine version differs from the version number specified in the location code, a warning message will be shown to the user. of Syntax:
GotoLocation “Volcano under rings” – go to a location from the Locations browser (F6 menu).
GotoLocation “Location name” { … } – go to a location, whose code is defined directly in the scenario script in the curly braces block. Always use this method if the location is not one of the default SE locations, otherwise your scenario will not work for other users. To generate the code, add a location in the Location browser, then press “Share” -> “Copy script code to clipboard”, and paste the location code from the clipboard to the scenario script. Then change Place to GotoLocation
Note: the location saves the current stereobase (sense of a scale in 3D/VR modes). You may use this fact to setup a custom stereobase when starting a scenario. Another way to setup the stereobase is using the Stereobase variable (the command Set Stereobase XXXX, see the Variables chapter for details).

GotoURL

Similar to GotoLocation, but uses a location URL instead of code. If the current SpaceEngine version differs from the version number specified in the URL, a warning message will be shown to the user. Syntax:
GotoLocation “se://v=981&m=1&n=%CB%F3%ED%E0%20%C3%…” – go to a specified location URL. Use this as a more compact alternative of the GotoLocation. To generate the URL, add a location in the Location browser, then press “Share” -> “Copy URL to clipboard”, and paste the location URL from the clipboard to the scenario script. Enclose it with quotes and add GotoURL before it.

Follow

Changes camera binding mode to “Follow”: the camera moves together with the selected object’s center, i.e. ignoring its rotation. If a new object is selected, the currently followed object changes to that object, otherwise only the binding mode changes.

SyncRot

Changes camera binding mode to “SyncRot”: the camera moves together with the selected object’s surface, i.e. keeps itself in rest relative to selection’s rotating surface. If a new object is selected, the currently followed object changes to that object, otherwise only binding mode changes.

Free

Changes camera binding mode to “Free”: no binding to any object, camera stays at rest in space. The currently followed object clears.

Track

Enables tracking the selected object: camera rotates so that the tracking object stays in the center of the screen. Changing the selected object will not affect tracking.

Untrack

Disables tracking mode.

MoveMode

Changes camera motion mode (free/spacecraft/aircraft). Syntax:
MoveMode 2
Possible values:
1 – free mode (no inertia, flight direction follows the orientation);
2 – spacecraft mode (motion and rotation inertia, flight direction is independent of orientation);
3 – aircraft mode (motion and rotation inertia, flight direction follows the orientation).

Speed

Sets assigned camera speed in parsecs per second. Syntax:
Speed 2.5 – set a speed of 2.5 pc/s in the Spectator motion mode, otherwise acceleration of 0.25 pc/s2 will be set (in modes with inertia – Spacecraft and Aircraft).

SpeedKm

Sets assigned camera speed in kilometers per second. Syntax:
SpeedKm 123.4 – set a speed of 123.4 km/s in the Spectator motion mode, otherwise acceleration of 0.01234 km/s2 will be set (in modes with inertia – Spacecraft and Aircraft).

Fly

Starts camera moving in a view direction. Syntax:
Fly – starts moving with default parameters.
Fly { … } – starts moving with custom parameters provided below:
{

Axis (0, 0.707, 0.707) – motion direction vector, relative to the current camera orientation; default is (0, 0, 1) – flying forward.
Speed 5.5 – motion speed in parsecs per second; no default.
SpeedKm 17.6 – motion speed in kilometers per second; default is 100.
FadeTime 1.5 – smooth start duration in seconds; default is 2.
Func “Cubic” – smooth start function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command, with some wait time to see the motion effect.

StopFly

Smoothly stops camera motion in the motion modes that have inertia, or cancels out the Fly command. Syntax:
StopFly
StopFly { … } – starts moving with custom parameters provided below:
{

FadeTime 1.5 – smooth stop duration in seconds; default is 2.
Func “Cubic” – smooth stop function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}

Turn

Starts turning (rotating) camera around its own axes. Syntax:
Turn – starts turning with default parameters.
Turn { … } – starts turning with custom parameters provided below:
{

AngularSpeed 45.0 – turn rate in degrees per second; default is 10.
Axis (0, 0.707, 0.707) – axis around which turn occurs; default is (0, 1, 0) – vertical axis of the camera.
FadeTime 1.5 – smooth start duration in seconds; default is 2.
Func “Cubic” – smooth start function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command, with some wait time to see the motion effect.

StopTurn

Cancels out the Turn command. Syntax:
StopTurn – stops orbiting with default parameters.
StopTurn{ … } – starts orbiting with custom parameters provided below:
{

FadeTime 1.5 – smooth stop duration in seconds; default is 2.
Func “Cubic” – smooth stop function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}

Orbit

Starts circular motion (‘orbiting’) around selected object. Syntax:
Orbit – starts orbiting with default parameters.
Orbit { … } – starts orbiting with custom parameters provided below:
{

AngularSpeed 45.0 – orbiting rate in degrees per second; default is 10.
Axis (0, 0.707, 0.707) – axis around which orbiting occurs; default is (0, 1, 0) – polar axis of an object.
FadeTime 1.5 – smooth start duration in seconds; default is 2.
Func “Cubic” – smooth start function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}
During orbiting, camera orientation changes in that way so the object remains static on the screen. Use the Goto/GotoLocation/GotoURL commands before this one to set a proper initial orientation.
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait command, with some wait time to see the motion effect.

StopOrbit

Cancels out the Orbit command. Syntax:
StopOrbit – stops orbiting with default parameters.
StopOrbit { … } – starts orbiting with custom parameters provided below:
{

FadeTime 1.5 – smooth stop duration in seconds; default is 2.
Func “Cubic” – smooth stop function; default is “Linear”, possible values: “Linear”, “Quadric”, “Cubic”, “Sin”.

}

UserMoveControl

Limits user movement ability. Sytax:
UserMoveControl “disabled” – disables user’s movement ability. Camera cannot be moved by user.
UserMoveControl “free” – restores user’s movement ability.
UserMoveControl “limited” { … } – limits user’s movement ability by a some distance from the specified object, and/or limits user movement speed:
{

Center “Mars” – name of object, relative to which movement will be limited. Format is same as in the Select command (prepend name with a parent object name and | to resolve naming ambiguity).
Dist 0.1 – the greatest allowed movement distance from the object in parsecs.
DistLy 0.3 – the same in light years.
DistKm 10000 – the same in kilometers.
DistRad 2.5 – the same in object’s radii.
Speed 0.5 – maximum user movement speed in parsecs per second.
SpeedKm 500 – the same in kilometers per second.

}
You can use either distance limiting or speed limiting, or both.

UserRotationControl

Limits user rotation ability. Sytax:
UserRotationControl “disabled” – disables user’s rotation ability. Camera cannot be turned by user.
UserRotationControl “free” – restores user’s rotation ability.

UserTimeontrol

Limits user time control ability. Sytax:
UserTimeontrol “disabled” – disables user’s time control ability. Simulation date/time cannot be altered by user.
UserTimeontrol “free” – restores user’s time control ability.
UserTimeontrol “limited” { … } – limits user’s time control ability by a specified date/time range and/or time speed range:
{

TimeRange (“2017.02.01 12:00:00”, “2017.02.28 11:59:59”) – date/time range, array of two strings representing starting and ending dates, between which user is allowed to set the simulation time.
TimeRateRange (1.0, 10.0) – time speed range, array of two floating-point nubmers representing minimum and maximum allowed time speed.

}
You can use either time range limiting or time speed limiting, or both.

UserStereobaseControl

Limits user stereobase control ability. Sytax:
UserStereobaseControl “disabled” – disables user’s stereobase control ability. 3D deteobase cannot be altered by user.
UserStereobaseControl “free” – restores user’s stereobase control ability.
UserStereobaseControl “limited” { … } – limits user’s stereobase control ability by a specified range:
{

Range (1.0, 1000.0) – stereoabse range, array of two floating-point nubmers representing minimum and maximum allowed stereoabse.

}

WAYPOINTS

Waypoints are a special ‘virtual’ objects that can be displayed to the user and used in the script. Waypoints can be selected with the Select command using its name, then the Goto or Center command can be called to move/rotate the camera to that waypoint. They also can be used with triggers to detect certain events, such as a reaching a specific point in space, by using the WaitTrigger “Object|Approach” command. See the Triggers chapter for details. Waypoint’s name can contain abbreviations and BB codes, including the [LOC] code to make translations to other languages. The text label near the waypoint can be controlled independently from the waypoint itself (i.e. can be hidden, faded out, changed in color etc).

Waypoint script commands

Waypoint

Adds (defines) a new waypoint, or modifies an existing one. If a waypoint with such name has been defined in the script previously, it will be updated with the provided data, otherwise a new waypoint will be added. Syntax:
Waypoint “Name” { … } – adds/modifies a waypoint with name “Name”, with parameters provided below:
{

Parent “Pandora|Sol” – name of a parent object, i.e. object to which this waypoint is bound. It has the same format as in the Select command (“Parent|Object”).
Visible false – is the waypoint visible to the user or not. Use false to hide previously defined waypoint, and true to show it again. Default is true.
Label true – is the waypoint’s label visible (text, equal to its Name). Default is true.
Radius 0.25 – radius in parsecs.
RadiusKm 500.0 – radius in kilometers; default is 1.
Roll 45.0 – rotation angle of the waypoint model in degrees; default is 0.
Color (1.0, 0.8, 0.0, 0.6) – color in (R, G, B, A) format (A is opacity); default is white – (1, 1, 1, 1).
ColorEmpty (0.2, 0.2, 0.0, 0.6) – color in the empty (non-filled) animation state in (R, G, B, A) format (A is opacity); default is transparent black – (0, 0, 0, 0).
LabelColor (1.0, 0.8, 0.0, 0.6) – color of the text label in (R, G, B, A) format (A is opacity); default is equal to Color, if specified.
FadeRange (10, 20, 900, 1000) – distance range, at which the waypoint is visible, in parsecs. First two values in vector are distance range of smooth transition form invisible to visible state, last two values are distance range of back transition from visible to invisible. Default values are (1e38, 0, 0, 1e38) effectively disables transitions (makes waypoint visible at all distances).
FadeRangeKm (10, 20, 900, 1000) – the same as FadeRange, in kilometers.
LabelFadeRange (10, 20, 900, 1000) – the same as FadeRange, in parsecs, for waypoint’s label.
LabelFadeRangeKm (10, 20, 900, 1000) – the same as LabelFadeRange, in kilometers, for waypoint’s label.
LineWidth 10 – width of the line in pixels; default is 2.
Shape “Diamond” – shape of the waypoint which will be displayed to the user. Allowed shapes are: “Circle”, “Triangle”, “Square”, “Diamond”, “Hexagon”, “Billboard”, “Sphere”, “WireSphere”. The latter two are 3-dimensional. Default is “Circle”.
StaticPosXYZ (1.0, 0.5, 0.7) – static Cartesian coordinates (x, y, z) relative to the parent object in parsecs.
StaticPosXYZKm (110.5, 57.3, 16.7) – static Cartesian coordinates (x, y, z) relative to the parent object in kilometers.
StaticPosPolar (32.9, 60.3, 1.65) – static polar coordinates (latitude, longitude, distance) relative to the parent object; lat/lon in degrees, distance in parsecs.
StaticPosPolarKm (32.9, 60.3, 7500.0) – static polar coordinates (latitude, longitude, distance) relative to the parent object; lat/lon in degrees, distance in kilometers.
FixedPosXYZ (1.0, 0.5, 0.7) – fixed Cartesian coordinates (x, y, z) relative to the parent object in parsecs.
FixedPosXYZKm (110.5, 57.3, 16.7) – fixed Cartesian coordinates (x, y, z) relative to the parent object in kilometers.
FixedPosPolar (32.9, 60.3, 1.65) – fixed polar coordinates (latitude, longitude, distance) relative to the parent object; lat/lon in degrees, distance in parsecs.
FixedPosPolarKm (32.9, 60.3, 7500.0) – fixed polar coordinates (latitude, longitude, distance) relative to the parent object; lat/lon in degrees, distance in kilometers.
Texture “data/textures/common/logo0990.*” – path to the image file for the billboard waypoint.
TexCoord (0.5, 0.5, 0.2, 0.5) – texture coordinates in relative units: (x offset, y offset, width, height). Value of 0.5 means 50% of the texture dimension (width or height), 0.25 means 25% and so on. The specified area of the texture will be displayed. Default is (0, 0, 1, 1) – display the whole texture.
TexCoordPix (0.5, 0.5, 0.2, 0.5) – texture coordinates in pixels: (x offset, y offset, width, height). The specified area of the texture will be displayed.

}
Static coordinates are equivalent to the ‘Follow’ mode, while fixed coordinates are equivalent to the ‘SyncRot’ mode. In the first case, waypoint is bound to the parent object’s center, i.e. moves together with the object, ignoring its rotation. In the second case, it moves and rotates together with the object, i.e. remains fixed relative to the object’s surface.
Waypoint with shape “Circle” supports filling-like animation, when used with the WaitTrigger “Object|See” (see Triggers for details). It starts as the circle of the color ColorEmpty, and while user looking on it during the Delay seconds (this is the trigger’s parameter), it filling up clockwise with the color Color.
Waypoint with shape “Billboard” is alpha-blended textured billboard (a rectangle always oriented to the user). Parameter Texture specifies the image used to texture the billboard. If not specified or image file does not exist, the default ‘No image’ texture will be used. Parameters TexCoord or TexCoordPix specifies which part of the image to use. If not specified, the whole image will be displayed. Parameter Color specifies color modulation of the texture and its alpha (opacity) channel.

DeleteWaypoint

Deletes a previously added waypoint. Syntax:
DeleteWaypoint “Name”

ClearWaypoints

Deletes all waypoints.

CAMERA SPLINE PATHS

The camera spline path is a powerful tool to make custom flybys. Using the Camera path editor, you can ‘record’ your manual flight, and save it to a script file for a further use. This includes:

– replaying a recorded path in the Camera path editor;
– replaying a recorded path while simultaneously capturing video in a high quality rendering mode (offline video rendering);
– replaying a recorded path in a script using the PlaySplinePath command.

Spline is a mathematical function which is used for a smooth interpolation of some value (in SpaceEngine, camera coordinates and orientation) between a discrete number of data points, called knots. In other words, you may have, say, only 50 knots – data points which represents fixed position and orientation in space – and perform a smooth movement between them. This is a very compact and convenient way to record a flights.

Spline path script commands

SplinePath

Adds (defines) a camera spline path. Syntax:
SplinePath “SplineName” { … } – adds a spline path with a name “SplineName” with parameters provided below:
{

Body “PI Hya 7” – name of a reference object.
Parent “PI Hya” – name of a reference object’s parent.
SyncRot true – spline path binding mode: SyncRot if true, Follow if false.
Duration 52.0 – replay duration in seconds.
PosSpline “Catmull-Rom” – a type of position interpolation spline.
RotSpline “B-spline” – a type of orientation interpolation spline.
FollowQuat (1, 0, 0, 0) – initial camera orientation in the Follow binding mode.
SplineData { … } – array of knot points: multiple lines in the form of (time, pos.x, pos.y, pos.z, rot.w, rot.x, rot.y, rot.z), enclosed in a curly braces.

}
You may type all the data points into the SplineData { } tag manually, but using the Camera path editor is a more convenient way.

DeleteSplinePath

Deletes a camera spline path. Syntax:
DeleteSplinePath “SplineName”

ClearSplinePaths

Deletes all camera spline paths. Syntax:
ClearSplinePaths

PlaySplinePath

Starts flight through the spline path. Syntax:
PlaySplinePath “SplineName” – starts flight through the spline path “SplineName” with default parameters.
PlaySplinePath “SplineName” { … } – starts flight through the spline path “SplineName” with custom parameters provided below:
{

Time 30.0 – overrides the flight duration; default value is a spline duration described in the SplinePath command.

}
Seeing as the camera is being teleported to the first spline’s knot point and starts smooth moving through other knot points, it is a good idea to smoothly move the camera to the first knot point before calling this command. To do this, use the Goto “SplineName” command.
Important: the next script command will be executed immediately after this one. You must follow this command with the Wait, with a wait time equal to the Time parameter of the spline path duration, to delay the execution of the next commands until the spline flight completes. Other commands may be executed during the spline flight, except commands which change the camera position/orientation.

Using the Camera path editor

Open the Camera path editor in the Main menu > Editor menu. Configure the path parameters: its name, types of splines, how often to add a knot point. Start recording a path by pressing the [Record] (red round) button; when done, stop recording by pressing the [Stop] (white square) button. You may visualize the recorded path by ticking the ‘Display path curve’, and replay it by pressing the [Play] (white triangle) button. It is possible to add knot points manually while recording .

In the current version of SpaceEngine, it is impossible to edit the recorded spline, but this functionality will be added in future. You may only change the spline type and replay duration.

Once completed, save the file to the desired directory, for example addons/my_addon/scripts/path.ssp. The saved file is a usual SE scenario script file, which contains only one command SplinePath with some parameters and data points. It has the *.ssp extension just to distinguish it from a usual script files *.se in the open/save file dialog. You may use this file further, either to it load back into the editor, or to replay the recorded path from another script. There are two ways to achieve this:

– simply open the saved file, copy its content and paste into your script;
– call the script file with a recorded path from your script using the Run command:

Code
Run “path.ssp”

After defining the spline path in the script by one of these methods, you may replay it by the PlaySplinePath command:

Code
PlaySplinePath “PathName”

Here “PathName” is the same name used in the SplinePath command (either in the *.ssp file or directly in your script). It is a good idea to smoothly move camera to the first spline’s knot point before starting the replay. Use the Goto “PathName” to do this.

The spline path is bound to some space object. By default, it is the same object that is bound to the camera when you started recording the path. It has two binding modes: Follow and SyncRot. In the Follow mode, spline moves together with the object, ignoring its rotation. In the SyncRot, it moves and rotates together with the object, i.e. remains fixed relative to the object’s surface. The first is useful for a deep-space path recording, while the second is best for flights above the planetary terrain. You may switch modes by the ‘SyncRot’ checkbox in the Camera path editor.

You may set any custom date/time and speed up the time flow during path replay (either manually or by the time control script commands), and this will not affect the motion of the camera relative to the object or its surface. This is useful for making a ‘timelapse’ effect.

Usage of the Camera path editor and recording a video with it is summarized in this video. Note that it may be out of date; the tools shown in your version of SpaceEngine are likely much more advanced.

TIME CONTROL COMMANDS

StopTime

Pauses timeflow.

StartTime

Resumes timeflow: sets the time rate to the value it has before pausing by the StopTime command or by user actions.

TimeScale

Sets a time rate (speed). Syntax:
TimeScale 100.0 – sets a time rate of 100x times faster than real time.
Use negative values to reverse direction of timeflow. Use value of 1 to set the real time rate. Don’t use a value of zero to stop the time flow, use the StopTime command instead.
TimeScale is also a variable, so it’s possible to use Set TimeScale XXX, Interpolate TimeScale { … }, if { TimeScale > XXX } and other commands to manipulate variables. See Variables chapter for details.

Date, Time

Sets specified date and time. Both commands are equal. Syntax:
Date “2017.02.08 17:29:34.65” – sets date and time with millisecond precision. Format is “YYYY.MM.DD hh:mm:ss.sss”. You may omit the smaller values (i.e. limit precision up to seconds, minutes, days and months); in that case omitted terms will be considered as zero (hours, minutes and seconds) or one (months, days). Example:
Date “2017.02.08 17:29” – sets 17:29:00 on 08 February 2017.
Date “2017.02.08” – sets 00:00:00 on 08 February 2017.
Date “2017.02” – sets 00:00:00 on 01 February 2017.
Date “2017” – sets 00:00:00 on 01 January 2017.
Date “current” – sets the current date according to the system clock.

TRIGGERS

Triggers are events which can occur while SpaceEngine is running: user inputs, variable changes, position/time matches, etc.

WaitTrigger

Delays script execution until some event happens. Syntax:
WaitTrigger “TriggerName” – wait until event “TriggerName” happens, some default parameters could be used.
WaitTrigger “TriggerName” { … } – wait until event “TriggerName” happens, with parameters provided below:
{

Object “Sol|Earth” – name of a SpaceEngine object (planet, galaxy etc) or a waypoint.
Type “Planet|Desert” – type of a SpaceEngine object. See the table below for details.
Dialog “Universe map” – name of a dialog window, toolbar or any GUI widget. See SetWidgetStyle for details.
Mode “AND” – modifies default behaviour or interval checking for some triggers. Possible values: “OR”, “AND”, “Crossed”, “Earlier”, “Later”, “InRange”, “OutRange”. Defaults are “OR” and “Crossed”.
Time “2017.02.09 22:05:15” – date/time value, format is identical to the Date command.
TimeRange (“2017.02.09 22:05:00”, “2017.02.09 22:06:00”) – date/time range, array of two strings representing two dates.
MaxWaitTime 5.5 – maximum wait time in seconds.
Value 5.5 – value of a variable.
ActivationDelay 5.5 – delay before trigger activation in seconds.
AnimateObject “Fill” – animate of the Object (typically, a waypoint) while delay before activation is in progress.
Rect (0.2, 0.8, 0.1, 0.9) – rectangular area on the screen, in format (left, right, top, bottom); default is (0, 0, 1, 1).
Dir (0.27, 0.63, -0.46) – direction vector.
Direction (0.27, 0.63, -0.46) – the same as Dir.
Range (28.5, 36.4) – range of change of some value; units are parsecs, parsecs per second etc (depends on a trigger).
RangeKm (28500, 36400) – the same as Range for some triggers, units are kilometers or kilometers per second.
RangeRad (1.5, 2.5) – the same as Range for some triggers, units are object’s radii.
LonLatRange (48, 49, 36, 38) – range of change in a longitude and latitude of a camera position over a planet; units are degrees; format is (min lon, max lon, min lat, max lat).
YawRange (-15, 15) – range of change in a camera yaw angle in degrees.
PitchRange (-20, 20) – range of change in a camera pitch angle in degrees.
RollRange (-5, 5) – range of change in a camera roll angle in degrees.

}

If the ActivationDelay parameter is provided, the system waits specified amount of seconds after the trigger activation before throwing the actual activation event (giving control to the next script command). If the trigger activation conditions were broken (for example, user stopped looking at the object in “Object|See” trigger), this delay timer resets. The delay times can be used to animate the object, to which the trigger is linked (typically, the waypoint). The animation style is defined by the AnimateObject parameter:
“Fill” – fill the circle-shaped waypoint clockwise with another color (ColorEmpty to Color);
“FadeIn” – fade the waypoint in;
“FadeOut” – fade the waypoint ont;
“Rotate” – rotate the waypoint (works only with 2D shapes).

BeginMultitrigger

Start a sequence of multiple WaitTrigger commands. Script execution will be delayed until one or all triggers in the section are triggered. Syntax:
BeginMultitrigger “OR” – wait for one of the provided triggers.
BeginMultitrigger “AND” – wait for all of the provided triggers.

EndMultiTrigger

Start a sequence of multiple WaitTrigger commands. Syntax:
EndMultiTrigger – wait for one of the provided triggers.

Use the multi-trigger system if you want to wait for multiple triggers. For example, if you want to wait until the user selects Earth, then centers on it, use this code:

Code
BeginMultiTrigger “AND”
WaitTrigger “Object|Select” { Object “Earth-Moon|Earth” }
WaitTrigger “Control|Center”
EndMultiTrigger

List of triggers

There are many triggers available. Choose a needed trigger by specifying its name. Here is a description of all triggers, events which activate them, and parameters which triggers use.

Trigger nameActivation eventUsed parameters
“Control|Rotate”Camera rotatesMode, YawRange, PitchRange, RollRange
Mode “OR” – activates if one of the provided angles are out of range
Mode “AND” – activates if all of the provided angles are out of range
“Control|Orbit”Camera orbits some object
“Control|Move”Camera movesRange, Dir, Direction
Activates if camera passes a specified distance range, and/or moves in a specified direction (with accuracy of 1%)
“Control|StopRotate”Camera stops rotation
“Control|StopOrbit”Camera stops orbiting
“Control|StopMove”Camera stops moving
“Control|Follow”Camera binding mode changes to “Follow”
“Control|SyncRot”Camera binding mode changes to “SyncRot”
“Control|Free”Camera binding mode changes to “Free”
“Control|Track”Tracking of the object enables
“Control|Untrack”Tracking of the object disables
“Control|ChangeSpeed”Assigned camera speed changesRange
Activates if the assigned camera speed falls within the range
“Control|ChangeFOV”Camera FOV changesRange
Activates if the camera FOV falls within the range
“Control|ResetFOV”Camera FOV resets to default value
“Control|Goto”The ‘Go to’ command activatesObject, Type
If Object is not specified, then the currently selected object is used.
Trigger activates if the command is applied to that object and/or type of objects.
“Control|GotoCenter”The ‘Go to center’ command activates
“Control|Land”The ‘Land’ command activates
“Control|Center”The ‘Center’ command activates
“Control|Horizon”The ‘Horizon’ command activates
“Control|MapCenter”The Universe map centeres on object
“Control|MapFocus”The Universe map focuses on object
“Control|MapGoto”The Universe maps ‘Go to’ command activates
“Control|ChartCenter”The Chart centeres on object
“Control|ChartFocus”The Chart focuses on object
“Control|MapZoom”The Universe map zoom changesRange
Activates if the map/chart zoom is out of range
“Control|ChartZoom”The Chart zoom changes
“Control|ChartMoveX”The Chart scrolls in X direction
“Control|ChartMoveY”The Chart scrolls in Y direction
“Control|ChartMoveZ”The Chart scrolls in Z direction
“Control|MapHorizon”The Universe map rotates to horizon (not implemented!)
“Control|ChartRotate”Planets in the Chart rotates
“Control|SetTime”Simulation date/time changes
“Control|SetCurrentTime”Simulation data/time sets to the current system clock
“Control|SetTimeRate”Time flow speed changesRange
Activates if the time flow speed fits in the range
“Control|PauseTime”Time flow pauses
“Control|ResumeTime”Time flow resumes
“Control|ReverseTime”Time flow direction reverses
“Time”Simulation time crosses the specified date or range of datesMode, Time, TimeRange
Mode “Crossed” – activates if sim time crosses the Time value
Mode “Earlier” – activates if sim time becomes earlier than the Time value
Mode “Later” – activates if sim time becomes later than the Time value
Mode “InRange” – activates if sim time goes in the TimeRange range
Mode “OutRange” – activates if sim time goes out of the TimeRange range
“Object|Select”Object is selectedObject
If Object is not specified, trigger activates when any object is selected.
“Object|See”Object appeared on the screenObject, Rect, ActivationDelay, AnimateObject
If Object is not specified, the currently selected object is used.
Trigger activates if the object’s position on the screen fits into Rect, and user keeps it inside the Rect during Delay seconds. During these seconds, the Object is animated by the method AnimateObject. See Waypoints for details.

“Object|Approach”User approaches the objectObject, Type, Range, RangeKm, RangeRad, LonLatRange
If Object name is not specified, then the nearest detected object of specified type is used as the target.
If Type is “Selection”, then currently selected object is used as the target.
Trigger activates if the distance to target fits the Range, RangeKm or RangeRad, and/or camera longitude/latitude fits the LonLatRange.
“GUI|Open”Dialog window opensDialog
Dialog is a widget name, see SetWidgetStyle for details.
“GUI|Close”Dialog window closes
“GUI|LockPanel”Toolbar locks
“GUI|HalfLockPanel”Toolbar half-locks
“GUI|UnlockPanel”Toolbar unlocks
“GUI|LeftClick”User clicks the widget with the left mouse button
“GUI|RightClick”User clicks the widget with the right mouse button
“GUI|SelectObject”User selects object or type of objects using any interface functionDialog, Object, Type
Dialog is a widget name.

If Object is not specified, trigger activates when any object is selected. In the Location browser, Object is a name of the location.
“GUI|SelectElement”User selects table cell
“GUI|ChangeValue”User moves slider, clicks slider’s arrow buttons, selects new item in the drop-down box, or clicks checkbox/tickboxDialog, Value, Range
Dialog is a widget name.

Trigger activates if the the new control’s value matches the Value or fits into the Range.
“GUI|ActionEnter”User enters the next level in the multi-level dialog (Solar system browser)Dialog
Dialog is a widget name (use “Solar system browser”).
“GUI|ActionBack”User enters the previous level in the multi-level dialog (Solar system browser)
“GUI|ActionStart”User starts job in the dialogDialog
Dialog is a widget name.
Dialog “Star browser” – user starts/stops searching.
Dialog “Music player” – user starts/stops the playback.
“GUI|ActionStop”User stops job in the dialog
“GUI|ActionNext”User executes next job in the dialogDialog
Dialog is a widget name.
Dialog “Music player” – user plays next/previous track.
“GUI|ActionPrev”User executes previous job in the dialog
“EnterPlanetarium”User enters the planetarium mode
“EnterSinglePlayer”User enters the simulator (game) mode
“EnterMenu”User enters the main menu
“LoadingComplete”Loading of the scene completesMaxWaitTime
Trigger activates when the loader task list becomes empty (scene loading is complete).
If MaxWaitTime is provided, trigger waits up to specified period of time, then activates even if scene is still loading.
“ScreenshotComplete”Saving screenshot to the disk completes

Object type list

Some triggers require a Type parameter, describing a type of a SpaceEngine object. Possible values are summarized in the table below. Each type can be followed by a subtype or class, separated by ‘|’. For example: “Galaxy|SBc”, “Star|G2V”, “Body|Asteroid”, “Planet|Terra”.

TypeSubtype/classUsage example
SelectionNot used“Selection” – currently selected object
WaypointNot used“Waypoint” – any waypoint
GalaxyGalaxy Hubble class. See Creating a DSO for details.“Galaxy” – any type of galaxy
“Galaxy|Sa” – any Sa galaxy
“Galaxy|E5” – any E5 galaxy
ClusterStar cluster type: Open, Globular, Kern, Part. See Creating a DSO for details.“Cluster” – any type of cluster
“Cluster|Open” – any open cluster
“Cluster|Globular” – any globular cluster
NebulaNebula type: Diffuse, Planetary, SNR. See Creating a DSO for details.“Nebula” – any type of nebula
“Nebula|Diffuse” – any diffuse nebula
“Nebula|Planetary” – any planetary nebula
StarStellar spectral class. See Creating a star for details.“Star” – any type of star
“Star|G2V” – any G2V-type star
“Star|DA2” – any DA2-type star
Body
Planet
Moon
DwarfPlanet
DwarfMoon
Asteroid
Comet
Barycenter
StarBarycenter
Temperature class: torrid, hot, warm, temperate, cool, cold, frigid.
Volatiles class: airless, arid, lacustrine, marine, oceanic, superoceanic, nonarid.
Size class: micro, mini, sub, norm, super, mega.
Bulk composition class: astroidal, ferria, terra, carbonia, aquaria, neptune, jupiter, browndwarf, sun or legacy classes: desert, selena, oceania, waterworld, titan, iceworld, icegiant, gasgiant, jovian.
See Creating a planet for details.
“Planet” – any planet
“Planet|terra” – any terra (rocky) planet
“Planet|hot|super|terra” – any hot super-earth rocky planet
“Moon|cold|aquaria” – any cold icy moon
“Moon|temperate|marine|norm|terra” – any temperate marine earth-sized rocky moon
“Body” – any type of a planetary body (planet, moon etc)
“Body|terra” – any type of a terra (planet, dwarf planet, moon etc)
“Body|asteroidal|cold” – any type of cold asteroidal object (asteroid, comet, dwarf moon etc)
“Asteroid|cold” – any cold asteroid (note difference with previous example)
“Barycenter” – any barycenter of a binary planetary object
“StarBarycenter” – any barycenter of a binary star

Note the Bulk composition class asteroidal: in SE interface and catalog scripts it is “astroid”, but here it is “asteroidal” to distinguish it from the Type Asteroid.

VARIABLES

Variables are program parameters, which controls various rendering and logics aspects of SpaceEngine. Most variables are loaded from the config file at the program startup, some of them are linked to controls in the settings menu, and all of them (except read-only ones) can be changed by a script commands listed below. Variables can be one of these types:

– boolean, has only 2 values: false and true;
– integer, a integer number (32-bit);
– float, a single-precision floating-point number (IEEE 754 FP32);
– double, a double-precision floating-point number (IEEE 754 FP64).

Integer, float and double variables have minimum and maximum value, which are taken into account by the Set command. All variables have default values, which are assigned to them at the program startup or by the Reset command.

Boolean variables can be toggled (switched) just by typing their name in the script (so they work as an individual “commands”):

HardwareCursor – toggle on/off the hardware mouse cursor;
FXAA – toggle on/off FXAA anti-aliasing.

This is useful in the direct mode (typing commands directly to the SE console), but may be used in scripts as well. This in not recommended though, because makes scripts harder to understand, and in most cases you need to assign some initial values anyway.

Set, SetU, SetForce

Sets a variable with (Set) or without the range check (SetU, SetForce) in the current program mode (Set, SetU) or in all modes (SetForce). Syntax:
Set ShowOrbitsDwarfMoons true – assigns a value of true to the boolean variable ShowOrbitsDwarfMoons.
Set ClipHeight 5.0 – assigns a value of 5.0 to the variable ClipHeight.
SetU ClipHeight -5.0 – assigns a value of -5.0 to the variable ClipHeight. Negative values are not allowed for this variable, this may result in bugs.
SetForce BloomBright 1.0 – assigns a value of 1.0 to the variable BloomBright in all program modes, even in the main menu.
Range check: if the value is out of the range which variable allows, it is clamped into the allowed range, and a warning message is printed to the console (except boolean variables, which have no range). The SetU and SetForce ignores this check (this may be unsafe in some cases!).
Program mode: variables have different “slots” in the main menu, planetarium and single player modes. For example, if your script sets variable in the planetarium mode, this will affect only the planetarium. When entering the main menu, a different value for this variable will be used. When returninig back to the planetarium, previously set value will be restored. The SetForce command assigns a new value to all modes (slots).
Read-only variables: some variables are read-only. It is impossible to assign a new value to them. List of read-only variables:
UsedVRRuntime, VRControllerType, ProjectionMode, Exposure, HaveDLC_Steam_PRO.

Reset

Sets a variable to its default value in the current program mode. Syntax:
Reset ClipHeight – assigns a default value to the variable ClipHeight.
Reset ShowOrbitsDwarfMoons – assigns a default value to the boolean variable ShowOrbitsDwarfMoons.
The default values for all variables are listed in the table below. Resetting is impossible for read-only variables.

Interpolate

Interpolates (animates) a variable value with time in the current program mode. Syntax:
Interpolate VariableName { To 10 } – interpolates a variable VariableName to the final value specified by the To parameter.
Interpolate VariableName – interpolates a variable VariableName with custom parameters provided below:
{

Time 3 – duration of the animation in seconds; default is 2.
From 5 – initial value for the animation; default is minimum allowed variable value (see the table below).
To 10 – final value for the animation; default is maximum allowed variable value (see the table below).
Func “quadric” – shape of the interpolation function; allowed values are “linear”, “quadric”, “cubic”, “sin”, “exp”, “revexp”; default is “linear”.

}
The variable name and the To parameter are mandatory. If the From parameter is not provided, interpolation starts from the current variable’s value. Initial and final values are floating-point, but will be converted to the variable’s type. Interpolation is impossible for boolean and read-only variables.
The next script command executes immidiately. You can interpolate any number of variables simultaneously.

Get

Returns the current value of a variable in the current program mode. Syntax:
Get ClipHeight – returns the current value of the variable ClipHeight and prints it to the console.
Get ShowOrbitsDwarfMoons – returns the current value of the boolean variable ShowOrbitsDwarfMoons and prints it to the console.
For now, this command makes sense only if used in the console (in direct mode), just for the information.

WaitVar

Delays execution of the script until a variable matches the specified value. Syntax:
WaitVar ClipHeight 15 – delays the script until the variable ClipHeight matches the value of 15.
WaitVar ShowOrbitsDwarfMoons false – delays the script until the variable ShowOrbitsDwarfMoons matches the value of false.
If the variable already has the desired value, the command returns immediately (script is not delayed).

SaveVars

Saves current values of all variables in the current program mode and locking states of toolbars. Syntax:
SaveVars
It is recommended to call this command at the beginning of a script, if that script is not allowed to change the normal settings or state of SpaceEngine. When the script finishes, or interrupts by a user or due to an error, all variables will be restored (equivalent of calling of the RestoreVars command).

RestoreVars

Restores values of all variables and locking states of toolbars in the current program mode, previously saved by the command SaveVars. Syntax:
RestoreVars
It is not necessary to call this command at the end of the script which uses SaveVars command, because variables will be restored automatically once script finishes. But you may call this command at any point of the script.

List of variables

The table below has a full list of variables. Some boolean variables are marked as a cheat code. Setting them to true displays a message “Cheater!”, and enables some really cheat-y functions in gameplay.

NameTypeDefaultMinMax
DEAMaxTermsinteger10000010000
StarColorShiftfloat0-11
StarColorSaturationfloat102
SunIllumSaturationfloat102
IllumSaturationAutobooleantrue
RealTimebooleanfalse
RealTimeFPSdouble3011000
QualityPresetinteger404
FullConstellationNamesbooleantrue
ConstelBordersAtInfbooleantrue
ConstelBordersRadiusfloat2001e+06
ConstelBordersFadeStartfloat20001e+06
ConstelBordersFadeEndfloat80001e+06
ConstelLinesFadeStartfloat400001e+06
ConstelLinesFadeEndfloat800001e+06
ConstLinesAllbooleanfalse
ConstBoundaryAllbooleanfalse
ConstLabelAllbooleanfalse
ConstLinesZodiacbooleanfalse
ConstBoundaryZodiacbooleanfalse
ConstLabelZodiacbooleanfalse
LightDimmingMagnfloat-15-100100
LightLimitMagnfloat-10-100100
LensFlareFadeBeginMagnfloat-17-100100
LensFlareFadeEndMagnfloat-14-100100
LensFlareSmallMethodRadiusfloat40.1100
LensFlareLargeMethodRadiusfloat80.1100
LensFlareScalefloat10.110
LensFlareBrightfloat10.110
PseudoFlareBrightfloat10.110
SaveAlphabooleanfalse
JpegQualityinteger850100
CompressCopyQueuebooleanfalse
FBOResolutionfloat0.350.11
ImpostorResolutionfloat0.350.11
SkyboxResolutionfloat0.750.11
MaxTimePerFrameCleanfloat2011000
MaxTimePerFrameCleanVRfloat2011000
LinkStereobaseToMoveSpeedbooleantrue
LinkStereobaseToTimeScalebooleanfalse
StereobaseToMoveSpeedfloat0.00101
StereobaseToTimeScalefloat0.601000
PhotoModeinteger002
ExposureCompfloat0-424
Exposurefloat01e-1316
ProjectionModeinteger003
StereoscopicModeinteger006
StereoscopicModeLastinteger206
ForceStereoscopicModeinteger006
CubemapFormatinteger006
VSyncinteger202
DSOBrightnessfloat102
DSOContrastfloat102
DSOSaturationfloat102
DSOGammafloat102
GalaxyEllipticalGammafloat104
Brightnessfloat102
Contrastfloat102
Saturationfloat102
Gammafloat102
Sharpnessfloat002
BloomBrightfloat0.701
BloomThresholdfloat00100
ShowBackgroundbooleanfalse
ShowCubempEdgesbooleanfalse
FitCubemapToScreenbooleantrue
LinesSmoothingbooleantrue
LinesWidthfloat1010
AnisotropyLevelinteger0016
StereoInterlacedbooleanfalse
StereoSwapEyesbooleanfalse
StereoIPDfloat6.4110
StereoConvergencefloat10.52
Stereobasefloat111e+25
MipmapsGUIbooleantrue
MipmapsFramebooleantrue
MipmapsEnvbooleantrue
MSAALevelinteger0032
MSAALevelVRinteger0032
MSAALevelEnvinteger0032
MSAALevelEnvVRinteger0032
MSAALevelImpinteger0032
FXAAbooleantrue
FXAAImpbooleantrue
Ditheringbooleantrue
FastCubemapbooleanfalse
TestGridbooleanfalse
DistortInterfacebooleanfalse
FisheyeFlipXbooleanfalse
FisheyeFlipYbooleanfalse
FisheyeFOVfloat18040360
FisheyeGUIAnglefloat90-180180
FisheyeZoomfloat113
FisheyeCropfloat112
fxaaSubpixfloat0.7501
fxaaEdgeThresholdfloat0.1250.06250.3333
fxaaEdgeThresholdMinfloat0.08330.03120.0833
WatermarkOpacityfloat0.501
OverlayFadeInfloat0.2060
OverlayFadeOutfloat0.35060
WidgetFadeInfloat0.2060
WidgetFadeOutfloat0.35060
WidgetSlideInfloat0.2060
WidgetSlideOutfloat0.02060
BottomInfoHUDbooleanfalse