Space Engineers Pilot Assistant System Setup Guide

Home Β» Space Engineers Pilot Assistant System Setup Guide

Now, take a look at our Space Engineers Pilot Assistant System Setup Guide to learn everything about the Pilot Assistant System down to the finest details!

In our comprehensive guide, we’ve covered everything about the Pilot Assistant System Setup Guide in the game Space Engineers. In this article, you’ll find everything you’re looking for!

Space Engineers Pilot Assistant System Setup Guide

Pilot Assistant System β€” Script Setup Guide

Used Terms

This setting can be changed in Custom Data of the program block.

General Setup

To begin with, when you start the script, it will tell you what you need to do. All you have to do is to follow the instructions on the screen. Here is a detailed interpretation of the instructions:

Two blocks are sufficient to set up the PAS: the Programming Block and the Ship Control Block (remote control or pilot seat). These blocks must be placed on the main grid. Secondly, the Ship Control Block must be properly oriented, i.e. the forward and upward directions of the block and the ship must match. Also this block must have a tag in its name: default Autopilot*

Next, you need to calibrate the sea level altitude: you can take any altitude you want, but it is recommended to take the average or lowest altitude of the terrain on the planet. If you have water mod i

nstalled on the server, you won’t have to choose at all. Position the airplane at the selected sea level and execute the CALIBRATE argument (case is not important). In this way the altitude will be written, which will later be considered zero.

All other blocks are not required by the script to exist, but you would benefit from having at least one gyroscope and, if possible, a thruster on board. PAS also detects blocks on subgrids connected by a rotor or hinge, but not a connector. All gyroscopes will be used by default, and to specify which thruster on a subgrid can be used, mark the appropriate block with an “Include” tag. Every 10 seconds PAS will automagically check for new blocks or changes to existing blocks.

Script Settings

In the Custom Data of the program block you will find intuitive variables available to change, such as: script mode, tag names for blocks, call signs and radio channels, speeds, altitudes, angles, use of additional functions.
You should probably know some aviation terms to understand things properly. Everything is in public access, explore πŸ™‚
It is not recommended to touch the Storage tab unless you know what you are doing.

Available arguments

Here is a list of arguments with a brief description. See below for a full description. The arguments are not case sensitive.
Remember that all arguments can be executed via a timer, making it much easier to fully automate your planes.

One-word arguments:

  • n β€“ an integer [0, ∞]. Specifies the current point number in the route being used.
  • NEXT – moves the current route point number forward by 1.
  • PREV – moves the current waypoint number backward by 1.
  • STOP – stops active tasks, (this function can also be called by pressing SPACE 3 times, if you are sitting in any of the seats that can control the airplane).
  • TOGGLE – stops / enables the script completely.
  • RECOMPILE – restarts the script without having to click Recompile in the interface.
  • CALIBRATE – calibrates sea level. Current altitude becomes zero.
  • RECORD_POINT – writes current location, altitude and speed in waypoint format to a block tagged Waypoints*
  • REPEAT, REPEAT_ON, REPEAT_OFF – toggles, switches on/off the route repeat when the last waypoint is reached. The route will start from waypoint 0.
  • AUTOPILOT, AP_ON, AP_OFF – toggles, switches autopilot on/off.
  • CRUISE, CRUISE_ON, CRUISE_OFF – toggles, switches cruise control on/off.
  • BRAKES – toggles the brake on the subgrade wheels.
  • TAKEOFF – automatic takeoff by ILS (if available), or just forward takeoff.
  • LAND – automatic landing by ILS.

Two-word arguments (separator – SPACE):

  • LAND ils-callsign β€“ automatic landing on selected ILS signal.
  • TAKEOFF ils-callsign β€“ automatic takeoff from selected ILS signal.
  • IMPORT block-name β€“ imports a route from Custom Data of a block with selected name.
  • EXPORT block-name β€“ exports a route to Custom Data of a block with selected name.
  • BUILD point-name β€“ builds a route from the current location to the selected point (the name of the point is searched in Custom Data of the Waypoints* block)
  • BUILD_CIRCLE point-name β€“ builds a route that completely circles the planet away from the current location to the selected point (point name is searched in the Custom Data of the Waypoints* block).

