Space Engineers

Space Engineers

97 ratings
Fancy Flight Info Setup Guide
By Blargmode
[OUDATED] This guide is currently outdated. The new one is on my site for now[blargmode.se]. I will add it here soon but converting it to bbcode takes some time and I'm prioritizing making a new video.

This guide will go through how to setup and how to use the Fancy Flight Info Script. I had to put it here since doesn't fit in the workshop description box.

Fancy Flight Info on the workshop

Fancy Flight Info (or FFI for short) is a script that serves information about your ship on LCD panels. Highly customizable, supporting 512 colors, 20 different points of data and several ways to display it.

Video going through the important bits.
   
Award
Favorite
Favorited
Unfavorite
Setup
  1. Add the script to a programmable block. No Timer block needed.
  2. Add FFI to the name of a cockpit/flight seat/remote control of your choice. This will be the reference for what is downwards facing thrusters. Also, what is zero in height above ground. (You should adjust this in the settings).
Showing things on the LCDs
What to display is defined in the Custom Data of the LCD Panel. Start by writing FFI at the top, then add elements below. You can use the same configuration on many panels by using the copy keyword.
If you don’t want to configure everything, you can use one of the preloaded setups.
Once you have edited the Custom Data of an LCD, you can send the update argument to the script and it’ll update according to your changes.

Sending the update argument
The easiest way is to write update in the argument field of the programmable block. Then pressing Run.
You can also add the programable block to a button or your hotbar and write update in the argument field.
Using a preload
A preload is a panel configuration that ships with FFI. When you request one, it will insert itself into that Panel.
Enter the Custom Data of an LCD Panel. Write FFI followed by one of the preload names:
  • Mass
  • Speed
  • Fuel
  • Tug-altitude
  • Tug-speed
  • Tug-lift
  • Landing-gears
Example: FFI Speed
Then send the update argument to the script.
Configure your own panel
Here comes the cool part!
You define a panel in the Custom Data of the LCD. And when you’ve made a change, send the update argument to the script.
Each panel starts with FFI, followed by elements and their data. Here’s a basic example:
FFI Color: Gray Text: 2, 2, Speed Color: White Value: 30, 2, Speed

That writes the word Speed on the screen in gray and the speed your ship is going in white.
Oh, and don’t forget to send the update argument to the script.
Elements
There’s ten (or eleven depending on how you count) elements you can use. Some of them defines properties of the LCD, and some of them are things that show up on the screen.
Now this can be a bit overwhelming at first, but I promise it’s actually not that bad.
Required properties must be in order. Optional properties can be in any order you like.
Values separated by a / means that you can use either of them.
Element name
Required properties
Optional properties
Default
Copy
LCD name
Size
normal/wide/corner/panel or w, h
normal
Background/Bcgr
color name or r, g, b
black
Label/Text
text
left/center/right
Color
color name or r, g, b
white
Rect
x, y, w, h
fill
Icon
x, y, binary pixel representation
Value/Val
x, y, value
left/center/right, no-unit, no-decimals, %
Bar
x, y, w, h, value
fill, invert, slider, min, max
Indicator/Dot
x, y, w, h, value
fill, invert, threshold
Action
Block/group name, action, value
threshold/min, max, rising, falling

You don’t need to specify the default values, naturally.
Size, and Background can only be defined once per panel. The rest can be used freely.
Font can be set using the Font element (not listed above), but I advice you to use the font drop-down in the terminal instead.
Properties
Property
Type
Description
x
Number
X coordinate on the panel (horizontal). Starts at 0.
y
Number
Y coordinate on the panel (vertical). Starts at 0.
w
Number
Width.
h
Number
Height
text
Text
Any text you want. But you can't use comma.
value
Predefined text
What data to show. See all in the Data category.
%
-
If the data should be displayed in Percent.
min
Number
Override the starting point of e.g. a progress bar. Default is usually 0.
max
Number
Override the starting point of e.g. a progress bar. Default varies, and is missing on some data, in which case you'll need to specify this.
threshold
Number
The pivot point of the Indicator/Dot.
color
Predefined text
The name of a color. See list below.
r, g, b
Numbers
RGB Color. For example, this is purple: 128, 0, 128
LCD name
Text
The name of the LCD panel you want to copy. Be careful with leading or trailing spaces, as it looks for the exact name.
normal/wide/corner/panel
Predefined text
Preconfigured panel sizes.
left/center/right
Predefined text
Text align.
fill
-
If a rectangle should be filled or just the outline. (Special case: Bar: adds a gray background behind the entire bar).
binary pixel representation
Number sequence
A series of ones and zeros describing a simple shape. Here's a plus sign: 010 111 010
no-unit
-
Hides the unit
no-decimals
-
Hides decimals
#-decimals
Number and Predefined text
Shows a specific number of decimals where # is a number.
#-digits
Number and Predefined text
Shows a specific number of digits where # is a number. Note that decimals are included in this. E.g. to get this: 00.0 you need 4 digits.
rising
-
Only trigger when passing the threshold from a lower value. For actions.
falling
-
Only trigger when passing the threshold from a higher value. For actions.
action
Predefined text
The actions are listed here http://www.spaceengineerswiki.com/Programming_Guide/Action_List, the majority should work.
Block name
Text
The name of the block you wish to control with actions.
*Group name*
Text
The name of the group you wish to control with actions. A group name should be enclosed in stars (*), just like in the terminal.
Predefined colors
The named colors are quite limited for now. Use RGB if you want more control.
  • Yellow
  • Red
  • Blue
  • Green
  • White
  • Gray
  • Black
