Gameserver Dark Falls @ SpaceEngineers

Werte Mitglieder,

heute steht uns ein Space Engineers Server zur Verfügung hier kurz die Infos:

SpaceEngineers.png

Name: Dark Falls @ Space Engineers

Plätze: 16 Slots

IP: 213.239.234.136:27016

Hier eine Modliste unseres Servers:


Admins:


Ashley Vargrand

(Bei Problemen bitte direkt übers Forum oder hier im Thread anschreiben!)

Regeln:

  • Spielt fair!
  • kein Ganken!
  • Teamspeak Adresse: www.dark-falls.de ///// benutzt die jeweiligen Gruppen!


Viel Spaß wünscht das Admin Team der Dark Falls!

P.S.

vergesst nicht in den Optionen den Experimental Mode anzuschalten! Sonst könnt ihr nicht Beitreten!
 
Zuletzt bearbeitet:
Hier einige Scripts und deren Anleitung:

[QoL] Mechanical Keybinds

A Quality of Life mod to bring more engineering in Space Engineers.

Control your pistons, rotors, and hinges with movement keypresses!

Bind mechanical blocks to control keybinds
You can bind a mechanical block to the following controls (Default binds in parentheses):
  • Left/Right (A/D)
  • Up/Down (Space/C)
  • Forward/Backward (W/S)
  • Pitch (Mouse Up/Down, Up Arrow/Down Arrow)
  • Yaw (Mouse Left/Right, Left Arrow/Right Arrow)
  • Roll (Q/E)

Important! To control the mechanical blocks you must add them to a block group that includes the controlling cockpit. Only one group at a time per cockpit is supported.

On the controlling cockpit you need to add the Control Mechanics action to the cockpits toolbar.

To take control of the mechanical blocks change the Control Mechanics action bound to the cockpit to On. Note, if you add or remove blocks from the block group you need to turn control mechanics Off then On again if it is enabled when you modify the group.

Advanced Options
You can set the home position of the Mechanical block.
Block can be set to return to the home position if the input is 0 or if control is released.

Basic Setup Instructions

You can find the controls for the mechanical block added to the bottom of the terminal controls for each block:



Set the Bind and Control Velocity. Control velocity is multiplied by your input and will control the final velocity of the mechanical block.



Add the mechanical block to a block group that contains the cockpit from which you want to control the mechanical block from.



Add the Control Mechanics action to your cockpits toolbar. Toggle this to on to take control of your mechanical blocks.




TBD: Auto reverse when block reaches a maximum/minimum
Potential TBD: Gimbaled input
 
Isy's Inventory Manager

Übersicht


  • Basic Setup
  • Cargo container sorting
  • Exclude containers from sorting
  • Exclude containers from item counting
  • Exclude grids from sorting
  • Container priorities
  • Type container balancing
  • Auto assigning new containers
  • Automatic bottle refilling
  • Show / Hide Fill Level or No Conveyor connection
  • Internal inventory sorting
  • Special loadout containers
  • Autocrafting
  • Auto disassembling
  • Assembler cleanup
  • Refinery handling
  • O2/H2 generator ice balancing
  • Reactor uranium balancing
  • LCD panel output
  • Inventory items LCDs
  • Commandline Arguments

Basic Setup
The basic setup is very easy. You just need a programmable block with the script and that's it! Below you have a step by step description of what to do:
  • subscribe to my script in the workshop (see link in the title)
  • build a programmable block
  • open it in the terminal
  • press 'Edit'
  • in the new window, press 'Browse Workshop'
  • select my script 'Isy's Inventory Manager' and press 'Ok'
  • the code now appears in the window
  • press 'Check Code' and 'Ok' in the popup window
  • press 'Remember & Exit' and you're done
The script is now running with all its basic settings and all your containers should already be sorted.

For a more visual, video guide, watch my youtube video:


Cargo container sorting

All items are sorted based on their type into different containers. You can change the keyword a container has to contain to be recognized as a type specific container in the config section.
// Define the string a cargo container has to contain in order to be recognized as a container of the given type. const string oreContainerKeyword = "Ores"; const string ingotContainerKeyword = "Ingots"; const string componentContainerKeyword = "Components"; const string toolContainerKeyword = "Tools"; const string ammoContainerKeyword = "Ammo"; const string bottleContainerKeyword = "Bottles";


Exclude containers from sorting