Three-word arguments (separator – SPACE):

  • LAND point-name point-name β€“ automatic landing on a runway defined by two points on a start-to-end basis, (the name of the points is searched in the Custom Data of the Waypoints* block).
  • TAKEOFF point-name point-name β€“ automatic takeoff from a runway defined by two points on the “start to end” principle, (the name of the points is searched in the Custom Data of the Waypoints* block).
  • BUILD point-name point-name β€“ builds a route from point to point based on the “start to end” principle, (the name of the points is searched in the Custom Data of the Waypoints* block)
  • BUILD_CIRCLEΒ point-nameΒ point-name – builds a route that completely circles the planet in the point-to-point direction, (the name of the points is found in the Custom Data of the Waypoints* block)


Text panels and LCD

The following data displays are available: Navigation, Avionics, TCAS, Status.
The first three are specified by tags to be entered into the Custom Data of the display or block that contains the displays (e.g. pilot seat or cockpit). The fourth display is the program block display, it shows hints, errors and basic information, this display cannot be reprogrammed.
In order to select the desired display, you must write the following in Custom Data: PAS_ tag and a display tag such as Nav_ (case sensitive, underscores are required).
So if you selected a single display, for example, the command in it would look like this:

  • PAS_Avionics_

If you want to add information to a cockpit with multiple displays, you write the same thing, but add the display number at the end (the count starts at zero).

  • PAS_Avionics_1
  • PAS_Nav_0
  • PAS_TCAS_2

Thus avionics will be shown on the second display, navigation on the first and TCAS on the third.

Working with routes


To store waypoints, the script allocates a block with the Waypoints* tag – it can be any terminal block (i.e. it has a Custom Data field).
You can store GPS tags in this block as they are copied in the game. Make the name of the GPSs in one piece, without spaces. The script will look for this name when selecting a point.
Also, the route point will be written to this block when executed with the RECORD_POINT argument (it will be written in route point format).

Working with routes: Point Syntax

All route points are written in this format: Operation type ; data for the operation.
Let’s look at all 4 types of operations for route points and how they can be written. Punctuation marks are important and must be strictly in the right order. If the timer name is set to default, the timer will not be searched. If the ILS name is set to default, the airplane will select the closest ILS (based on distance to the start of the runway). If any values are set to zero, the autopilot will set the base* values of these variables when operating in real time:

GoToPoint – Follow to point. Records the type of operation, coordinates, altitude in meters, speed in m/s, and a timer that will be triggered when the point is reached.

  • GoToPoint;X,Y,Z;Altitude;Velocity;Timer Name

Takeoff – Takeoff. Records the type of operation, ILS callsign, timer name, or coordinates and timer name. Can be recorded in four variations:

  • Takeoff
  • Takeoff;ILS callsign
  • Takeoff;ILS callsign;Timer name.
  • Takeoff;X, Y, Z;X, Y, Z;Timer name.

Landing – Landing. Records type of operation, descent gradient (angle in degrees between runway plane and glide path), ILS callsign, timer name or coordinates, angle, timer name.
Four variations:

  • Landing
  • Landing;Angle;ILS callsign
  • Landing;Angle;ILS callsign;Timer Name
  • Landing;X, Y, Z;X, Y, Z;Angle;Timer Name

Wait – Waiting. Records the type of operation, wait time in seconds, and timer name.
Three variations:

  • Wait
  • Wait;Time
  • Wait;Time;Timer name

Working with routes: Editing a route

The route must be written in Custom Data of the block from which you are going to export it (Import to PAS).
To build a route, just specify its name in the first line of the text box, and then add one operation to each new line. Example:

  • My Route
  • Takeoff;MyRunway
  • GoToPoint;123, 456, 789;1200;100;MyTimer
  • Landing;234, 345, 456;567, 678, 789;3
  • Wait

The route will be executed in order from zero to the last point. If route repeat* is enabled, the route will start from the zero point when the last point is reached. If repeat* is disabled, the autopilot will finish.
Zero point is a point located on the second line of the text field with the route, (the first line contains the route name, it is not considered as a point).

Working with routes: Route management

A script can store one route in the Storage text field of its program block. The Storage field is available only to the script, the player cannot access it.
You can import and export a route to the Custom Data of the selected block using the appropriate IMPORT and EXPORT arguments.
The name of the current route and its current waypoint number is displayed on the Nav display when the autopilot is off.
When the autopilot is on, the route name, point number, total distance traveled/remaining distance and distance to the current point are displayed, as well as the type of current operation and the data associated with that type. For example, for Landing, the altitude of the runway and its callsign (if available) will be shown.