Data
These are the values you can display. Remember that you can show them in percent as well by adding the % property. Note though that you might need to add min and max values for some of them to make sense.
Data name
Unit
Description
mass
kg
Mass of the ship, including cargo.
cargo-mass
kg
Mass of the cargo
gravity
m/s²
Current natural gravity field strength
speed
m/s
How fast your ship is moving
v-speed
m/s
How fast your ship is moving towards the ground
altitude-sea
m
Height above sea level
altitude-land
m
Height above the actual ground
dampeners
on or off
State of the inertia dampeners
hydrogen
%
oxygen
%
battery-charge
Wh
jumpdrive-charge
Wh
battery-usage
W
solar-usage
W
reactor-usage
W
power-usage
W
Total. Solar, battery and reactor combined.
jumpdrive-distance
km
lift
m/s²
What acceleration your ship is capable of upwards when in gravity, relative to gravity. Backwards while in space.
landing-gear
on or off
On if 1 or more landing gears are locked
ruler
m
Uses a camera to figure out the distance to any object in front of it. Range is only 200m. Isn't affected by Controller offset.
in-seat
yes or no
If there's someone in the main cockpit (or the one tagged FFI if no main cockpit is set)
stopping-distance
m
Stopping distance in the direction of travel, if you let the inertia dampeners to their thing. Not totally accurate in gravity. It's complicated.
Advanced
Reset id
All FFI instances has a random ID between 0 and 9999. There is a chance that two instances get the same ID. This is no desirable, but there is a solution. If you send the reset argument, FFI will remove its ID from all blocks it’s connected to, then forget it. On the next update it will start from scratch and generate a new.

Changing the ID
If you’re not contempt with letting FFI generate a new ID, you can enter one manually. Simply send the desired ID as the argument. FFI will take it, and update all connected blocks as well.
The ID has to be in this format FFI-#### where # is a number between 0 and 9999.
Valid ID examples:
FFI-1 | FFI-42 | FFI-666 | FFI-1337
Examples
This section is work in progress. I will add to it as I find time.

Centered text
Text: 29, 5, Hello!, center
This writes "Hello!" centered on a regular LCD, 5 pixels from the top. The X value 29 pixels is about half of the width of a regular LCD and the property center tells it to center the text on the X coordinate. The Y coordinate will always be at the top of the text.

Convert a value to percent
Value: 5, 5, battery-charge, %
This will show the battery change in percent instead of it's default unit watt hours, 5 pixels from the top and left. This is achieved by having a percent sign as a property (not as a suffix to a value).

Automatic backup reactors
Action: *BackupReactors*, OnOff, battery-charge, %, 5, 25
This line toggles the group *BackupReactors* on and off once the battery charge in percent falls below 5% or rises above 25%. Make sure the reactors are in the right state for the current battery charge when setting it up. It doesn't know on it's own if to turn on or off, it just changes the current state. To make it fool proof, use these two lines instead:
Action: *BackupReactors*, OnOff_On, battery-charge, %, 5, falling Action: *BackupReactors*, OnOff_Off, battery-charge, %, 25, rising
Line one turns the group *BackupReactors* on once the battery charge falls below 5%.
Line two turns the group *BackupReactors* off once the battery charge rises above 25%.

Extending landing gears
Action: *Landing pistons*, Reverse, ruler, 7
This reverses the direction of the pistons in the group *Landing pistons* when the distance between anything and a camera placed on the bottom of the ship is less than 7m. Put FFI in the name of the camera you wish to use, and send the update command to FFI.
If you have more than one camera connected to the script, it will use the one closest to an object.
56 Comments
tomgrazer 11 Sep, 2020 @ 8:05pm 
how would you configure it to show the jump charge and set distance? I've tried, but i guess it's flying over my head. can someone give me an example i can work from?
DaeDroug 3 Dec, 2018 @ 3:21pm 
Or to put it a better way how far would it take to stop when pointing the side of the ship with the most thrust pointing the opposite of your velocity.
DaeDroug 3 Dec, 2018 @ 2:11pm 
Haven't played in awhile and on my return I see you've added stopping distance \o/ However now I'm finding use for an additional minimum stopping distance for use with asymmetrical thrust ships, basically I want to use it to know when to do turnover before crashing into my destination.
Juneboi 5 Nov, 2018 @ 6:19pm 
Does 'FFI stoppingdistance' work for anyone?
domingo 22 Sep, 2018 @ 9:43am 
@Blargmode: I've used "FFI Mass" on Text Panel and it wasn't readable ... LCD seems to be OK.
Gerart Zovitsky 23 Aug, 2018 @ 11:27am 
@Blargmode. Awesome will give that a try thank you!
Blargmode  [author] 23 Aug, 2018 @ 9:29am 
@|GFW|Gerart |Cmd.| The sea level doesn't seem to be very accurate. It think it's a variable used as a base value when generating the planet, not very useful otherwise.

@yokmp This script can't do that.

@|GFW|Gerart |Cmd.| Currently you can't give an icon to the Dot. Like you saw in the preload; I use it to overwrite a static icon. What you can do is having two separate icons, and two dots with the same data but one inverted.
I should probably make that possible though...
Gerart Zovitsky 21 Aug, 2018 @ 1:37pm 
@Blargmode Can I give the Dot/Indicator an icon, so that I can have two icons on top of each other. e.g. your warning triangle that is on the preload panel Tug-lift. I want the red warning triangle when below the threshhold of 3 Lift and I want a different, yellow icon thats above the threshhold of 3. Is this possible?
yokmp 15 Aug, 2018 @ 7:57pm 
How do i schow if a Block is On or off lke:
Block: On
Gerart Zovitsky 15 Aug, 2018 @ 11:51am 
Hello, any idea why my altitude-sea displays -1.78 km, even though im on the ocean?