By adding the 'Locked' keyword to any block's name, this block is excluded from sorting. This could be useful if you are preparing a container with things, you want to take with you on your next trip.

Locked containers will also be excluded as a source for any balancing method (ore balancing, ice balancing, uranium balancing).

By default inventories with the tag 'Locked', 'Seat' and 'Control Station' are excluded from sorting (the last two because they have no conveyor access). You can change or expand the list in the config section:
// Keyword a block name has to contain to be skipped by the sorting (= no items will be taken out). // This list is expandable - just separate the entries with a ",". But it's also language specific, so adjust it if needed. // Default: string[] lockedContainerKeywords = { "Locked", "Seat", "Control Station" }; string[] lockedContainerKeywords = { "Locked", "Seat", "Control Station" };


Exclude containers from item counting
You can exclude specific inventories from the item counting mechanism. This could be useful if you don't want the autocrafting to see certain items in docked ships for example. Also, the inventory panels won't show the items of that inventory either.

To do that, append the hiddenContainerKeyword to a blockname, by default 'Hidden'. The list is also expandable if you want to exclude other blocknames by default:
// Keyword a block name has to contain to be excluded from item counting (used by autocrafting and inventory panels) // This list is expandable - just separate the entries with a ",". But it's also language specific, so adjust it if needed. // Default: string[] hiddenContainerKeywords = { "Hidden" }; string[] hiddenContainerKeywords = { "Hidden" };


Exclude grids from sorting
It is possible to exclude whole grids from sorting by giving a connector on any connected grid the '[No Sorting]' keyword. Every ship, vehicle or whatever, that docks to this connected, won't be sorted.
string noSortingKeyword = "[No Sorting]";
In this case, only sorting will be disabled. Special containers however are still filled and uranium and ice balancing is also active.

To completely ignore a grid, add the '[No IIM]' keyword to a connector:
string noIIMKeyword = "[No IIM]";
Every ship or other vehicle that docks to this connector won't be sorted - all inventories on that grid are completely ignored.


Container priorities
By adding '[P#]' to the container name, where # is a positive number between 0 and 2.1 billion, the container with the highest priority will always be filled first. Priorities are ordered in a way that P1 is the highest priority, P2 the next highest and so on.

Addtionally, there are two special priority tokens:
  • '[PMax]' this container has the highest priority and will always be filled FIRST
  • '[PMin]' this container has the lowest priority and will always be filled LAST
If a container is full, the container with the next highest priority gets filled and so on. Containers with no '[P#]' tag have a very low priority that is generated by their entityID and is always above 10k.
Special containers however still have a higher priority than normal containers, but can also be tagged with priority tokens. The highest priority special container will be filled first.

Here are some examples of container names with priority numbers:
  • Small Cargo Container 1 Ores [P1]
  • Small Cargo Container [P13] Ingots
  • [P5] Cargo Container Components
  • Cargo Container Bottles [PMax]


Type container balancing
It is possible to equalize the amount of every item in every container of a specific type. This leads to the same item set in all of your type containers. This is very useful if you are attacked and a container is destroyed - the other containers will still have all your items as a backup (if you planned your base well enough :p ).

This feature however is very instruction heavy and could crash the script if you have many containers of the same type (successfully tested it with 15 component containers). That's why it's turned off by default. Also, container priorites of the type containers won't have any effect anymore.

To enable or disable the feature, change the respective setting in the config:
bool balanceTypeContainers = false;


Auto assigning new containers
By default, new containers are assigned to be used by the script, when a container is full or no container of a specific type exists yet. Containers for tools, ammo and bottles are always assigned as one. The same applies to ingot and ore containers.
Another feature is the automatic unassignment of empty and thus unused type containers. The tag gets removed after a the container was empty for a while to free it up for other purposes. Containers with a priority token, like [P1] won't ever be unassigned automatically.

Change the values to 'true' or 'false' to activate or deactivate a certain feature:
// Master switch. If this is set to false, automated container un-/assignment is disabled entirely. bool autoContainerAssignment = true; // Assign new containers if a type is full or not present? bool assignNewContainers = true; // Unassign empty type containers that aren't needed anymore (at least one of each type always remains). // This doesn't touch containers with manual priority tokens, like [P1]. bool unassignEmptyContainers = true; // Assign ores and ingots containers as one? bool oresIngotsInOne = true; // Assign tool, ammo and bottle containers as one? bool toolsAmmoBottlesInOne = true;