Working with routes: Route generator

When the appropriate BUILD argument is executed, the generator will construct a route between the selected points. The route will include climb and descent (the rate of climb and descent depends directly on the maximum pitch angle* and velocity V2* you set), echelon flight (here you can adjust the base speed* and altitude* during the flight if needed, but it is advisable to rebuild the route afterwards to take into account the new climb/descent settings), landing at the end of the route and taking off at the beginning (if the aircraft was on the ground at the time of generation).

BUILD_CIRCLE is a light version of the generator, it builds a route around the planet with the same settings and features, just without the climb and descent, takeoff and landing. This function is also used in cruise control, but in that case the route will not be recorded in Storage.

Remember that a built route can always be exported, finalized and imported back.
Enabling autopilot will start the script running with the loaded route. The autopilot will continue working when the world is restarted.

Cruise control

A simple function, provides course, altitude and speed hold.
In cruise control, player control is available: You can increase or decrease speed by pressing W/S; Increase or decrease altitude by raising or lowering the nose; Change course by turning the airplane left or right.
Overwriting this data works independently for each of the three types of changes, so that adjustments are as user friendly as possible.
In the “Storage” tab in theΒ Custom DataΒ program block, you can manually set the desired speed* and altitude* of flight.
The cruise control route is not stored in memory. However, the cruise control will continue to operate when the world is restarted.

Takeoff, Landing, Go Around etc.


Takeoff can be used by the autopilot when reaching the appropriate point or by the player at any time. The difference is that when the world is restarted, takeoff will continue if the autopilot was enabled, BUT, will be disabled if it was active as an auto-takeoff at the player’s command.
Takeoff Rules:
If no ILS signal is found, the takeoff will continue in the forward direction. If the runway direction at the ILS signal differs from the airplane’s direction by more than 90 degrees, the runway will be ignored and takeoff will continue in the forward direction. Also, the runway will be ignored if the ship control block is further than 50 meters from the runway vector.
If the runway is matching, the script stores its coordinates in temporary memory until it completes the task or is stopped.
During takeoff:.
Takeoff will occur after the VRotate* speed has been passed
The landing gear will be retracted (if the Landing Gear service is enabled) after reaching an altitude of 25 meters above the runway.
After liftoff, the takeoff will take place at a speed of V2*
The takeoff will be completed at 100 meters above the runway.
GPWS operation is available during takeoff, but only after liftoff.


Landing can be used by the autopilot when reaching the appropriate point or by the player at any time. The difference is that when the world restarts, the landing will continue if the autopilot was enabled, BUT, will be disabled if it was active as an auto-landing at the player’s command.
Landing Rules:
The runway will be ignored (in the case of ILS) if its end is further away than the specified limit*
If the runway is matching, the script saves its coordinates to temporary memory until it completes the task or is stopped.
During landing:.
The airplane will enter the glide slope with an angle* set by you and will descend at speeds from minimum*, at medium*, and to maximum*. If the airplane misses the glideslope, a Go Around will be initiated (see paragraph GoAround).
If the Landing Gear service is enabled, the landing gear will be released.
If the airplane successfully reaches the runway, it will increase pitch to positive and smoothly touch the ground.
Next, braking will begin. Reverse thrust if available, air brake if available and the wheel brake of the ship control block on the main grid will be engaged. If the Landing Gear service is enabled, the landing gear will also be engaged for braking.
The landing will be completed when the relative runway speed is less than 10 m/s.
TCAS (for approach prioritization only) and GPWS services are available during landing.


Executed when a runway approach is unsuccessful or if there is another aircraft with a higher priority. The airplane turns around to the opposite side of the runway and will maintain last speed and altitude. If the approach was unsuccessful, the aircraft will turn to the runway at the beginning of the glide path, but no further than 7.5 kilometers from the runway. If there is a higher priority aircraft, the current aircraft will fly within 2 to 4.5 kilometers of the runway until the first aircraft lands/disappears.


.This function is called if a runway was not found during an ILS landing. The airplane will fly between the last two points, maintaining the last altitude and speed, until the runway appears or until it runs out of fuel.

Speed control, angles, rate of turn

