Space Engine | Scenario scripts
1399
page-template-default,page,page-id-1399,page-child,parent-pageid-519,eltd-cpt-1.0,ajax_leftright,page_not_loaded,,se-ver-2.1, vertical_menu_with_scroll,transparent_content,blog_installed,wpb-js-composer js-comp-ver-4.11.2.1,vc_responsive
SCENARIO SCRIPTS

This page describes the new functionality introduced in the upcoming SpaceEngine 0.981, which has not been released yet.

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

SpaceEngine console and *.se files

SpaceEngine 0.981 introduced new type of files – *.se. It is a scenario script files, contains a code which could be executed by SpaceEngine. Great example of what scenarios are capable to is Tutorials, introduced in 0.981. Default location for *.se files is data/scripts/ or addons/*/scripts/ folder. You can run *.se file from SpaceEngine by opening 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 passing them to SpaceEngine’s executable through command line argument. The best way to do that is associate *.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) an additional parameters, provided in the curved braces block (i.e. that 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 in a groups according to their functions. Unroll the blacks 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 is allowed. Useful to execute some 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 all will be interrupted. Used primarily in direct mode (from the console) to break the script, but could be called from the *.se file. Syntax:
Break

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 usable command in SE scripts. You will use it a lot after many commands, which requires delay before the next command. For example, when you calling the Goto command with parameter Time 10 (duration of the flight – 10 seconds), you probably want to follow it by the 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 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 981 – for SE version 0.981

LessonName

Sets name of a current tutorial lesson (chapter). Used only in tutorials, the name of the lesson is displayed in the Tutorials menu. Syntax:
LessonName “Introduction”

LessonComplete

Signals that the specified tutorial lesson is complete. Used only in tutorials, marks the specified lesson as ‘complete’, which unlocks the next lesson in the Tutorials menu. Syntax:
LessonComplete “Introduction”

CAMERA CONTROL COMMANDS

FOV

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

Select

Selects a space object, ship, waypoint or spline path. Equivalent of mouse click on object, selecting it using search tool, etc. If command succeeds, selection pointer will switch to the selected object. If command fails, the error message will by typed into console, and further execution of the scenario could be wrong. Syntax:
Select Earth – selects a space object by it’s name. Quotes can be skipped, if there is no spaces in object’s name.
Select “RS 8474-2738-5-27954-210 1” – selects a space object by it’s name. Use quotes if there are spaces in object’s name.
Select “Pandora|Sol” – selects a space object by it’s name and it’s parent name. Useful to solve name conflicts (for example, there is a Pandora moon of Saturn and asteroid (55) Pandora orbiting the Sun).
Select “Waypoint 1” – selects a previously defined waypoint (see Waypoint).
Select “Path 1” – selects a previously defined spline path (see SplinePath).

Unselect

Removes selection. Selection pointer will disappear. Syntax:
Unselect

Goto

Moves camera to the selection. If were no object selected, the error message will by typed into console, and further execution of the scenario could be wrong. Syntax:
Goto – starts a flight with default parameters.
Goto { … } – starts a flight with a 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 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 yow Euler angle in degrees; no default.
Pitch 21.6 – stop point yow Pitch angle in degrees; no default.
Roll 35.5 – stop point yow Roll angle in degrees; no default.

}
If Lon and/or Lat are provided, end point binding mode will be “SyncRot”.
If no stop point rotation parameters were provided, camera will end up rotated toward 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 with flight with a camera looking straight on the object, don’t specify any orientation parameters, or use Yaw 0 Pitch -90 Roll 0.
Important: a next script command will be executed immediately after this one. You must follow this command with the Wait with wait time equal to those in the Time parameter.

Center

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

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

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

Horizon

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

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

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

GotoLocation

Immediately moves (teleports) camera to the specified location. Depending on complexity of the location scene, its 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, the warning message will be shown to user. of Syntax:
GotoLocation “Volcano under rings” – go to a location from the Locations browser (F6 menu).
GotoLocation “Location name” { … } – go to a location, which 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.

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, the warning message will be shown to 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 it’s rotation. If a new object were selected, the currently following object changes to that object, otherwise only binding mode changes. Syntax:
Follow

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 were selected, the currently following object changes to that object, otherwise only binding mode changes. Syntax:
SyncRot

Free

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

Track

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

Untrack

Disables tracking mode. Syntax:
Untrack

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:
MoveMode 2.5 – set a speed of 2.5 pc/s

SpeedKm

Sets assigned camera speed in kilometers per second. Syntax:
MoveMode 123.4 – set a speed of 123.4 km/s

Move

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

Speed 5.5 – motion speed in parsecs per second; no default.
SpeedKm 17.6 – motion speed in kilometers per second; default is 100.
Axis (0, 0.707, 0.707) – motion direction vector relative to current camera orientation; default is (0, 0, 1) – flying forward.

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

StopMotion

Smoothly stops camera motion in motion modes with inertia or cancels out the Move command. Syntax:
StopMotion

StopRotation

Smoothly stops camera rotation in motion modes with inertia. Syntax:
StopRotation

Orbit

Starts circular motion (‘orbiting’) around selected object. Syntax:
Orbit – starts orbiting with default parameters.
Orbit { … } – starts orbiting with a 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 is occurred; default is (0, 1, 0) – polar axis of an object.

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

StopOrbit

Cancels out the Orbit command. Syntax:
StopOrbit

WAYPOINTS

Waypoints are a special ‘virtual’ objects that can be displayed to user and used in the script. Waypoint can be selected with the Select command using its name, then the Goto or Center command can be called to move/rotate camera to that waypoint. It also can be used with triggers to detect some events, such as a reaching a specific point in space, by using the WaitTrigger “Object|Approach” command. See the Triggers chapter for details.

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 a name “Name” with a 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”).
Radius 0.25 – radius in parsecs.
RadiusKm 500.0 – radius in kilometers; default is 1.
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).
Shape “Diamond” – shape of the waypoint which will be displayed to user. Allowed shapes are: “Circle”, “Triangle”, “Square”, “Diamond”, “Hexagon”. Default is “Circle”.
Visible false – is waypoint visible to user or not. Use false to hide previously defined waypoint, and true to show it back. Default is true.
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.

}
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.

DeleteWaypoint

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

ClearWaypoints

Deletes all waypoints. Syntax:
ClearWaypoints

CAMERA SPLINE PATHS

The camera spline path is a powerful tool to make a 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 with simultaneous capturing of a 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 uses for a smooth interpolation of some value (in SpaceEngine, camera coordinates and orientation) between discrete number of data points, called knots. In other words, you may have just, say, 50 knots – data points which represents fixed position and orientation in space – and then 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 a 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: if SyncRot if true, Follow if false.
Duration 52.0 – replay duration in seconds.
PosSpline “Catmull-Rom” – type of a position interpolation spline.
RotSpline “B-spline” – type of an orientation interpolation spline.
FollowQuat (1, 0, 0, 0) – initial camera orientation in the Follow binding mode.
SplineData { … } – array of knot points: a multiple lines of a 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 data points to 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 a default parameters.
PlaySplinePath “SplineName” { … } – starts flight through the spline path “SplineName” with a custom parameters provided below:
{

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

}
The camera is being teleported to the first spline’s knot point and starts smooth moving through other knot points. So it is a good idea to smoothly move camera to the first knot point before calling this command. To do this, use the Goto “SplineName” command.
Important: a next script command will be executed immediately after this one. You must follow this command with the Wait with a wait time equal to Time parameter of a spline path duration, to delay execution of next commands until spline flight completes. Other commands may be executed during the spline flight, excluding commands which changes 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 during record.

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 into desired directory, for example addons/my_addon/scripts/path.ssp. The saved file is a usual SE scenario script, which contains only one command SplinePath with some parameters and a 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 to load back in the editor, or to replay the recorded path from another script. There are two ways to achieve it:

– 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 start of replaying. Use the Goto “PathName” to do this.

The spline path is bound to some space object. Originally, it is the same object, which was bound to the camera when you start recording a 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 paths recording, while the second if best for flights above the planetary terrain. You may switch the 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 it’s surface. This is useful to make 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; shown tools in your version of SpaceEngine probably are much more advanced.

TIME CONTROL COMMANDS

StopTime

Pauses timeflow. Syntax:
StopTime

StartTime

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

TimesSale

Sets a time rate (speed). Syntax:
TimesSale 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 zero value to stop the time flow, use the StopTime command instead.

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 little 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 of 08 February 2017.
Date “2017.02.08” – sets 00:00:00 of 08 February 2017.
Date “2017.02” – sets 00:00:00 of 01 February 2017.
Date “2017” – sets 00:00:00 of 01 January 2017.
Date “current” – sets a current date according to system clock.

TRIGGERS

Triggers are events which can occur during SpaceEngine run: 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 a 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”. Default 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 – a value of a variable.
Rect (0.2, 0.8, 0.1, 0.9) – rectangular area on the screen, in a format (left, right, top, bottom); default is (0, 0, 1, 1).
Dir (0.27, 0.63, -0.46) – a 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.

}

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 one of the provided triggers.
BeginMultitrigger “AND” – wait all of the provided triggers.

EndMultiTrigger

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

Use the multi-trigger system if you want to wait multiple triggers. For example, if you want to wait until 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 by specifying its name. Here is a description of all triggers, events which activates them, and parameters, which trigger uses.

Trigger nameActivation eventUsed parameters
“Control|Rotate”Camera is rotatingMode, 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 is orbiting some object
“Control|Move”Camera is movingRange, Dir, Direction
Activates if camera passed specified distance range, and/or moved in a specified direction (with accuracy of 1%)
“Control|MapZoom”The Universe map zoom is changingRange
Activates if the map zoom is out of range
“Control|ChangeSpeed”Assigned camera speed is changedRange
Activates if the assigned camera speed fits in the range
“Control|StopRotate”Camera stops rotation
“Control|StopOrbit”Camera stops orbiting
“Control|StopMove”Camera stops moving
“Control|Goto”The ‘Go to’ command is activated by userObject, Type
If Object is not specified, then 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 is activated
“Control|Land”The ‘Land’ command is activated
“Control|Center”The ‘Center’ command is activated
“Control|Horizon”The ‘Horizon’ command is activated
“Control|MapCenter”The Universe map is centered on object
“Control|MapFocus”The Universe map is focused on object
“Control|Follow”The camera binding mode is changed to “Follow”
“Control|SyncRot”The camera binding mode is changed to “SynRot”
“Control|Free”The camera binding mode is changed to “Free”
“Control|Track”Tracking of the object is enabled
“Control|Untrack”Tracking of the object is disabled
“Control|SetTime”User changes the simulation date/time
“Control|SetCurrentTime”User sets the simulation data/time to the current system clock
“Control|SetTimeRate”User changes the time flow speedRange
Activates if the time flow speed fits in the range
“Control|PauseTime”User pauses the time flow
“Control|ResumeTime”User resumes the time flow
“Control|ReverseTime”User reverses the time flow direction
“Time”Simulation time crosses the specified date or range of datesMode, Time, TimeRange
Mode “Crossed” – activates if time crossed the Time value
Mode “Earlier” – activates if time become earlier than the Time value
Mode “Later” – activates if time become later than the Time value
Mode “InRange” – activates if time goes in the TimeRange range
Mode “OutRange” – activates if time goes out of the TimeRange range
“Object|Select”Object is selectedObject
If Object is not specified, trigger activates then any object is selected.
“Object|See”Object appeared on the screenObject, Rect
If Object is not specified, then currently selected object is used.
Trigger activates if the object’s position on the screen fits into Rect.
“Object|Approach”User approaches the objectObject, Range, RangeKm, RangeRad, LonLatRange
If Object is not specified, then currently selected object is used.
Trigger activates if the distance to object fits into the Range, RangeKm or RangeRad, and/or camera longitude/latitude fits into the LonLatRange.
“GUI|Open”Dialog window is openedDialog
“GUI|Close”Dialog window is closed
“GUI|LockPanel”Toolbar is locked
“GUI|HalfLockPanel”Toolbar is half-locked
“GUI|UnlockPanel”Toolbar is unlocked
“GUI|LeftClick”Widget is clicked with left mouse buttonDialog
Dialog is a widget name, see SetWidgetStyle for details.
“GUI|RightClick”Widget is clicked with right mouse button
“GUI|SelectObject”Object or type of objects is selected using interfaceObject, Type
“GUI|SSB|Enter”User entered the list of satellites in the Solar system browser
“GUI|SSB|Back”User exited to the upper level in the Solar system browser
“LoadingComplete”Loading of the scene is completeMaxWaitTime
Trigger activates when the loader task list became empty (scene loading is complete).
If MaxWaitTime is provided, trigger waits up to specified period of time, then activates.

Object type list

Some triggers requires 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
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
Planet
Moon
DwarfPlanet
DwarfMoon
Asteroid
Comet
Body
Barycenter
StarBarycenter
Planet class: Terra, Desert, Selena, Oceania, WaterWorld, Titan, IceWorld, Asteroid, GasGiant, Jovian, IceGiant, Neptune, BrownDwarf, Sun.
See Creating a planet for details.
“Planet” – any planet
“Planet|Terra” – any terra planet
“Moon|IceWorld” – any icy moon
“Body” – any type of a planetary body (planet, moon etc)
“Body|Selena” – any type of a selena (planet, dwarf planet, moon etc)
“Body|Asteroid” – any asteroidal object (asteroid, dwarf moon etc)
“Barycenter” – any barycenter of a binary planetary object
“StarBarycenter” – any barycenter of a binary star
VARIABLES

Show

Shows a space objects, effect or overlay. Syntax:
Show Clouds – shows clouds. All possible objects/effects/overlays are:
Planets, Stars, Clusters, Nebulae, Galaxies, Atmo, Atmospheres, Clouds, Water, Aurora, CometTails, Orbits, OrbitMarks, Vectors, SelPointer, VelVector, Grid, Labels, Markers, NightLights, Eclipses, PlanetShine, LensFlares.
It is possible to show/hide much more effects/overlays than provided by this list using variables. See the Set command for details.

Hide

Hides a space objects, effect or overlay. Syntax:
Hide Clouds – hides clouds. All possible objects/effects/overlays are the same as in the Show command.

Set

Sets a variable with a range checking. Syntax:
Set ClipHeight 5.0 – assigns a value of 5.0 to the variable ClipHeight.
Set ShowOrbitsDwarfMoons true – assigns a value of true to the boolean variable ShowOrbitsDwarfMoons.
If the value is out of range which variable has, it is clamped into that range, and a warning message is printed to the console (except boolean variables, which have no range).

SetU

Sets a variable without range checking (‘unsafe’ set). Syntax:
SetU ClipHeight 5.0 – assigns a value of 5.0 to the variable ClipHeight.
If the value is out of range which variable has, it is assigned anyway, and a warning message is printed to the console. This command is equal to Set for boolean variables.

Reset

Sets a variable to its default value. Syntax:
Reset ClipHeight – assigns a default value to the variable ClipHeight.
Reset ShowOrbitsDwarfMoons – assigns a default value to the boolean variable ShowOrbitsDwarfMoons.

Get

Returns the current value of a variable. Syntax:
Get ClipHeight – returns a current value to the variable ClipHeight and prints it to the console.
Get ShowOrbitsDwarfMoons – returns a current value of the boolean variable ShowOrbitsDwarfMoons and prints it to the console.
For now, this command has sense only if used in the console (in the 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 is already has the desired value, the command returns immediately (script is not delayed).

SaveVars

Saves current values of all variables and locking state of a toolbars. Syntax:
SaveVars
It is recommended to call this command in the beginning of script which must not change settings or state of SpaceEngine. When the the script will be finished, interrupted due to error or by user, all saved data will be restored (equivalent of calling of the RestoreVars command).

RestoreVars

Restores values of all variables and locking state of a toolbars, previously saved by the command SaveVars. Syntax:
RestoreVars
It is not necessary to call this command in 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.

Boolean variable can be toggled (switched) just by typing its name:

Code
HardwareCursor

This is useful in the direct mode for debug cursor, but you may use this in scripts. This in not recommended though, because makes scripts harder to understand, and in most cases you anyway need to assign up some initial value to the variable.

List of variables

The table below has a full list of variables. Variable cab be one of these types:

– boolean, has only 2 values: false and true, has no min/max values;
– integer, a integer number;
– float, a floating-point number.

Integer and float variables have a minimum and maximum values, which are taken into account by the Set command. All variables have a default values, which are assigned to them at a program startup or by the Reset command. The ? mark in the default value means that this value is read from the config file on a program startup.

Some boolean variables are marked as a cheat code. Set up them to true displays a message “Cheater!”, and enables some really cheat functions of the gameplay.

The most variables (typically, in the bottom half of the table) are debug variables and really don’t need you.

NameTypeDefaultMinMax
ShowWaterbooleantrue
ShowCloudsbooleantrue
ShowAtmospheresbooleantrue
ShowAurorabooleantrue
ShowCometTailsbooleantrue
EnablePlanetShinebooleantrue
EnableEclipsesbooleantrue
EnableNightSideLightsbooleantrue
EnableLensFlaresbooleantrue
EnableLensGhostsbooleantrue
ShowGridbooleanfalse
ShowSelectionPointerbooleanfalse
ShowVelocityVectorbooleanfalse
ShowPlanetVectorsbooleanfalse
ShowOrbitsbooleanfalse
ShowMarkersbooleanfalse
LabelsModeinteger002
OrbitMarksModeinteger002
ShowCatGalaxiesbooleantrue
ShowProcGalaxiesbooleantrue
ShowCatClustersbooleantrue
ShowProcClustersbooleantrue
ShowCatNebulaebooleantrue
ShowProcNebulaebooleantrue
ShowCatStarsbooleantrue
ShowProcStarsbooleantrue
ShowCatPlanetsbooleantrue
ShowProcPlanetsbooleantrue
ShowProcCSPlanetsbooleantrue
ShowOrbitsShipsbooleantrue
ShowOrbitsPlanetsbooleantrue
ShowOrbitsMoonsbooleantrue
ShowOrbitsDwarfPlanetsbooleantrue
ShowOrbitsDwarfMoonsbooleantrue
ShowOrbitsAsteroidsbooleantrue
ShowOrbitsCometsbooleantrue
ShowOrbitsSunsbooleantrue
ShowOrbitsBarycentersbooleantrue
ShowLabelsShipsbooleantrue
ShowLabelsPlanetsbooleantrue
ShowLabelsMoonsbooleantrue
ShowLabelsDwarfPlanetsbooleantrue
ShowLabelsDwarfMoonsbooleantrue
ShowLabelsAsteroidsbooleantrue
ShowLabelsCometsbooleantrue
ShowLabelsSunsbooleantrue
ShowLabelsBarycentersbooleantrue
ShowLabelsStarsbooleantrue
ShowLabelsClustersbooleantrue
ShowLabelsNebulaebooleantrue
ShowLabelsGalaxiesbooleantrue
ShowMarkersShipsbooleantrue
ShowMarkersPlanetsbooleantrue
ShowMarkersMoonsbooleantrue
ShowMarkersDwarfPlanetsbooleantrue
ShowMarkersDwarfMoonsbooleantrue
ShowMarkersAsteroidsbooleantrue
ShowMarkersCometsbooleantrue
ShowMarkersSunsbooleantrue
ShowMarkersBarycentersbooleantrue
ShowMarkersStarsbooleantrue
ShowMarkersClustersbooleantrue
ShowMarkersNebulaebooleantrue
ShowMarkersGalaxiesbooleantrue
LensFlareModeinteger102
PlanetShineModeinteger102
AutoExposureModeinteger002
StarPointMethodinteger203
PlanetPointMethodinteger103
RealStarBrightnessbooleanfalse
RealPlanetBrightnessbooleanfalse
AutoGalaxyMagnitudebooleantrue
ParticleOverbrightfloat10.0011000
ParticleOverbrightMapfloat10.0011000
Ambientfloat001
FPSbooleanfalse
CloudsSpeedfloat1-1e91e3
LandLODfloat?-22
StarsMotionBlurfloat0-100100
HardwareCursorbooleanfalse
HideCursorbooleanfalse
AuroraQualityinteger101
BlackHoleQualityinteger203
ShipWarpQualityinteger203
MaxGraphicsbooleanfalse
EditGUIbooleanfalse
FindEarthsbooleanfalsecheat code
NoClipbooleanfalsecheat code
Collisionsboolean?cheat code
Gravityboolean?cheat code
Aeroboolean?cheat code
UFOboolean?cheat code
FTLboolean?cheat code
Godboolean?cheat code
EnableCheatsboolean?cheat code
ClipHeightfloat?01
ClipZNearfloat?01
ChartLockedCameraboolean?
BottomInfoHUDbooleanfalse
LessonPassedinteger00100
Benchmarkbooleanfalse
MaxThreadsinteger111
ScreenshotAlphabooleanfalse
UnitDistLargeinteger101
UnitDistMediuminteger223
UnitDistSmallinteger646
UnitRadiusLargeinteger001
UnitRadiusMediuminteger112
UnitRadiusSmallinteger223
UnitMassLargeinteger001
UnitMassMediuminteger112
UnitMassSmallinteger223
UnitTemperatureinteger102
UnitPressureinteger005
SelectionRadiusbooleanfalse
FullConstellationNamesbooleantrue
VRMirrorinteger?04
MusicVolumeinteger200100
MaxTilesPerFrameinteger21100
MaxTilesPerFrameVRinteger21100
MaxTimesPerFramefloat2011000
MaxTimesPerFrameVRfloat2011000
MaxTimePerFrameCleanfloat2011000
LoaderAsyncTexturesbooleanfalse
LoaderAsyncMeshesbooleanfalse
LoaderAsyncShadersbooleanfalse
LogTimeStampboolean?
LogThreadStampboolean?
LightDimmingMagnfloat-15-100100
LightLimitMagnfloat-10-100100
NebulaLightingbooleanfalse
BlackHoleJetsbooleanfalse
BlackHoleSmallNoiseTexbooleantrue
CosmHorizonfloat4.2e901e38
FastCubemapbooleanfalse
PipelineModeinteger001
ShipDrawModeinteger?04
EngineSampleStepfloat0.10.0011
DrawSkybooleantrue
DrawLandbooleantrue
DrawFrontTexbooleantrue
LandRLSortinteger002
AtmoHeightHarbbooleanfalse
AtmoBottomOffsetfloat0.000100.1
LandFiltNearestbooleanfalse
LandProcDetailbooleanfalse
LandVSFetchingboolean?
LandSpareFactorfloat2010
LandHeightmapFormatinteger13116
BBoxLabelsbooleanfalse
fxaaSubpixfloat0.7501
fxaaEdgeThresholdfloat0.12500.06250.3333
fxaaEdgeThresholdMinfloat0.08330.03120.0833
logFarPlanefloat1e2001e30
MipmapsGUIboolean?
MipmapsFrameboolean?
MipmapsWarpboolean?
MipmapsLandboolean?
MipmapsModeinteger202
MultisampleWarpboolean?
TestGridbooleanfalse
BuildingCollisionbooleantrue
ShowBuildingOctreebooleanfalse
ShowBuildingPolysbooleantrue
ShowBuildingLinesbooleanfalse
ShowBuildingVertsbooleanfalse
TestBuildingOctreebooleanfalse
TestBuildingDrawbooleanfalse
DrawBuildingLightRadiusbooleanfalse
ShowBuildingEntitybooleantrue
BuildingTestBrushinteger000
BuildingTestPolyinteger000
BuildingTestLeafinteger000
BuildingCollisionStepsinteger11100
SilentVarChangebooleanfalse
testFloatfloat0-11
testIntinteger0-100100
INTERFACE COMMANDS

FadeOut

Fades out the scene into a specified solid color. Syntax:
FadeOut – fade out with default parameters.
FadeOut { … } – fade out with a custom parameters provided below:
{

Time 3.0 – duration of fade in seconds; default is 0.25.
Color (0.2, 0.0, 0.2) – fade color in (R, G, B) format; default is black – (0, 0, 0).

}

FadeIn

Fades in back to the scene. Syntax:
FadeIn – fade in with default parameters.
FadeIn { … } – fade in with a custom parameters provided below:
{

Time 3.0 – duration of fade in seconds; default is 0.25.

}

Print

Displays an onscreen message. Syntax:
Print “blabla” – displays a message “blabla” with a default parameters.
Print “blabla” { … } – displays a message “blabla” with a custom parameters provided below:
{

Time 10.0 – timeout of the message: it will be hidden after the specified time in seconds; default is 5.
Color (1.0, 0.8, 0.3, 1.0) – color of the message text in (R, G, B, A) format (A is opacity); default is white – (1, 1, 1, 1).
PosX 0.8 – horizontal position of the message in screen fractions (i.e. 0.0 is leftmost, 1.0 is rightmost); default – see remarks.
PosY 0.2 – vertical position of the message in screen fractions (i.e. 0.0 is topmost, 1.0 is bottommost); default – see remarks.
AlignX “center” – horizontal align; possible values: “left”, “center”, “right”; default is “center”.
AlignY “down” – vertical align; possible values: “top”, “center”, “down”; default is “down”.

}
If the PosX/PosY are provided, then AlignX/AlignY defines the alignment of the message text relative to the static point specified by PosX/PosY parameters. Otherwise the message text will use dynamic position in the free screen area and will be aligned according to provided or default values of AlignX/AlignY. This dynamic position means what if user will open some toolbars, the displayed text will be moved so it will not overlap the toolbars. You may use any combination of these 4 parameters, i.e. define static/dynamic position and alignment for X and Y coordinate independently.
Message text supports BB codes: you may change the color, font, size, use lower and upper index, special symbols. See BB codes table in the Appendix for more details.

HidePrint

Removes the onscreen message displayed previously by the Print command. Syntax:
HidePrint

WaitMessage

Displays a message box dialog with a specified text and a buttons [Next] and [Break]. Syntax:
WaitMessage “blabla” – displays a message box with a text “blabla”.
The script execution delays until user presses the [Next] button. The message box will hide itself after that. Pressing the [Break] button interrupts the script.
Message text supports BB codes: you may change the color, font, size, use lower and upper index, special symbols. See BB codes table in the Appendix for more details.

ShowMessage

Displays a message box dialog with a specified text and a button [Break]. Syntax:
ShowMessage “blabla” – displays a message box with a text “blabla”.
The script execution continues immediately to the next command. The message box remains visible until command HideMessage or another WaitMessage/ShowMessage is executed, or until user presses the [Break] button. Pressing the [Break] button interrupts the script.
You may use this command to display a message box before some WaitTrigger command.
Message text supports BB codes: you may change the color, font, size, use lower and upper index, special symbols. See BB codes table in the Appendix for more details.

HideMessage

Hides the message box displayed previously by the WaitMessage/ShowMessage. Syntax:
HideMessage

ShowDialog

Shows the dialog window or toolbar. Syntax:
ShowDialog “Find object” – shows the specified dialog by its name, ‘Find object’ dialog in this example.
The name of a dialog is usually visible on its header. The English localization must be used to determine the name for this command; switch to English in User settings. Names are case-sensitive.
The list of dialogs and toolbars which have no header: “Main toolbar”, “Navigation toolbar”, “Brightness toolbar”, “Filters toolbar”, “Solar system browser”, “Universe map”, “System chart”, “Planet editor”, “Ship editor”.

HideDialog

Hides the dialog window or toolbar. Syntax:
HideDialog “Find object” – hides the specified dialog by its name, ‘Find object’ dialog in this example.
Notes about dialog name are the same as in ShowDialog.

HideAllDialogs

Hides all dialog windows; toolbars will not be hidden. Syntax:
HideAllDialogs

HideAllToolbars

Hides all toolbars; dialog windows will not be hidden. Syntax:
HideAllToolbars

OpenMenu

Opens the main menu or a specified sub-menu. Syntax:
OpenMenu “Main” – opens the Main menu.
OpenMenu “Main|Tutorial” – opens the Main menu > Tutorial sub-menu.
OpenMenu “Main|Editor” – opens the Main menu > Editor sub-menu.
OpenMenu “Main|Settings” – opens the Main menu > Settings sub-menu.

CloseMenu

Closes the main menu or a sub-menu. Syntax:
CloseMenu

SetWidgetStyle

Changes style of a specified widget (interface element). Syntax:
SetWidgetStyle “Widget name” { … } – changes the style of the widget “Widget name”; the style is specified by a parameters provided below:
{

WinColor (1.0, 0.0, 0.0, 0.8) – color of the widget’s contour and filling in (R, G, B, A) format (A is opacity); modulates the current skin color.
TextColor (0.0, 1.0, 0.0, 1.0) – color of the widget’s text in (R, G, B, A) format (A is opacity); modulates the current skin color.
Pos (0.5, 0.3) – position of the widget relative to parent, in units of parent’s size.
PosPix (600, 300) – position of the widget relative to parent, in pixels.

}
You may change style of a dialog window or toolbar by specifying its name, as described in ShowDialog. You may also change style of any control (button, checkbox, label etc). To do this, first determine its name. Usually it matches the name of this control in English localization; sometimes it is some generic name such as “#35”. Name of an icon button can be determined if you hold mouse cursor over it: the hint appearing with a button name. Separate its name from a parent widget name with a ‘|’. Names are case-sensitive. Examples:
SetWidgetStyle “Main toolbar” – the Main toolbar.
SetWidgetStyle “Main toolbar|System chart” – the System chart button on the Main toolbar.
SetWidgetStyle “Graphics|Planets” – the Planets group contour line on the Graphics settings dialog.
SetWidgetStyle “Graphics|Planets|Eclipse shadows” – the Eclipse shadows checkbox on the Graphics settings dialog (it’s parent is the Planets group).
If widget is a dialog window, it’s parent is the screen (SpaceEngine’s window client area), so Pos (0.5, 0.5) moves window to the center of screen (more precisely, its top-left corner will be in the center of the screen). If the widget is a button, checkbox etc, Pos/PosPix parameters moves it relative to its parent. Warning: be careful with moving/coloring of interface components, the only way to restore their positions and colors is restarting SpaceEngine.

HighlightWidget

Makes specified widget blink. Syntax:
HighlightWidget “Widget name” – starts widget blinking with default parameters.
HighlightWidget “Widget name” { … } – starts a widget blinking with a custom parameters provided below:
{

Time – blinking duration in seconds. Default is infinity (widget will not stop blinking until another HighlightWidget command).
Freq – blinking frequency in Hertz (blinks per second). Default is 4.
Color (1.0, 0.5, 1.0, 0.8) – blinking color in (R, G, B, A) format (A is opacity); modulates the current skin color; default is red – (1.0, 0.2, 0.2, 1.0).

}
To stop widget blinking, use HighlightWidget “”.
The message box dialog shown by WaitMessage and ShowMessage commands has a dynamic header, text label and buttons. Use these names to refer to them in the HighlightWidget and SetWidgetStyle commands: “Message box”, “Message box|Message text”, “Message box|Button 1”, “Message box|Button 2”.

SOUND COMMANDS

PlayMusic

Switches the music playback to a specified track. Syntax:
PlayMusic “filename.ogg” – switch to a file filename.ogg, the file must be in the data/music/ or addons/*/music/ folder.