Automatic bottle refilling
By default, the script will try to move any incoming bottles to the first found O2/H2 generator on the grid before they finally get pushed to the bottle container. This works for just crafted bottles, that are inside an assembler, too. Only if a bottle is directly put into the bottle container, the script won't touch it.

To enable or disable bottle filling, change the value in config section (heading "Sorting") to true or false:
// Fill bottles before storing them in the bottle container? bool fillBottles = true;


Show / Hide Fill Level or No Conveyor connection
By default, the script shows a fill level percentage at the end of cargo container names, it manages. It also shows a [No Conveyor] tag in the name, if the block has no access to your main cargo containers.

You can activate or deactivate these features in the script config by setting the value to true or false:
// Show a fill level in the container's name? bool showFillLevel = true; // Tag inventories, that have no access to the main type containers with [No Conveyor]? bool showNoConveyorTag = true;


Internal inventory sorting
The internal inventory sorting sorts items in an inventory by name, amount or type. By default it is deactivated because it can lead to inventory desynchronization in multiplayer. Use at your own risk!
You can change the way, internal sorting works, by changing the sorting pattern in the config section:
// Sort the items inside all containers? bool enableInternalSorting = false; // Internal sorting pattern. Always combine one of each category, e.g.: 'Ad' for descending item amount (from highest to lowest) // 1. Quantifier: // A = amount // N = name // T = type (alphabetical) // X = type (number of items) // 2. Direction: // a = ascending // d = descending string sortingPattern = "Na";
You can also sort an individual inventory by changing the name of it. The syntax goes like this:
(sort:pATTERN)
In this case, PATTERN is a combination of characters shown above. See the following block naming examples:

Sort an inventory by item amount, ascending (from lowest to highest):
Small Cargo Container (sort:Aa)
Sort an inventory by type, descending (inverse alphabetical order Z -> A):
Small Cargo Container (sort:Td)
Sort an inventory by type and number of items, ascending (alphabetical order A -> Z, number of items from lowest to highest):
Small Cargo Container (sort:Xa)


Special loadout containers
By naming a container with the special keyword (by default: 'Special'), this container can be filled with a user defined set of items. To set the items, just edit the container's custom data field (a list of items is generated there). Special containers will never be drained by the autosorting but they will be available for balancing methods like ice or uranium balancing and autocrafting.

Special containers have three modes:
  • Positive numbers: stores the wanted amount and removes excess items (e.g.: Ore/Iron=100)
  • Negative numbers: doesn't store items but removes excess items (e.g.: Ore/Iron=-100)
  • Keyword 'all': stores all items of that subtype like a type container (e.g.: Ore/Iron=all)
Negative numbers are great for blocks, that pull their items by themselves, like the nanite factory.. It limits the maximum amount that is allowed to stay in the factory.
The 'all' keyword is great for advanced sorting of items. It will store all items of that specific subtype in the container until it's full. Excess items will then be stored in the regular type container.

Change the values to 'true' or 'false' to activate or deactivate a certain feature:
const string specialContainerKeyword= "Special"; bool allowSpecialSteal = true;


Autocrafting
My script is able to autocraft your components using every assembler available on the grid. There is no need to assign specific assembler to specific components. The script splits the needed amount evenly between them.
To start off, you need to build an LCD and name it 'LCD Autocrafting'. The script will put a list of components, that are autocraftable on the LCD. To set a new wanted amount, you simply have to edit the text on the LCD and change the number to your likings.
When the script queued items in the assemblers a symbol after the current amount will be shown, indicating, how many items are in the queue, e.g.: [Q:100]

By default, the assembler queue is sorted based on the most needed component. Whenever a component can't be crafted, the script will move the item to the end of the queue so that other items can be crafted.

Enable/disable autocrafting and autodisassembling
Enable autocrafting or autodisassembling by changing the following config settings. All assemblers will be used. Disassembling will disassemble everything above the wanted amounts. To use an assembler manually, add the manualMachineKeyword to it (by default: "!manual")
bool enableAutocrafting = true; bool enableAutodisassembling = false;
Autocrafting LCD
A LCD with the keyword "Autocrafting" is required where you can set the wanted amount! This has multi LCD support. Just append numbers after the keyword, like: "LCD Autocrafting 1", "LCD Autocrafting 2", ..
string autocraftingKeyword = "Autocrafting";
Assemble or Disassemble only tags
If you want an assembler to only assemble or only disassemble, use the following keywords and append them to the assembler's name.
A assembler without a keyword will do both tasks.
string assembleKeyword = "!assemble-only"; string disassembleKeyword = "!disassemble-only";
Modifiers
There are 5 modifiers that can be added to the wanted item amounts, that will change the way, autocrafting handles these items. These modifiers can be set on a per-item-level:

