Space Engineers

Space Engineers

87 ratings
Vector Thrust OS Definitive Guide
By Пиро
The guide of https://steamcommunity.com/sharedfiles/filedetails/?id=2831096030

With this guide you will learn every configuration, functions, advantages, disadvantages, and limitations that this InGameScript has available.

Despite this script has reached it's main objective, it is still a work in progress, so make sure to come back here to see what's new.


4
   
Award
Favorite
Favorited
Unfavorite
Guide Index
  • Introduction

    Basics (Must Know This)
    • 1.1 - The Center Of Mass
    • 1.2 - Before Starting...: How you must place thrusters in your ship.
    • 1.3 - Blocks Used: What blocks you need to use.
    • 1.4 - Now What?: Finishing basic setup.

    Intermediate (Recommended Checking Out)
    • 2.1 - Dampeners & Normal Thrusters
    • 2.2 - Cruise Mode & Normal Thrusters
    • 2.3 - Parking Mode
    • 2.4 - Backup Batteries & about Battery Recharging Mode: Related to Parking Mode.
    • 2.5 - Tag Assignment and Management: HIGHLY recommend checking this.
    • 2.6 - Assigning LCD and Cockpit Screens: Related to Tag Management.

    Advanced
    • 3.1.1 - Advanced I: The Custom Data Configuration Explained
    • 3.1.2 - Advanced I: The Custom Data Configuration Explained Part 2
    • 2.2 - Advanced II: Fixing Common Issues
    • 3.3 - Advanced III: Fixing Unusual Issues
Introduction
https://steamcommunity.com/sharedfiles/filedetails/?id=2831096030
With this guide you will learn every configuration, functions, advantages, disadvantages, and limitations that this InGameScript has available.

Despite this script has reached it's main objective, it is still a work in progress, so make sure to come back here to see what's new.

Youtube Tutorials Playlist (In Progress) (More incomplete than this guide)

First of all:
You need to consider the following keywords when reading this guide:

Custom Data Configuration
When you enter this script to a programmable block, a Configuration "File" will be generated in the Custom Data of that block, all modifications you'll do (If it's necessary), should be done in there.

Also, to apply changes, you must wait the countdown that I'm enclosing in a red rectangle to reach 0, or Recompile the script.


Vector Thruster and Normal Thruster

You can see here that the normal thruster is literally a vanilla thruster placed in the same grid where the programmable block is placed, and the vector thrusters are the ones that are available for the script to control, they're all the ones that has a rotor or hinge, then a thrusters in it's top/grid.

Gears

Like the gears of a car, when I talk to gears it means the level of acceleration that is set in that moment to the ship, by default the script has 3 gears that sets the amount of acceleration your ship will have when you move or brake.


Run With Argument
This means that you run a command to the programmable block's text input and click "Run".

Also, it means that in the action toolbar configuration of a controller you can grab the programmable block to one of the slots and select "Run", then in argument enter the desired command and click Confirm.


What precisely does this script do?
  • This script controls rotors with thrusters in it automatically to use it as an alternative to propel your ship, one rotor with thruster(s) is the equivalent to placing that amount of thrusters per 4 directions, so you're saving 75% of resources and space.
  • Has it's own Artificial Horizon, part of the code is from Artificial Horizon Redux by Whiplash, but it will get redesigned in the future.
  • You can park with a connector or landing gear, turn off normal thrusters and vector thrusters, set batteries to recharge and set thanks to stockpile if necessary and if there's enough energy in the grid you parked.
  • You can change part of the configuration if the script is too expensive in performance in your server/save.
  • Set cruise mode automatically by turning off all backward normal thrusters, or by programmable block.
  • Lets you use control module to replace the actions with argument of the programmable block with controls of your keyboard.
  • Lets you the grid on any environment (gravity/space).
1.1 - The Center Of Mass
The center of mass is right now vital to make the vector thrusters of your ship to work properly, to get it, go to control panel (Default K), go to Info tab, then check the "Show center of mass" option.



As you can see I see a dot that is the center of everything, then lines that aims to the sides, to the front/back and up/down, that's where you have to reference to place as near as possible your rotors, like you see here:



Also, you can place thrusters far from the center of mass, but it requires to set the equivalent of thrust on the other side:



If you want to place a vector thruster 3 blocks away from the center of mass, you'll have to place another one 3 blocks away at the other edge, that will make the thrust in parallel and should work fine if you place the same amount of thrusters in both rotors (but it's not a requirement).

1.2 - Before Starting...
There's one more rule that you must follow when building your ship, you can't place vector thrusters on the same axis (for now) you only can place vector thrusters in 2 axis maximum.

Axis are all the directions (with the controller as reference) that the rotor can reach horizontally, a rotor can aim to 2 directions, a hinge only 1.

For example, if the rotor is placed at the left or right of the ship, the rotor can aim the thrusters to the forward/backward, up/down axis. But if it is placed on the top of the ship, the rotor will aim to the forward/backward, left/right axis.

You can only place this group of rotors as I show in the following images, the red thruster means that it shouldn't be there.


1.3 - Blocks Used
When building a ship, we will divide the blocks that the script can handle into 3 categories:

Essentials
These are the blocks that you will need to get any ship to work properly, and the script (obviously) needs them to work.
  • Controller
  • Source of energy: Batteries/Reactor/HydroEngine
  • Fuel (If needed): Hydrogen Tanks/H2O2 Generator
  • Gyroscope
  • Thrusters (of course)

Needed
These are the blocks that requires the script to work or else it will crash or not start.
  • Rotors/Hinges (at least 1) with thrusters (at least 1 as well) in it's top part, placed horizontally.
  • Programmable Block

Optional
These are the blocks that the script can use, but are completely optional, on the other hand, I recommend including them.
  • Normal Thrusters (it needs to be in the same grid than the programmable block)
  • Connectors/Landing Gears
  • If using connectors, Backup Bateries (Recommend small batteries) (See below for more info)
  • LCDs
1.4 - Now what?
Let's add the remaining parts of the ship I'm building in this guide, the gyroscope and the programmable block, access the PB, click Edit, select the script, click Ok and it's done.



Then we'll add our landing gear to the action bar of the controller, press the action bar menu key (Default G), grab the landing gear to the slot you want, then select switch lock. We'll try to unpark and you can see that the ship automatically turns on and allows me to move without problems.



Now, we'll replace the artificial horizon that we see here to the one I "made" ("fork" from Whiplash's AHR), for that, I'll go to the cockpit's control panel, and in it's custom data add "VT:0" to the input and click ok.



Finally, we need to toggle between accelerations and cruise mode, for that, open the Action Menu again and drag and drop your programmable block in any slot you want and select "Run", as argument, add "gear" (doesn't matter if it's uppercase or not) and another slot with argument "cruise".



