A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #
Home » Guides » Space Engineers - Fancy Status Displays Guide

Space Engineers - Fancy Status Displays Guide

Written by Coffee   /   May 3, 2020    


How to use the Fancy Status Displays script by Coffee for Space Engineers.

Guide to Fancy Status Displays



Initial Setup



  • Place down a programmable block.
  • Load the script by selecting the block in the terminal gui and click "Edit", "Browse Scripts".
  • The Fancy Status Displays script should be in the list if you subscribed to it.
  • Select it, click "Copy to editor" than hit "OK".

Usage



  • Generally the script allows you to display information about your grid blocks on any screen.
  • You do so by writing what you want to display into the custom data of the block that either is a screen itself, or holds the screen (cockpit, flightseat, programmable block, control station).

Keywords / How to Display Things



First thing to write down into the custom data of the screen or block with screens would be:

  • ShowStats

This tells the script to act on this block. Do a linebreak after it.

Next, if it is a block with multiple screens, you would have to write down the screen that shall be used to display the information. Do a linebreak after it. Skip this if it's a single screen.

  • Panel 0

Shows you something at the first screen.

  • Panel 1

Shows you something at the second screen and so on - you get the point.

Into the next line, you type what to display. You can use block names - the script then searches for all blocks wich are contaning the given string:

  • Battery

Displays all blocks containg "Battery" (e.g.: Battery 1, Battery 2, Miner Battery).

The second option would be to use a group name:

  • MyGroup

Displays all blocks contained in a group called "MyGroup".

Keyword Extensions



You could alternate the display method with these, by typing it after the block or group name.

  • :WideBar

Shows a single wide bar as a summary of single blocks instead of each block individually. Has to be the last keyword extension in a line.

  • ,optional

Shows optional info about a block insdead of the standard info. Has to be the first keyword extension in a line.

Only applicable to:

  • Batteries (shows power input/output instead of load percentage, the chargebar will stay at load percentage).
  • Hydrogen Engines (shows power input/output instead of hydrogen).
  • Reactors (shows uranium storage instead of power input/output).

Summary / Examples



Block with multiple screens

So let's say you have a cockpit, and you want to display information about your batteries wich all contain the string "Battery" on the second screen, you would have to type the following into the custom data of the cockpit:

  • ShowStats
  • Panel 1
  • Battery

Next you want to see the chargestate of all your Jumpdrives wich are all in a group called "MyJumpdrivesGroup", and you want to see it as a single wide bar on the first screen. On the same screen you want to further see the Hydrogen Engine H2 level whereat the Engine is called "Hydrogen Engine".

  • Panel 0
  • MyJumpdrivesGroup:WideBar
  • Hydrogen Engine

And on the third screen you want to see how much uranium your Reactor with the name "Reactor 1" has left:

  • Panel 2
  • Reactor 1,optional

In summary the custom data of the cockpit would then look like this:

  • ShowStats
  • Panel 1
  • Battery
  • Panel 0
  • MyJumpdrivesGroup:WideBar
  • Hydrogen Engine
  • Panel 2
  • Reactor 1,optional

Normal (single) screen:

Same as above, you just do not need to type wich panel, so the custom data would look like this:

  • ShowStats
  • Battery
  • MyJumpdrivesGroup:WideBar
  • Hydrogen Engine,optional:WideBar

Note that at the last line with the Hydrogen Engine, 2 extension keywords (optional & WideBar) are used, wich is also possible.

Shields

Two shield mods are supported at the moment:

  • Defense Shields
  • Energy Shields

Example for a single screen (Defense Shields mod with a shield controller named "[A] Shield Controller")

  • ShowStats
  • [A] Shield Controller

Example for a single screen (Energy Shields mod with a shield generator named "Large Shield Generator")

  • ShowStats
  • Large Shield Generator

Script Configuration



In the config-section of the script, you can change some settings. Open the programmable block via "Edit" so you can see the config and the code of the script. The config looks like this:

//  ************************
//  Config  *****************

// Tag the script reacts to - write it to the custom data of your screen/cockpit
string lcdtag = "ShowStats";

// Tag to display either power or inventory if a block has both (in case of battery it's load percentage or input/output)
string optionaltag = "optional";

// Tag to display a large chargebar instead of each block individually
string widebartag = "WideBar";

// How often the script is updating
int scriptUpdatesPerMinute = 60;

// The fancy stuff  
// Any RGB-Color could be used from Black new Color(0, 0, 0) to White new Color(255, 255, 255)
     
Color frameColorFunctional = Color.Cyan;        //color if block is not damaged
Color frameColorNotFunctional = Color.Red;      //color if block is damaged
Color frameColorWideBar = Color.White;            //color wide bar
Color headlineColor = Color.White;              //headline for single blocks
Color headlineColorWideBar = Color.White;       //headline for wide bar
Color pictogramColor = Color.White;             //symols on single blocks
Color percentDisplayColor = Color.White;        //fillstate percentvalue on single blocks

The tags

lcdtag, optionaltag and widebartag should only be changed if:

  • There is a conflict with another script

or

  • You don't like the name and want to use other keywords

If you for example want to change the lcdtag from ShowStats to DisplayStatus, the line must be modified like this:

  • string lcdtag = "DisplayStatus";

Script updates - how fast the script runs

If you want to save performance, you could change this line:

  • int scriptUpdatesPerMinute = 60;

to

  • int scriptUpdatesPerMinute = 30;

So the script will only update your screens every 2 seconds. Higher values than 60 will not make the script run faster for performance reasons.

The fancy colors

You can change every color listed here. I've provided you with a list you can use below the color-section.

If you want to change the headline from white to orange, make the line look like this:

  • Color headlineColor = Color.Orange;

You could also use RGB-values:

  • Color headlineColor = new Color(255, 255, 255);

Written by Coffee.