'A' - Assemble only
'D' - Disassemble only
'P' - Always queue first (priority)
'H' - Hide and manage in background

'I' - Hide and ignore\n
Assemble only modifier
The script will assemble the item to the quantity you set but it will never disassemble it even is auto disassembling is turned on and the stored amount is greater than the wanted amount.

Usage:
Component Current | Wanted SteelPlates 4123 < 5000A
Disassemble only modifier
The script will only disassemble the item, if it gets above the wanted quantity but it will never assemble more, if the stored amount drops below the wanted amount.

Usage:
Component Current | Wanted SteelPlates 4123 < 5000D
Priority modifier
Whenever the stored amount of an item is not equal to the wanted amount of it, the script will move it to the front of the assembling queue (this was done with '!' before v2.8.0)

Usage:
Component Current | Wanted SteelPlates 4123 < 5000P
Hide and manage modifier
If you want autocrafting to manage the amount of an item but you don't want it to be shown on the autocrafting LCD, you can use the 'H' modifier. The item with its current wanted amount will be moved to the custom data of your (first) autocrafting LCD and hidden from the LCD itself. The amount can be changed afterwards by editing it in the custom data. If you want to show it on the LCD again, just remove the line in the custom data.

Usage:
Component Current | Wanted SteelPlates 4123 < 5000H
Hide and ignore modifier
If you want you want to hide an item from the autocrafting LCD and don't want autocrafting to manage it, use the 'I' modifier (this was done with a negative item amount before v2.8.0). The item will be moved to the custom data of your (first) autocrafting LCD and hidden from the LCD itself. If you want to show it on the LCD again, just remove the line in the custom data.

Usage:
Component Current | Wanted SteelPlates 4123 < 5000I
Modifiers are also combineable. 'AP' for example will assemble only and prioritize. 'AD' will basically just show the item on the LCD but neither assemble nor disassemble it.

Margins for autocrafting and autodisassembling
Margins for assembling or disassembling items in percent based on the wanted amount (default: 0 = exact value).

Examples:
assembleMargin = 5 with a wanted amount of 100 items will only produce new items, if less than 95 are available.
disassembleMargin = 10 with a wanted amount of 1000 items will only disassemble items if more than 1100 are available.
double assembleMargin = 0; double disassembleMargin = 0;
You can add the header to every screen when using multiple autocrafting LCDs by enabling this option:
bool headerOnEveryScreen = false;
Sort the assembler queue based on the most needed components
The assembler queue is by default sorted by the most needed components. So if your assembler is producing steel plates, interior plates and bulletproof glass and you're absolutely dry on stell plates, they will be moved to the front of the queue.
bool sortAssemblerQueue = true;
Unknown / Modded items
The script is able to craft any modded item that is craftable in a vanilla assembler but it has to learn the crafting blueprint first. Unknown items have the tag [No BP!] (= no blueprint) behind their name:


In order to teach the script the blueprint of that item, you need to setup a learning assembler by adding one of the following tags to an assembler's name:
This will learn one item and then remove the tag so that the assembler is part of the autocrafting again.

This will learn everything you queue in it and will never be part of the autorafting again until you remove the tag (Important note: only ever queue one itemstack at a time and wait for it to finish).

To learn an item, queue it up about 100 times (Shift+Klick) and wait until the script removes it from the queue:


The script links the blueprint to the resulting item and is now able to autocraft this item. You can check that the script has properly learned the blueprint if the [No BP!] tag is gone:


Basic crafting with Survival Kits
You can enable basic ingot crafting in survival Kits with this option. It will however be automatically disabled if you have regular refineries built.
bool enableBasicIngotCrafting = true;
Autocrafting is also possible with survival kits, but as they are very slow, they are deactivated as soon as you have regualar assemblers. If you still want to use them, change this value to false:
bool disableBasicAutocrafting = true;
Manual crafting
If you still want an assemblers to be manually controllable, you can add the keyword "!manual" to its name. With this keyword, it won't be used by the autocrafting. The ouput of the assembler will still be sorted into your cargo containers. Example:
Assembler 1 !manual