PauseMusic

Pauses the music playback. Syntax:
PauseMusic

ResumeMusic

Resumes the music playback. Syntax:
ResumeMusic

UTILITY COMMANDS

Screenshot, ScreenshotHUD

Takes a screenshot without and with HUD (interface), respectively. Syntax:
Screenshot – save a screenshot without interface.
ScreenshotHUD – save a screenshot with interface. If this command were typed in the console, the console itself will be visible on the screenshot.
Screenshots are saved into screenshots/ directory, with an automatic file name. Screenshot format (file extension) can be configured in the Player settings dialog.

SavePNG, SaveTGA, SaveJPG, SaveDDS, SaveTIF

Loads a specified image file and saves it into the format, specific for each command. Syntax:
SavePNG “addons/my_addon/textures/spacecraft/texture.tga” – saves the image file on provided path to the same folder in the PNG format. If there are no errors, the file texture.png will appear in the same folder.
SaveJPG “addons/my_addon/textures/spacecraft/texture.*” – saves the latest modified image which path matches the provided mask to the same folder in the JPG format. If there are no errors, the file texture.jpg will appear in the same folder. If there are multiple files with the same file name texture and different extensions, the latest file will be loaded. If that file is not of supported image types (dds, tga, png, jpg, jpef, tif, tiff), the command fails.

