Space Engineers

Space Engineers

Inventory Report [ADVANCED] << LCD!! >>
 This topic has been pinned, so it's probably important
CommanderGizmo  [developer] 2 Mar, 2015 @ 12:27am
Owner's Manual
---{ Owner's Manual }---
This is an overview of the features and use of the software. This isn't meant to be comprehensive or detail every possibility, but rather to give a general idea of how to make use of the available features. It can also be used as a quick reference to those who are more experienced with the software's basic features.


-=== Overview ===-
This software is intended as a low level operating system for your ship or station. It is provided as-is and no warranty or guarantee of any kind is provided. If it blows up your ship, dog, homework, or universe we can accept no responsibility. The current feature set is only a limited part of the full program, but don't worry -- it's not a demo! Each additional module will be added for free as they are completed. Right now the software can:
  • Self install or uninstall with only one code edit once
  • Track the inventory of your entire grid
  • Provide full reporting features including:
    • Realtime data updates
    • Sliding reports, which change between screens on a timer (no extra block required)
    • Completely custom reports down to the item or statistic
    • Custom item names, categories, and groupings
    • Custom formatting per report
    • Filtering by numerical values
    • Full text search
    • Status bars (or progress bars) showing the relative state of each item or statistic
    • Quotas and warnings down to the item or statistic
  • Program control and option changes in realtime without any code edits
  • Full debugging support without any code edits
  • Partial localization (with code edits)
  • Hide data of your choosing from outsiders while you see everything
  • Run indefinitely without ever hitting complexity limits, even with over 100,000 item stacks in inventory.


--=== Owning Blocks ===--
The software claims blocks by appending a unique ship name to the end of blocks' names. This can be done and undone through the installer or manually. Since current methods of finding blocks on the same grid cannot find those attached through rotors or pistons, a unique name is more suitable to distinguish one ship from another. Please see the Detailed Setup Guide for more information on installation.

The data stored at the end of a block's name also defines how the block is used by the software through an action followed by instructions. The action tells the software what to do with the block, while the instructions tell the software how to carry out the action. For example, lets see what the software does if we have a block with the name:
  • Interior Light [MyShip | CONTROL, INSTALL]
    • MyShip: This block is owned by the program that runs on the ship called MyShip
    • CONTROL: This block executes the action CONTROL, which changes a program option or state in realtime
    • INSTALL: This block changes the INSTALL option of the software
Here's a more complex example:
  • LCD 2 [Processing Plant | display, %:52, inventory:plat]
    • Processing Plant: This block is owned by the program that runs on the ship called Processing Plant
    • display: This block executes the action DISPLAY, which displays a report through the block
    • %: The report should show status bars to graphically indicate status
    • 52: The status bar should be 52 characters wide
    • inventory: The report should show the entire inventory in alphabetical order
    • plat: The report should be filtered to show only items with plat in their names

The software scans for changes in the blocks (or new blocks if installing) once every ~15 seconds when the optimizer is enabled. Otherwise it scans once per second. This configuration allows for a wide range of customization available to the end user, though some knowledge of the available options is required.


--=== Block Actions ===--
In order to apply the features of the software effectively, the user must know what actions are possible. As the software development progresses, additional actions will become available. Here is a list of those currently available:
  • AUTO: Use the block in the default way for the block type

  • IGNORE: Pretend the block doesn't exist at all

  • CONTROL: Use the block's data as inputs for options or states within the software more info

  • DISPLAY: Use the block to display reports to the user [tutorial not complete]

  • DEBUG: Use the block to display the debugger output to the user [tutorial not complete]


-=== Reports ===-
There are a great many possible combinations of features that can be used to build a report. These are broken into several groups:
  • Subjects: The name of a report, an item group, an item category, an item, or a statistic, ie: Ingot

  • Prints: Any subject that can't be matched to a known item is simply printed to the report, ie: The quick brown cow...

  • Modifiers: Modify all subjects which come after them with formatting or filtering options, ie: %

  • Filters: A value listed after a subject and a colon, which filters the subject, ie: INVENTORY:filter

By combining these various options together the user can create a nearly endless range of display screens. In order to provide an easy way to display common reports, it is possible through simple code edits to add an alias for the complex combinations of the above features. This also allows the user to specify a custom sort order for the report. Additionally, it is also possible to use custom item groups in order to limit the number of items that must be typed to generate a detailed report. For more information see the [not compelted] tutorial.


-=== Configuration ===-
The software has a range of configuration options, which are divided into sections at the beginning of the code file for easier user access. Some options can be configured only in code, while others can be configured by code or block. The sections in order are:
  • Setup: Used for initial setup

  • User Data: Defines custom reports, as well as custom item names, categories, groups, quotas, and warnings

  • Controls: Defines the default values for the available controls

  • Formatting: Defines what characters and defaults are used when reading block names or formatting reports

  • Localization: Defines strings used by the program

Please see the [not completed] tutorial for more information.


-=== Security ===-
We know security is important to our users. That's why we've included a token feature to give the impression of security. In the special case that you for some reason want to hide data on some screens from 'visitors' to your ship, the software includes a PRIVACY mode. When enabled through a CONTROL action, all data that isn't marked public is hidden. It is recommended, however, that you install sensors to turn your display screens off when no authorized user is nearby. Additional security features will become available at a later time. Please see the [not completed] tutorial for more information.


-=== Performance ===-
In order to increase performance while maintaining a realtime refresh rate on the report displays, the software has a built-in optimizer, which will determine if some operations should be delayed for a later loop. This may cause some configuration changes to delay for a few seconds before they take effect. Also of note is the effect that updating many screens many times per minute can have on the game performance. At this time, the only way to update an LCD is to force a texture redraw, then a text redraw. This is very wasteful and should not even happen until the user is looking at the screen. The software already includes checks to determine if a screen update is required before requesting a refresh. However, a far more effective way to increase performance and privacy at the same time is to install sensors that turn the screens on only when there is an authorized user within viewing range. It is recommended that care be taken when installing a great number of screens on a dedicated server.


-=== Debugging ===-
A large amount of debugger data is available without editing any code through the DEBUG action and various reports through the DISPLAY action. This can assist in sorting out issues or adding custom names, groups, or reports to the configuration. For more info see the [not completed] tutorial.
Last edited by CommanderGizmo; 2 Mar, 2015 @ 5:34pm
< >
Showing 1-15 of 24 comments
Hey thanks for this its already looking awesome. Just trying to wrap my head around it but its been something Ive been looking for since the LCD screen update. Brilliant work keep it up!
Void_Time_Gaming 4 Mar, 2015 @ 2:28am 
Can I get some better examples?
Say I want to just display the amount of all ingots I have on station.
CommanderGizmo  [developer] 4 Mar, 2015 @ 5:24am 
There will be more detailed tutorials very soon. Just type [MyShip, display, ingot]
Void_Time_Gaming 4 Mar, 2015 @ 12:53pm 
TY I can not wait for the tutorial. I got it to install and use example showed ammo. maybe guide will show pictures or output with what it needs in LCD name that would be good.
Void_Time_Gaming 4 Mar, 2015 @ 6:20pm 
I use this and got to run [RRR | DISPLAY,%:5 , Ingot Resort]
Question:
The LCD display 5 wide [|'''''] ( ! ) Silver:672
Just for simple now what level tells the ( ! ) to display? How to set or change this?
for the [|'''''] does this move based on level when will it move?
DarkKnight  [developer] 5 Mar, 2015 @ 12:20am 
@Void_Time_Gaming:
You will change those option in the program block with the software.

Take Silver for example you will see a line like this:

new ItemDefinition("Ore", "Silver", "Ag", "Raw", 500000, 1000),

Change those last 2 numbers to what you want.

The First Number is the Quota, mine is 500,000k = Once Filled my bar would be full like this [|||||]
The second Number is the warning or the ( ! ) once below that number you will see it appear.

You can set your own parameters for everything this way.

Let me know if that helps, and if that is what you were looking for.
Void_Time_Gaming 5 Mar, 2015 @ 2:03am 
Working good so far Thank You I reworded some things like "Rivets" to "Const Comp" and it works. I figured how to make a AddCustomReport("Report2", "Component:Construction");
and get it to display with [RRR | DISPLAY, Report2] in LED I also adjust levels TY for that.

Now Howto make it only show Up 2 reports if Item is low Like For WARNING level By read code I assume I enter into LCD the following
[RRR | display, <:5000, Report1] and [RRR | display, <:2000, Report2]

For example I want 1 only LCD screen that display only low stock items

This is great work also TY I can not say how happy I was to find this.

I can get 1 screen to show low items for Report1 But I like to have 1 screen show for both Report1 and Report2


Last edited by Void_Time_Gaming; 5 Mar, 2015 @ 2:18am
Void_Time_Gaming 5 Mar, 2015 @ 2:33am 
New mind I just make new report with all parts and make warning with that.
Last edited by Void_Time_Gaming; 5 Mar, 2015 @ 2:34am
Philip 5 Mar, 2015 @ 12:19pm 
Great work.... :) is there any way to see how much energy your solar panels are producing...?
Lighted Shadows 6 Mar, 2015 @ 9:59pm 
How to display Just Cargo Capacity with meter?
CommanderGizmo  [developer] 6 Mar, 2015 @ 10:06pm 
[MyShip | Display, %, VOL:c]

You can use any of: d, c, r, t
Lighted Shadows 6 Mar, 2015 @ 10:33pm 
what is d,c,r,t stand for? c=cargo
CommanderGizmo  [developer] 7 Mar, 2015 @ 12:06am 
It's the first letter of each volume item.
VirtualRageMaster 9 Mar, 2015 @ 10:05am 
Can I filter a report based on which container the items are in?

I want to display only items that are contained within blocks that have "Welderpod" in the name. Is that possible?

Changed my text display name to this

[Eviscerator Mk.6 | DISPLAY, VOL, %, INVENTORY:Welderpod]

Text panel is drawing a blank tho.
Lighted Shadows 9 Mar, 2015 @ 12:28pm 
@RageMasterUK INVENTORY:Welderpod will only work if you created a custom list called Welderpod inside the script itself. Also when you install the script it adds the apendage to the end of cargo like this Welderpod [shipname | Auto] if the containers do not have this they do not get poled.

The best way I found to install is to set up your timer and program block. Open the script and changed auto install to true. Run it once and you will see the name addition to containers. set it back to false and remove the addendage from things you do not want poled and re edit the script and save it will update and not pole in named containers.
< >
Showing 1-15 of 24 comments
Per page: 1530 50