Auto disassembling
If you set up your autocrafting LCD already and set all your wanted amounts, you can enable automatic disassembling in your config section (heading Autocrafting). This feature will disassemble all your excess materials automatically using all available assemblers.

Change the values to 'true' or 'false' to activate or deactivate a certain feature:
bool enableAutodisassembling = false;
Please be sure to set your wanted amounts BEFORE your enable this feature as this will disassemble all your goods imediately and turn them back into ingots. Also, manual crafting is kind of limited after enabling this because the script always tries to keep the set amount of items on the autocrafting LCD at all times.


Assembler cleanup
This cleans up assemblers, if they have nothing to do and puts the contents back into a cargo container.

Change the values to 'true' or 'false' to activate or deactivate a certain feature:
// This cleans up assemblers, if their inventory is too full and puts the contents back into a cargo container. bool enableAssemblerCleanup = true;


Refinery handling
This balances the ores in refineries. It's designed to refine ores as fast as possible by splitting the ore amounts equally between the refineries. The script won't care about the installed upgrades of a refinery, so if you want to refine a specific ore in a specific refinery, you might want to have a look at the topic "Special loadout containers".

By default, ores are pulled based on the most needed ingots. Also the refinery queues are sorted by the most needed ingots. However, this only works with vanilla ores or modded ores, that only have one outcome, so something like the "Better Stone" mod, that yield multiple ingots per ore, is not fully supported. The script will use and refine these ores but not in an intelligent way.