Edit

Toggles an editor for a selected object: the planet editor for a planetary object, or the ship editor for a space ship. Syntax:
Edit

Quit, Exit

Closes SpaceEngine. Syntax:
Qxit
Exit

DEBUG COMMANDS

These commands are used by developer, you really don’t need them.

Map

Loads an indoor map file and switches engine to it. Syntax:
Map filename – loads a map file filename.map, the file must be in the data/models/buildings/ or addons/*/models/buildings/ folder.

Scene

Switches a specified scene. Syntax:
Scene map – switches to an indoor map previously loaded by the Map command.
Scene space – switches back to the Universe (planetarium).
Scene universe – switches back to the Universe (planetarium).

DebugGen

Launches a debugging tool of the procedural terrain texture generator. Syntax:
DebugGen.

Rebuild

Rebuilds the cache. Syntax:
Rebuild nebulae – clears the nebulae model cache in memory and removes the cache/nebulae/ folder.
Rebuild shaders – reloads all shaders which are currently in use.

PrintNames

Prints to the console all forms of the ‘name string’ of a selected object. Syntax:
PrintNames true – print names with replacement of abbreviations to actual characters.
PrintNames false – print names without replacement of abbreviations.

PrintFont

Prints to the console all glyphs of the specified font size. Syntax:
PrintFont – print all glyphs of a font of size 1 in 16 columns.
PrintFont 2 – print all glyphs of a font of size 2 in 16 columns.
PrintFont 2 32 – print all glyphs of a font of size 2 in 32 columns.
Possible font sizes are: 0, 1, 2, 3.

dbSort

Sorts and saves the local database file (data/locale/loc-db.cfg and config/user-loc-db.cfg, where loc is a current localization). Syntax:
dbSort none – no sort.
dbSort name – sort by object’s name.
dbSort locname – sort by object’s localized name.
dbSort parname – sort by object’s parent name; if parent name matches, sort by object’s name.
dbSort parlocname – sort by object’s parent name; if parent name matches, sort by object’s localized name.