Space Engineers

Space Engineers

60 ratings
Delta Steering
1
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
14.644 KB
Aug 17, 2019 @ 3:14pm
Apr 25, 2020 @ 11:22am
8 Change Notes ( view )

Subscribe to download
Delta Steering

Description
The idea
This script implements an alternative steering method commonly found in modern space games. The farther you move your mouse from the center of the screen, the faster your ship rotates.

It stores the state of that rotation, so you can even leave cockpit or use alt-mouse to look around without disrupting your maneuver.

It adds some immersion and helps doing smooth turns, especially useful on big ships that are usually steered by keyboard arrows.

I've included visual indication either to cockpits' screens or dedicated LCD, up to your preference.

Gyro override is toggled by spacebar double tap, no toolbar setup needed.

Added setting to make fonts larger (interfaceUpscale), 2 is recommended for large grid LCD. Remember to include floating point literal if you are using those values (e.g. "interfaceUpscale = 1.7f").

Dead zone can be set by "deadZone = 0.00f". This is a percentage starting from dead center, so at 0.05 the dead zone would be 5% of panels' "radius".

Usage
  1. Paste the code
  2. Make sure you have needed blocks. "forward-gyro" is the gyro in control. You should have only one, other gyros will assist it automatically at full power. That gyro should be oriented correctly, it matters (the keypad should face forward of your ship) Now this is not needed, the rotation is determined by players' cockpit, all gyros will have correct overrides.
  3. Make optional adjustments (all config variables are found at the top part of the code with comments)
  4. Hop into cockpit. You should be able to see interface at one of the screens (changed by "currentScreenIndex" var). For external screen, name it "LCD delta steering" or change the name in the code ("priorityLcdName") according to your preference. Gyro override is toggled by spacebar double tap.

Variables
  • priorityLcdName = "LCD delta steering"; // have this LCD to ignore cockpits' screens

  • currentScreenIndex = 0; // will output to that screen if there are no dedicated LCD (set it to SCRIPT content and None in predefined scripts). This is the index of internal cockpits' screens. You can change it to 1, 2, 3 etc to use different cockpit (or control seat) screen.

  • swapRollYaw = false; // airplane-style steering

  • deadZone = 0.10f; // dead zone, from 0 to 1

  • interfaceUpscaleLargeGrid = 2f; // scaling the LCD output stuff on large grids

  • interfaceUpscaleSmallGrid = 1f; // scaling the LCD output stuff on small grids

  • quadraticDebuff = true; // x^2 control torque in the {0, 1} range. Change to false to have 1 to 1 linear input.

  • centerOffsetY = 0; // vectical offset in meters. Use -0.5f if you want Transparent LCD indication be aligned with crosshair.

  • tieToSpecificController = "Flight Seat Forward"; // adviced for big builds with lots of remcons/seats serving different purposes. Set this to your main cockpit/remcon. If this fails then the script would listen to all ship controllers.

  • inputDecayMult = 1f; // to have the control vector return to central position automatically set this value close to but less than 1 (0.99f works well, the less the value the faster it goes)
50 Comments
Apr 12 @ 4:24pm 
A plugin version of this might be handy
Apr 1 @ 4:15pm 
my brother is walking me through creating a dll mod that decouples the camera like the alt and may function like that. Ill let you know how that goes after we compile it in visual studio. He says it should work but ive never modded SE so im not sure until we test it
cheerkin  [author]
Apr 1 @ 10:26am 
I would've done something like that if we had access to the player view direction (i.e. look around with alt, then press a button and the grid rotates to that direction), but the game does not give that to a script.
Apr 1 @ 6:25am 
Dang. I was looking for something close to what the second game has but i cant find anything remotely close.
cheerkin  [author]
Apr 1 @ 4:50am 
I can, but I don't like that approach. This script is more like virtual joystick, not arcade stuff like "rotate me to the set direction". The lcd surface is small, if you need to make a 180 turn you'd have to move mouse many times, which is against the idea of this script.
Apr 1 @ 1:19am 
Could you make it like the second games steering where once it reaches the mouse's position it stops turning?
Aug 31, 2025 @ 1:37pm 
Yeah, tried that. I'll give it a shot in SP just to play with it :)
cheerkin  [author]
Aug 30, 2025 @ 5:26am 
Checked today, seems to be working. Make sure you recompile the script if you add more gyros, it needs to know all of them so no gyros without override are left when you switch.
Aug 29, 2025 @ 7:26pm 
Just wanted to ask if this was still usable - tried it out and when I double tap space, the LCD screen updates as expected, but the ship still moves like normal mouse controls and doesn't continue to rotate?
Apr 22, 2022 @ 11:47am 
All good, it doesn't matter all that much, because now that I think of it, it would be pointless to have the HUD available in the battle bridge since it's buried and only possible to navigate in 3rd person hahaha!