The script controls the speed of the airplane by controlling the engines and air brakes.
The script controls maximum roll* and pitch* and prevents deviation of more than 5 degrees.
The script controls the maximum rate of roll*, pitch* and yaw*.
It is possible to change the modifier* of the rate of change of angles, but the final speed will not be higher than the maximum limited speed.


Landing Gear

This service allows the script to control the release/retraction of the landing gear and their wheel brake.
You must build the landing gear yourself, as it is part of your airplane.
The script looks for a timer with the tag Landing Gear* and any function block (ability to turn on/off) with the tag LG_Indicator*. The indicator block is needed by the script to understand what state the landing gear is currently in. The indicator block is NOT controlled by the script, but by a timer with the above name. It is necessary to add the indicator to the timer with “On/Off” action.
If the landing gear is released the indicator should be on, if retracted it should be off.

To use the brake on subgrid landing gear, Remote Controls with the Landing Gear* tag must be installed on their grids. The script will engage and disengage their handbrake. This can also be controlled with the BRAKES argument.

Warning System

It consists of two types of blocks: sound blocks and lights. (You can use one or all of them at once, the number of blocks is unlimited).
The blocks are detected by the PAS* tag
The system plays different sounds and changes the color of the lights depending on the action.

Signal TypeSoundColorNumber of Plays
Gear: retractAlert1, Alert2Yellow, Blue1, 1
Gear: releaseAlert1, Alert2Yellow, Green1, 1
Brake: OnAlert2, Alert1Bright Yellow, Orange1, 1
Brake: offAlert1, Alert2Bright Yellow, Dark Green1, 1
Stop (Via SPACE)MusFunGold3
Automation: stopAlert1Red4
Automation: startAlert2Bright Green2
Objective CompleteObjectiveCompleteLime1
“Good” AlertAlert2Yellow-Green10
“Bad” AlertAlert1Orange-Red10
GPWS AlertMusComp_08Red8


Traffic alert & Collision Avoidance System – operates in two modes* (information is transmitted via antenna blocks):

In flight – scans TCAS signals from other PAS-controlled aircraft within a 5 kilometer radius. Decides whether to separate aircraft to different echelons if their altitude difference is less than 200 meters. The decision is made regarding aircraft priority, speed, and direction. Several airplanes can be involved in the conflict, the effect of altitude correction is cumulative.

On landing – scans TCAS signals from other PAS-controlled aircraft about to land on the same runway as the current aircraft. Makes a decision to prioritize the approach relative to the priority of the aircraft and their distance from the runway. Multiple aircraft may be involved in a conflict, the effect of the queue is cumulative.


Ground Proximity Warning System – can operate in two modes*: flight and landing. They are no different, but are separated to allow you to disable one of them if you don’t need it.
GPWS decides whether the aircraft needs to gain altitude based on the following factors: Surface Approach Velocity, Vertical Velocity, Altitude Above Ground and Sea Level, and Time to Potential Impact.
If the decision is positive, the airplane nose up to the maximum pitch angle* until it passes the conflict altitude limit (the limit and other values change dynamically).


The Instrument Landing System in PAS operates via antenna blocks and has two modes:
Receive – under appropriate conditions, the aircraft will seek a signal for this system from a block mounted on the runway. The signal transmits the callsign* of the runway and two start-end points.
Sending – the program block on the runway always broadcasts its callsign* and start-to-stop coordinates.
To set up an ILS transmitter on the runway, you need to:
Start PAS in ILS mode* (Custom Data => workmode (Plane or ILS)=ILS).
Set up any two terminal blocks which coordinates will be transmitted. In the Custom Data of these blocks, you must add the tags RW_Start* and RW_Stop* accordingly.
You can set two callsigns* for the same runway, they are distinguished by a 180 degree directional difference.
In this mode you can also add a text panel with the Flights_ tag in Custom Data. This panel will display all flights that are currently visible to the program block. Flight visibility is affected by whether the antenna on the airplane is turned on and whether TCAS is enabled on the airplane.
You can easily install ILS on your aircraft carrier or any other mobile base.


The transponder is not a function, but combines the operation of all communication systems such as TCAS or ILS.
The transponder has several settings:

  • Callsign* – the name of the aircraft or ILS transmitter on the network.
  • Channel* – the channel on which TCAS data is transmitted.
  • ILS Channel* – the channel on which ILS data is transmitted.
  • Priority* – the priority of the aircraft on the network (the lower the better).