If you want to exclude one specific refinery from ore balance, append the keyword '!manual' to its name. Example:
Refinery 1 !manual
By enabling ore balancing, the script will balance the ores between all refinieres so that every refinery has the same amount of ore in it.
bool enableOreBalancing = true;
Enable script assisted refinery filling? This will move in the most needed ore and will make room, if the refinery is already full
Also, the script puts as many ores into the refinery as possible and will pull ores even from other refineries if needed.
bool enableScriptRefineryFilling = true;
Sort the refinery queue based on the most needed ingots?
bool sortRefiningQueue = true;
Fixed Ore Priorities
In the script config you can adjust, in which order ores are refined before the demand based refining is done. If you want an ore to always be refined first, simple remove the two // in front of the ore name to enable it. Enabled ores are refined in order from top to bottom so if you removed several // you can change the order by copying and pasting them inside the list. Just be careful to keep the syntax correct:
"OreName",
By default stone is enabled and will always be refined first.
List<String> fixedRefiningList = new List<string> { "Stone", //"Iron", //"Nickel", //"Cobalt", //"Silicon", //"Uranium", //"Silver", //"Gold", //"Platinum", //"Magnesium", //"Scrap", };


O2/H2 generator ice balancing
This will balance ice between all O2/H2 generators on all connected grids. The fill level percentage acts as a safety value in order to always be able to fill bottles.

Note: O2/H2 generators will pull more ice automatically if you set a value below 60%

If you want to exclude one specific oxygen generator from ice balance, append the keyword '!manual' to its name. Example:
Oxygen Generator 1 !manual
Change the values to 'true' or 'false' to activate or deactivate a certain feature:
// Enable balancing of ice in oxygen generators? bool enableIceBalancing = true; // Ice fill level in percent in order to be able to fill bottles? (default: 95) double iceFillLevelPercentage = 95;


Reactor uranium balancing
This will balance uranium between all reactors on all connected grids. The vanilla conveyor pull is deactivated in order to stop them from pulling more. A max uranium amount for large grid and small grid reactors can be set independently from each other.

If you want to exclude one specific reactor from uranium balance, append the keyword '!manual' to its name. Example:
Small Reactor 1 !manual
Change the values to 'true' or 'false' to activate or deactivate a certain feature:
// Enable balancing of uranium in reactors? (Note: conveyors of reactors are turned off to stop them from pulling more) bool enableUraniumBalancing = true; // Amount of uranium in each reactor? (default: 100 for large grid reactors, 25 for small grid reactors) double uraniumAmountLargeGrid = 100; double uraniumAmountSmallGrid = 25;


LCD panel output
The following topic explains, how to use LCD panels (regular and block LCDs) of my script. Whenever you add one of the following keywords to a LCD name, the keyword gets transformed to the universal [IsyLCD] keyword. In the custom data, you can then set different options about the LCD as well as the screen, the information should be shown (on blocks like cockpits, programmable blocks and so on). The custom data will look like this:

@# stands for the screen, the information is shown, where # is the screen identifier number from 0 to the max number of screens - 1. A programmable block for example has two screens: The main screen and the keyboard. Both can be used to show the script informations (screen 0 and screen 1). To change the screen, you want to show your informations, just edit the screen identifier number in the custom data.

It is also possible to display informations of different scripts in one block by using this syntax (MMaster's Automatic LCDs 2 uses the same syntax and all of my other scripts).

LCD Keywords
Main LCD
You can display all the main script informations like type container fill levels, managed blocks and last script actions on the main LCD. Just add the following keyword to a LCD name:
To be clear: it is exclamation mark, capital i i m (for Isy's Inventory Manager). You can enable or disable specific informations on the LCD by editing its custom data.

Warning LCD
You can display all current warnings and problems on a dedicated LCD screen. Just add the following keyword to a LCD name:
Performance LCD
You can display the script performance (PB terminal output) on a dedicated LCD screen. Just add the following keyword to a LCD name:


Inventory items LCDs

You can show the current amounts of your stored items on LCD panels. To display them, build a LCD panel, add the keyword '!IIM-inventory' to its name and follow the on screen instructions:

1a. Either put a item type in the custom data:
Name
Result
Ingot
This shows all ingots
Component
This shows all components
Ore
This shows all ores
AmmoMagazine
This shows all ammo magazines
OxygenContainerObject
This shows all oxygen bottles
GasContainerObject
This shows all hydrogen bottles
PhysicalGunObject
This shows all weapons and tools
1b. Or put a item subtype in the custom data:
Name
Result
SteelPlate
This shows all steel plates
SmallTube
This shows all small steel tubes
Computer
This shows all computers
1c. Or a combination of item type and subtype in the custom data:
Name
Result
Ingot/Gold
This shows all gold ingots
Ore/Stone
This shows all stone
Ingot/Stone
This shows all gravel
1d. Or put a partial item name in the custom data:
Name
Result
Plate
This shows all items containing 'Plate': SteelPlate, InteriorPlate, etc..
Welder
This shows all items containing 'Welder'
Bottle
This shows all items containing 'Bottle': HydrogenBottle, OxygeBottle
1e. Or put one of the Echo commands in the custom data to show your own text or headings (v2.8.0+):
Command
Result
Echo My Text
This will show 'My Text' on the screen aligned left
EchoC My Text
This will show 'My Text' on the screen aligned center
EchoR My Text
This will show 'My Text' on the screen aligned right
Echo
This will just add a blank line (also works with EchoC and EchoR but makes no difference)
2. Optionally, add a max amount for the bars as a second parameter:

Example:
ingot 100000

Additional feature:
If an inventory panel line has 0 as the max value, a single line only containing the item name and current amount is shown (no bars, percentages or max values).

Example:
ingot 0

3. At last, you can add modifiers for each entry:


There are 5 modifiers at this point:
  • 'noHeading' to hide the heading
  • 'singleLine' to force one line per item
  • 'noBar' to hide the bar
  • 'noScroll' to prevent the text from scrolling
  • 'hideEmpty' to hide items that have an amount of 0
Example:
@0 !IIM-inventory Ingot 100000 noBar Ore hideEmpty Echo EchoC Amount of Steel Plates: Echo SteelPlate 50000 noHeading noBar
Result:


Important!
Begin a new line for every item or every type you want to show on the LCD.

Hint:
One 'noScroll' modifier per screen is enough. It doesn't need to be set for every custom data line.

The content of the LCD will adjust itself automatically to the set font size


Multi-panel inventory screens
You can display your inventory items over multiple screens by giving all screens the same group tag (this has to be set in the custom data of a screen after giving it the !IIM-inventory tag in the name). The syntax is the following:
!IIM-inventory:GROUP#
  • GROUP is a name of your choice (NOT a terminal group!)
  • # is the number of the LCD in the row
Example:
Custom data of LCD 1:
@0 !IIM-inventory:myComp1 Component 100000 singleLine noScroll
Custom data of LCD 2:
@0 !IIM-inventory:myComp2
The settings of the first panel in the row will be set for all panels of the group (font size and custom data settings).

Note: Every panel's name still has to contain the [IsyLCD] keyword in order to be recognized by the script (gets automatically set after giving the LCD the '!IIM-inventory' tag).


Commandline Arguments
Nearly every feature of the script can be temporarily enabled or disabled without the need to edit the script. These commands are sent to the script by writing them in the programmable block's argument field and pressing run or by pulling the programmable block to any hotbar (cockpits, button panels and so on), selecting run and typing in the arguments in the popup window.

The syntax works like this:
variable on|off|toggle
For example:
enableAutocrafting off
This will temporarily disable autocrafting (until the script is recompiled or the world is reloaded).

enableOreBalancing toggle
This will toggle ore balancing on or off based on it's current state.

Full list of all available variables
balanceTypeContainers
showFillLevel
autoContainerAssignment
assignNewContainers
unassignEmptyContainers
oresIngotsInOne toolsAmmoBottlesInOne
fillBottles
enableAutocrafting
enableAutodisassembling
headerOnEveryScreen
sortAssemblerQueue
enableBasicIngotCrafting
disableBasicAutocrafting
allowSpecialSteal
enableOreBalancing
enableScriptRefineryFilling
sortRefiningQueue enableIceBalancing
fillOfflineGenerators enableUraniumBalancing
fillOfflineReactors enableAssemblerCleanup
enableInternalSorting useDynamicScriptSpeed
excludeWelders excludeGrinders
connectionCheck showNoConveyorTag
protectTypeContainers
https://steamcommunity.com/sharedfiles/filedetails/?id=1216126863
 
Vektor Thrust

Vector Thrust
Put your thrusters on rotors!

Documentation

If you have Control Module installed in the world, it will just work. This is optional.

MAIN SETUP
1. Load the script into a programmable block (If you don't know how to do that)
2. Run the programmable block It should be already running. if its on standby mode, you will have to pass the %standby argument
3. Setup your Cockpit buttons or use Control Module (you need %Standby either way)
4. Get in and press the jetpack button to turn the engines on.

INFO PANEL SETUP
While this is optional, I highly recommend it.
1. Place a text panel
2. Put %VectorLCD in the name
or
1. put "%Vector:0" (without quotes) on its own line in the custom data of your cockpit

VANILLA BUTTONS SETUP
1. Get in your cockpit, press G
2. Drag the programmable block to the bar and select "RUN"
3. Copy & paste the code for your controls. You will need:
%jetpack %dampeners %cruise %standby %raiseAccel %lowerAccel %resetAccel

Standby completely stops the script, till you press the button again (and also safely turns off thrusters & rotors) please use it in multiplayer
the last 3 control your 'Target Accel' value and are optional
Dampeners, Jetpack, and Cruise all toggle their respective values.

CONTROL MODULE
X: engines on/off Z: inertia dampenerse on/off R: cruise mode on/off +: increase target acceleration -: decrease target acceleration 0: reset target acceleration
there is currently no binding for standby, so you will have to set that up with the vanilla method

CRUISE MODE
This makes the craft behave like an airplane, it will drift forward, but apply inertia dampeners for any other direction.
suggested by Raiteri

FAQ
Better Instructions?
Here!

Why don't my thrusters point the right way? / Why do my thrusters spin like crazy?
This is most likely the Keen Phantom Torque bug. As it stands there isn't much I can do about it. There is a workaround in the Detailed Manual (see 'Centre of Mass Issues'). If you have tried those and it still doesn't point the right way, tell me.

Does it work in Space?
Short answer: Yes.
Long answer: The concept doesn't really work that well in space. It takes time for the thrusters to move to the desired position, this is made worse in space since the thrusters might need to point in any direction. In gravity, the thrusters don't need to turn as much because they mostly just need to point down.

Rotor on a Rotor?
Short answer: No.
Long answer: This is unstable and would require a large re-design.
If you really want a rotor on a rotor, you can force it by putting a thruster on each subgrid that has a rotor head.

Can I stop my ship from controlling other vector thrust ships on the base?
Yes! See the 'Tags' section in the Detailed Manual.

Why won't my thrusters turn on?
Short answer: You need to turn them on using the script, not the terminal.
Long answer: pass the %jetpack argument, or if you are using Control Module, press your suit jetpack key.
 
Oben