If you made it to this point, congratulations! You learned about the essentials of the script, use the GEAR action to toogle between accelerations, it has 3 by default (we'll see more about this below), and CRUISE to toggle cruise mode, the ship will go to where the ship is aiming without losing as less velocity as possible, helping you to maneuver and save energy/resources.


2.1 - Dampeners & Normal Thrusters
To start with this topic, you have to take in count two things:


If you don't have any normal thrusters in the same grid as the programmable block and cockpit, you will see that vanilla dampeners (the one that shows you in the HUD) are "off" but it isn't really off, if the controller doesn't find any normal thruser, it will assume that you're in a rover, so it gets disabled by default.




That's why there's this indicator, the DAMP that will show to the lcds you have assigned if dampeners are On (Red) or Off (Gray), that applies to the other indicators as well, like PARK or CRUISE, but we'll see about that later.




If you don't have normal thrusters, then you only can toggle with this:



There's also another way, but it requires a mod to be installed (See below).

Or simply place a normal thruster, then toggle it like normal:



Now, how this damepeners work?

This dampeners are not different on space, instead, in gravity environments the script will mimic the movement that has the dampeners of space, following the direction that is already having the ship using as less resources as possible.



This, is really OP, you can blast off into space, reach maximum velocity, then turn off dampeners, the ship will go up by itself and you won't have to worry about the thrust consumption/usage.

By the way, when you have dampeners turned off, you can see an arrow where points to the direction the ship's going, green arrow means that it's pointing to the front, while red, behind you.
2.2 - Cruise Mode & Normal Thrusters



When cruise mode is enabled, you will see it like in the indicator in any lcd that you assigned to the script (RED = ON).
We know that we can toggle cruise mode with the Run with Argument CRUISE, but there's a more practical way to toggle it.



First, we need to place a backward thruster (A thruster that points to forward relative to the controller), then rename it to something recognizable to search it in the Action Bar Config (In my case added "Backward" and that's it).



Then add it to the action toolbar, with the action "Toggle block On/Off", and that's it.



You can see here that when I turn off the backward thruster, cruise mode will activate, at the same time if I toggle cruise mode via programmable block, the/all backward thruster(s) will turn off automatically.


If I have multiple backward thrusters, what should I do?
Add them all to a group, then repeat the step where you add it to the action toolbar, it will behave the same.
2.3 - Parking Mode
Parking mode is one of the most fundamental and useful tools that you've ever seen. It's a must have and I added it because I wanted to fix unstable thrusters, and at the same time set blocks to a state that normally you have to set them manually. Saving time, accidents and resources.
Also, it sets the thrusters so a safe position, then turn everything off safely (You can customize the direction of the rotors, see more in advanced).
Finally, reduces the runtime and operations of the script, improving performance considerably.

To undersand how parking mode works, you have to know that there's a Run with Argument that you should set up in the action toolbar, PARK



When will park mode be activated?

There's 2 ways to trigger parking mode, and depends on the environment:
  • Locking with a parking block added to the script and having the PARK indicator to ON (Red)
  • In gravity, locking to a static grid or the ground and having Activate Park Mode If Parked In Static Grid or Ground config set to true

Take as count that if you're in space and stick on anything, or in gravity and stick to a grid that isn't static (Is not connected or locked on anything) park mode will not be activated, that's where the PARK Run with Argument is for, enabling it will shut down and set everything safely and you can move with the grid you've parked without external interference.

For example, you can see below I stick to a rover/ship, the thrusters start lifting up everything and thrusters are uncontrollable, so when I activate park mode, the grid shuts off and I can carry the parked ship without any problems:




Blocks affected by park mode
Note: If Set Batteries/Tanks to Recharge/Stockpile On Park setting is set to true, it will affect assigned Batteries and Tanks.
  • Batteries: The assigned batteries or Same Grid Batteries to the script (Batteries on the same grid than the programmable block) will be set to recharge mode, then the backup one(s) (Also assigned, but if not, it will be the 1st one added/placed) will be set to auto (I'll explain this later).
  • Tanks: Assigned and Same Grid Oxygen and Hydrogen Tanks will be set to Stockpile mode.
  • Programmable block: It will stop all calculating operations, reduce the runs per frames to 10 (technically standby mode).
  • Vector Thrusters: Rotate to safe position then turn off thrusters and brake rotors to be used as normal as long as it is still parked.
  • Normal Thrusters: Turn Off Thrusters On Park setting is set to true, it will turn them off as well.
2.4 - Backup Batteries and about Battery Recharging Mode
Now that you comprehend how to trigger parking mode, you should know the most important part of it, the backup batteries.
Backup batteries's only role is to prevent your grid to turn off abruptly when you unpark and all the batteries you assigned to set to recharge are, in fact, in recharge mode.

If you are parked with a connector, backup batteries will be set to auto and the rest to recharge, but when you unpark, backup batteries will be set to recharge (Just in case it loses power) and the rest to auto.

If there's any assigned backup battery, the script will gather the 1st placed battery assigned to the script.

To assign a battery to be a backup one, you have to add the word "Backup" in the name of the battery, and that's it. Obviously if you have tags assigned the battery has to have the tag in it's name too, or it has to be in the same grid as the programmable block.

You can customize the keyword to assign the backup battery from "Backup" to whatever you want, it's called Assign Backup Batteries With Surname=Backup in the settings. I hygly recommend to place (at least) 1 small battery as backup, but you can decide how many you want.

In my case placed a connector and added the tag "|VT|" (Default one) to add it to the script, then parked with the backup battery assigned.

This is the state of the batteries when connected:
This is the state of the same batteries when disconnected:


And what if the grid I'm parked has more output than input?

Don't worry, to prevent backup batteries to drain out because the grid you connected doesn't have power to charge the batteries, the script deactivates recharge mode back to normal (Backup Batteries set to recharge, and the rest to auto), until there's enough power to charge them, then reactivate by itself if necessary.
2.5 - Tag Assignment and Management
Tag is the most important thing that you should know to use this script.

There's a lot of reasons why you should modify and use tags:
  • You will distinguish between the blocks that the ship and script are using from the others.
  • It willl prevent a bug where the script will control rotors and thrusters that doesn't correspond to them, even it is tagged from the other side.
  • It will prevent a bug where if two ships without tags or with the same exact tag got connected to the same grid, it will have a lot of problems that aren't necessary to explain.
  • You can assign which blocks are going to be used and can be external to the grid and which not.
  • Park mode will
  • Improves performance.

Greedy Mode
Greedy mode is the state of the script it takes to determine if the ship has tags assigned or not, you can see it's state on the output of the programmable block.

If it shows True, it means that you don't have any tag assigned to the script, it will gather all the main blocks (rotors with thrusters, controllers) of the ship and the grids connected to them and use them as much as it wants.

If it shows False, means that the tag has been assigned and it's the one that goes with the programmable block's name, also, if a block doesn't have this tag (and it's not in the same grid in the case of batteries or tanks), the script will ignore it completely.

Structure of a Tag
On entering the settings of the script, the first lines you'll see are like this:

The tag name is the name you want to assign the script, it will affect the LCD tag as well, for example in this case VT

Tag Surrounds are the characters that will surround the tag name, it can be any character and it can be 1 or many characters but in pairs.
For example, if the name tag is VT and surround | then the final tag will be |VT|

Let's see some examples that how the script will handle common inputs:
  • Name Tag=SHIP, Tag Surround=() --> (SHIP)
  • Name Tag=NA, Tag Surround=[[]] --> [[NA]]
  • Name Tag=FLY, Tag Surround=- --> -FLY-
  • Name Tag=BO, Tag Surround=... -> Error, length of Tag Surround is not 1 or even.

How to assign tags?
There's three ways to assign tags, the 2nd is highly recommended to use but if you do the 2nd and 3rd be really careful and disconnect the ship from any un-related grid before doing it.

When I say "By Command" I mean entering the programmable block's panel control and writing the argument here like this:
Then click "Run".

So, the ways are:
  • Assigning Tags Manually: Add the Tag to the programmable block, and the rest of the blocks manually, then recompile or wait for the timer to reach 0.
  • applytags Command: Assigns Tag to all controller and rotors with thrusters in it's top of all blocks reachable by the script (Internal & External connected grids).
  • applytagsall Command: Same like applytags, but it includes batteries, connectors, landing gears, and tanks.

Note: Chaging any tag related character on the settings or running "removetags" by command will reset the name of all blocks the script can reach and set Greedy mode to True.

  • Here's the demo to applytags and applytagsall.


  • Here's the demo to changing the tag name then do applytagsall once again, and remove tags.

2.6 - Assigning LCD and Cockpit Screens
Assigning LCD with default Name Tag

Assigning LCDs to the script is really easy, you only have to add the Name Tag (found in settings -> Name Tag=VT by default) merged with the "LCD" letters, the result in our case will be a name like this:


And for the cockpit's screens, you must locate this section in it's control panel, and enumerate the list of screens like I'm showing on the image:


With that taken into account, you have to open the Custom Data of the Cockpit, and inside it add the Name Tag, in this case VT followed by two dots : and finally the screen number you indentified in the previous image, the result for assigning the Top Center Screen, in this case, Screen 0 is:

Assigning LCD with modified Name Tag

What if you changed the Name Tag= in the settings? Then that Name Tag should be in the screen instead of VT, for example if Name Tag=TuT, then the Name of the LCD should be:


Same thing with the Cockpit screens, to Assign Top Right Screen, in this case, Screen 2 with Name Tag=TuT it should look like this:
3.1.1 - Advanced I (In Progress): The Custom Data Configuration Explained
Welcome to the advanced section of the script, here I'll explain as best as possible what exactly do each config shown below:
[--------Vector Thrust 2 Settings--------] Name Tag=VT Tag Surround Char(s)=| [--Rotor Calibration Settings--] (Min/Thrust_Off/Max) Rotor Correction Aggressivity Level=0.1 ; 1 ; 4 Margin No. For Error Correction=6 Velocity To Trigger Presision Mode=1 Velocity To Turn On/Off VectorThrusters=0.5 ; 0.01 Velocity To Turn On/Off VectorThrusters In Cruise=1 ; 0.15 [--Acceleration Settings--] Accelerations (Total Thrust %)=15 ; 50 ; 100 [--Parking Settings--] Turn Off Thrusters On Park=true Set Batteries/Tanks to Recharge/Stockpile On Park=true Assign Backup Batteries With Surname=Backup Add Automatically Same Grid Connectors=false Add Automatically Same Grid Landing Gears=false Activate Park Mode If Parked In Static Grid or Ground=true Run Script Each 100 Frames When Parked=false Direction Of Thrusters On Park (Vector X,Y,Z)=-1 ; -1 ; 0 Override Adjustment of Direction Of Thrusters in Gravity=false [--Whip's Artificial Horizon Redux Settings--] Lines In The Sides=150, 150, 150, 255 Reverse Velocity and Backward Arrow Indicator=150, 0, 0, 255 Sky Color (Gravity)=10, 30, 50, 255 Horizon Line (Default: None)=0, 0, 0, 255 Elevation Lines (Gravity)=150, 150, 150, 255 Forward Arrow Color=0, 175, 0, 150 DAMP, CRUISE, PARK On Indicator=255, 40, 40, 255 DAMP, CRUISE, PARK Off Indicator=99, 99, 99, 255 DAMP, CRUISE, PARK Background=0, 0, 0, 255 Velocity Indicator Sensitivity=1 Dampeners Arrow Trigger Multiplier=0.5 [--Advanced Settings--] Cruise Mode Act Like Plane=false Frames Per Operation: Task Splitter=1 Skip Frames=0 Set Park Blocks/Normal Thrusters to Default (Recompile)=true [--Config Settings--] Time For Each Refresh=10 Frames Where The Script Won't Print=10 Show Metrics=false

Name Tag
Tag Surround Char(s)
It's function are mentioned in 2.5: Tag Assignment and Management

- Rotor Calibration Settings
(Min/Thrust_Off/Max) Rotor Correction Aggressivity Level
Now the rotors utilizes a new math controller called PID more info here[en.wikipedia.org], in this case we only need to modify it's proportional level, what I call "Aggressivity", I consider 4 to be the best value in terms of high speed and precision, I think a number more than that value won't make a difference.
Now, I have to be clear, this setting has 3 values, the 1st is the minimum, 2nd the Thrust Off and the 3rd maximum.

The minimum has multiple functions, there's a mode in the rotation system called Presicion Mode (See below: Velocity To Trigger Presision Mode for more info), there's where this value is changed, if the aggresivity is too high, the rotors will rotate at unnecessary speed all the time when it's supposed to be slower. Also, this same value works in pair of Margin No. For Error Correction (See below) where this value will be incremented each frame where the thruster is not supposed to stay still and reach that 100% precision, just leave it as it is in my opinion, but I recommend raising this if your ship has (for some reason) trouble when it is in precision mode and you can't reach that 0.00 m/s^2 because it needs some small correction.

The Thrust_Off value is triggered if the script toggles park mode or when thrusters turns off while in space, when that happens, the script will point the vector specified in Direction Of Thrusters On Park (See below) and then will stop and turn off to make the script run at performance mode.
I recommend increasing this value if you want a faster reposition of thrusters in that environment, but be careful, too high values will cause that the rotors will never reach that 100% precision and stuck in a loop. Decrease this value when it is supposed to brake in space and the thrusters seems to "turn on" or takes so long to get stop them properly when it is really near of the vector's objective.

The maximum is just the stock value when you move or when you try to brake, it is the aggressivity that you'll see the majority of time, increase this value for a higher rotor response, but I recommend you to increase this to expect more rotor speed while in space, the speed in space for some reason is capped and slower than in atmosphere, decrease this for a more softer and slower rotor rotation, recommend decreasing it if you have heavy thrusters in a lightweight grid.

Margin No. For Error Correction
This was the same as Experimental Increment RPM Limit Difference in previous versions, it will increase the minimum value of Rotor Correction Aggressivity (see above) every frame that the rotor should be correcting and it is not doing it or doing it slower than normal.
If you notice that the rotors are taking so long to make large angle corrections or remains static when it's supposed to move, increase this value.
Otherwise, if you notice that the rotors are unnecessarily corrrecting angles when it's supposed to move slower or not move at all, decrease this value.

Velocity To Trigger Presision Mode
This is the reworked Velocity to Cut Aggressive Gear Braking
When you toggle accels with "Gear" command to a faster acceleration than it's supposed to while braking (depends on mass and thrust power), then the thrusters will use percentage (%) of the current acceleration as thrust power even if it is not necessary until the velocity is less than or equal to this value (m/s) (To test and understand this better, first brake with the lower accel, then again but with the strongest accel, you'll notice that with the higher accel it brakes a lot faster).
Also when the velocity is less than this value (m/s) it will trigger precision mode, where it'll do what I described for the minimum value at Rotor Correction Aggressivity (See above)
Increase this if you feel that your ship when braking is using an unnecesary high amount of thrust while braking and the velocity is less than that value.
Decrease this if you want an aggresive agile braking and know the limits of your ship, this will brake as fast as it accelerates.

Calculated Velocity To Turn On/Off VectorThrusters
These are the most important settings when navigating in space, the first number means that if the velocity (m/s^2) reaches that number the thrusters will turn onand try to correct to brake again.
The second means that while braking if the velocity (m/s^2) reaches less than or equal to that number, the thrusters will turn off, turn into safest position determined Experimental Increment RPM Precision Value and turn off all vector thrusters safely.
Increase/Decrease the first value if thrusters turn on easier/harder than usual.
Increase/Decrease second value if thrustern turn off harder/easier than usual.

Calculated Velocity To Turn On/Off VectorThrusters In Cruise
The same thing than above configuration, but while in cruise, in this mode you don't have to look your actual velocity.

- Acceleration Settings
Accelerations (Thrust %)
The amount of total acceleration (In percentage) the ship will apply when you move with WASD, space, C, etc. You can add/remove additional accelerations, you can't have less than 2 accelerations.
Examples:
Accelerations (Thrust %)=15; 50; 100
Accelerations (Thrust %)=5; 15; 50; 75; 100
Accelerations (Thrust %)=50; 110

[NEW)] You can Override this value if you see that the thrusters are not applying the desired thrust, what I mean is, you can now set values more than 100%
3.1.2 Advanced I (In Progress): The Custom Data Configuration Explained Part 2
- Parking Settings
Turn Off Thrusters On Park
Whether or not normal thrusters will turn off on park with any parking block.

Set Batteries/Tanks to Recharge/Stockpile On Park
This will prevent to set batteries and oxygen/hydrogen tanks to recharge/stockpile when parked with a connector.

Assign Backup Batteries With Surname
This is the word that has to have your battery's name to turn it into a backup battery, backup batteries are explained in 2.4: Backup Batteries and about Battery Recharging Mode.

Add Automatically Same Grid Connectors
When set to true, it will add all connectors that are in the same grid than the programmable block.

Add Automatically Same Grid Landing Gears
When set to true, it will add all landing gears that are in the same grid than the programmable block.

Activate Park Mode If Parked In Static Grid or Ground
This only applies in gravity environments. When set to true, it will toggle park mode automatically if an assigned parked block is locked into a static grid, or in the ground.

Run Script Each 100 Frames When Parked
This only applies while in space, if set to true, the script's runtime will be set to 100 when parked, it really increases performance if you have a lot of ships with this script parked, but when disconnecting, there's a change that the script will take like 1 entire second to realize you unparked (or 100 frames in-game).

Direction Of Thrusters On Park (Vector X,Y,Z)
Taken into account what directions and what X, Y, Z means (With a controller as reference), when parked or when the thrusters turn off, the angle that the rotors will set for the thrusters to shut down everything is the vector that is right in this config.
With -1; -1; 0 as default, it means that the thrusters will point DOWN and BACKWARD at the same time. For example: if you want to make them point only UP, it should be 0; -1; 0, and if only forward 1; 0; 0.

Override Adjustment of Direction Of Thrusters in Gravity
This applies only while in gravity, when you park, the thrusters will not 100% set the thrusters to the vector configured above (-1; -1; 0 by default), instead it will turn (depending on the weight of the ship) as near as possible to the gravity direction. So, setting this to true, will override that and 100% of the time the thrusters will always point to the vector that's in the above configuration.

Whip's Artificial Horizon Redux Settings
These are settings that resembles more on the colors of the artificial horizon that is a "fork" of Whip's Artificial Horizon Redux, so play with them, it won't happen anything bad if you set something wrong.

But be careful with the Velocity Indicator Sensitivity and Dampeners Arrow Trigger Multiplier (will explain it's functionality later).

Advanced Settings
Thruster Modifier Turn On/Off Space/Gravity
These are the multiplier of how much thrust will the thrusters make while they're near (1st number) or going away (2nd number) from the desired vector.
For example you have set this configuration to 1; 1 and made a turn so the thrusters must go 180º to reach it's objective, when you're near the vector by some degrees, so instead of applying 200 Newtons, it will apply 20000 Newtons, so the ship goes to an incorrect direction, same thing while it's going away from the desired angle.
I recommend to not touch this setting, I think it's deprecated and it seems that it doesn't have a positive impact modifying it.

Cruise Mode Act Like Plane
Once again, I don't see a difference setting this to true, but leaving it there because the original author added this option.

Frames Per Operation: Task Splitter
This value determines how many frames will wait before doing the next co-routined action that I've made to improve performance in the script, increasing this won't have that much impact on performance, but it affects how fast the script will gather new/destroyed blocks to apply them in it's tasks, increasing this in high numbers will make the script recognize more slower that you lost a thruster/controller/rotor/battery and it could make some problems, specially when moving and in gravity environments.

Skip Frames
One of the best performance configuration you'll need to run this script in low end situations.
Let's suppose that:
[PROCESS]
Is when the script calculates the gravity, how many thrusters, share the thrust between all thrusters, set velocity to rotors and apply thrust to thrusters.

And:
[SKIPPED]
Is when the script skips all I said above and only calculates the essential things (that doesn't affect performance) like you movement, velocity, acceleration, set displays, get blocks, etc.

So, when SkipFrames is set to 0, the runs of the script will look like this:
[PROCESS] [PROCESS] [PROCESS] [PROCESS] [PROCESS] [PROCESS] [PROCESS] [PROCESS] [PROCESS]

But, if I set it to 1 it will look like this:
[PROCESS] [SKIPPED] [PROCESS] [SKIPPED] [PROCESS] [SKIPPED] [PROCESS] [SKIPPED] [PROCESS]

And with 3:

[PROCESS] [SKIPPED] [SKIPPED] [SKIPPED] [PROCESS] [SKIPPED] [SKIPPED] [SKIPPED] [PROCESS]

What I mean is, with each time the script runs, it will skip that heavy tasks for N times, designed as frames. But setting to high numbers will decrease precision and agility.

I recommend to setting it from 1 to 4, I didn't see any difference in maneuverability and I reduced the runtime from 0.05 - 0.06 to 0.02 or even 0.01 ms!

Set Park Blocks and Normal Thrusters to Default Modes
When set to true, all assigned batteries/tanks/normal thrusters/vector thrusters will be set to auto/stockpile off/turned on/turned on, set thrust/velocity to 0 and disable rotorlock. When the script gets recompiled.

- Config Settings
Time For Each Refresh
The amount in seconds that will be counting the script to reload all the configuration of the custom data, you can increase this value as much as you want (999) if you're done with your configs.

Frames Where The Script Won't Print
This is the number in frames that the script will skip and not print anything until that N frames passed, recommend not increase or decrease this number (for now) because this affects the artificial horizon (displayed on screens) as well.

Show Metrics
If you find something strange, setting this to true will print on the screen useful info about the thrusters and it's states to watch them better, recommended watching this if you understand what's in there, will explain about this later. You can print screen this and send me.
3.2 - Advanced II (In Progress): Fixing Common Issues
My vector thrusters moves like a pendulum, starts to rotate like crazy or shake so much

Your rotor is carrying too much mass?
Then set in Rotor's control panel, Braking Torque to the same amount as the Torque, it it doesn't help, increase little by little both Torque values until you see that the rotors make solid rotations now. If that doesn't help, increase both Torque to the maximum, then decrease them little by little.

Your rotor carries light mass or the first suggestion didn't work?
Play decreasing the maximum value from the Rotor Correction Aggresivity Level 0.5 by 0.5 and/or increasing Velocity To Trigger Presision Mode 1 by 1, be careful with the last one, in atmosphere environments it will be dificult for the script to make your grid reach 0.00 m/s.

My vector thrusters aim to the opossite direction
If you have normal thrusters placed, it's normal, that's because the acceleration set in your current gear is so low that the vector thrusters are trying to "brake" the normal thrusters to reach that low acceleration, try to check the 1.4: Now What? section of this guide.

I have thrusters in parallel far from the center of mass, why are they pointing to the middle?
This is a bug, it may be related to the code or literally a well known engine bug from Space Engineers called "Phanthom Torque" this fix is currently a WIP, for now you'll have to stick with that behaviour.

I am in space, and my thrusters when it is supposed to turn off while rotating it turns on and off constantly, making a lot of shaking
In this case the rotors and it's weight are so heavy that is triggering the velocity to turn on vector thrusters (The 1st value of Velocity To Turn On/Off VectorThrusters (in cruise)) depending if you're in cruise mode or just braking, you can do 2 of these options:
  • Increase the 1st value of Velocity To Turn On/Off VectorThrusters by 1 or 1.5 until it ignores the force, be careful to increasing this to higher values, it handles the situation that the thrusters are completely stopped and other external force moves the ship, turning them on again.
  • Decrease the Thrust_Off (2nd) value of Rotor Correction Aggresivity Level by 0.5, you can decrease as much as you want but be aware that slower values make the thrusters to shut off more slower.
3.3 - Advanced III (In Progress): Solving Unusual Issues
Conclusion
Yeah, that's it for now, any question or issue that's not a bug will be added here and over time this guide will be updating with the script as well.

Thank you so much for reading this guide, and cheers!
31 Comments
Singularity Jun 26 @ 6:52am 
how can i make it so i only go downwards from gravity and stop the thrusters from doing a 180?
cause i just get slammed to the ground
Imp Jun 15 @ 1:03pm 
Is there a tag or setting where I can tell the script to NOT touch a block. I have some decorative thrusters on a ship that I *never* want on, but the script turns them on automatically depending on cruise mode. (No, they are NOT tagged either.) If there is a tag I can use to tell the script to ignore those blocks, or a setting where cruise will NOT auto engage thrusters - that would be helpful.
i'm so scared May 21 @ 6:05am 
Hello! Please tell me in what ways I can, if desired, rotate the rotors into the parking position manually if necessary?

The gist: my ship has the ability to mine ore in space (using hydrogen engines) and on the planet (using atmospheric engines).

Atmospheric engines are fully implemented using this script, so when I fly into space, I need their position to return to standard and then the hinges push the engines into the body. In a non-standard situation this is impossible.

I really tried to find a solution in the comments and other links, but the weak level of the language makes itself felt :(
Lycanine Apr 19 @ 5:43pm 
Is there a way to make it so that the "applytags" command puts the tags at the end of the name?
Diemosthenes Feb 27 @ 8:44pm 
Anyone know how to get the display onto a flight seat? For some reason the VT:0 and VT:1 don't work for me.
Magpie Feb 25 @ 10:28am 
@A'valoth I got parking to work by making sure the connector and batteries had the correct tag. I just put the correct tag in the name manually because the applytags argument didn't do the connector or battery.
Mωριωρ Feb 23 @ 8:48pm 
Hey, been having an issue with vector, it seems it is generating forces on the vessel when using rotors and hinges together on the same ship. More specifically it seems to instigate a death roll.
Lewis Feb 19 @ 2:15pm 
Hi, I'm having issues getting the script running with my ship. The rotors are all on the same horizontal plane but once launched it starts spinning in a circle. Centre of mass is all ok, tags all assigned. any ideas?
Avaloth Jan 27 @ 5:17pm 
What's the parking argument? Just "park" isn't doing anything. I have to work around it with a subgrid magplate currently.
Aeraki Jan 27 @ 3:14pm 
Hey there, this probably isn't possible, but is there a way to make it so that thrusters can be on 2 rotors, 1 for forward/back 1 for left/right? this might be a little bit too advanced, and i have done some toying around with it and it only sort of works. Any ideas?