Space Engineers

Space Engineers

28 ratings
Ronin's Suspension Manager Script
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
463.424 KB
27 Jan, 2022 @ 8:34pm
12 Mar, 2022 @ 4:11pm
2 Change Notes ( view )

Subscribe to download
Ronin's Suspension Manager Script

Description
|||||| Bug fixes and new features add March 12, 2022. See below!!!! ||||||

This script allows you to take a SNAPSHOT of all of the suspension settings on your rover, store them on a menu on a cockpit display, then recall them at will.

Sound good? Keep reading then.


How to install:
  • Subscribe to this script.
  • Tag all of your suspension blocks AND any cockpits/flightseats that you want to display the manager's menu.
    You can change the tag at the top of the script. It's defaulted as "Suspension" for your convenience.
    But if you have multiple rovers around, you probably want something unique for each rover.
  • Set the FIRST LCD panel in your cockpit/flightseat to "Text and Images". Change the text size and color to taste.
  • Load this script into a programmable block.
  • If everything is okay you should see the message "There are no presets!"


How to create your first preset:
  • Adjust your suspension settings as you would normally: height, speed, steering, friction, speed, etc.
  • Once you are ready, select the programmable block in the control panel and go to the argument box
  • Type in "new:MyPresetName". No quote marks. "MyPresetName" is any preset name of your choosing.
  • Click Run once. The menu should now go from "There are no presets!" to "MyPresetName"
  • Adjust your suspension again to something noticeably different.
  • Type in "new:MySecondPreset" in the argument box and press Run. A second preset should now be added to the menu.
  • Please note, all presets will be sorted alphabetically

How to set up the tool bar:
You will need three slots in the cockpit's toolbar. One to scroll the menu up, one to scroll down, and another to select your preset.
Press the G menu for your cockpit as normal and find the programmable block. You'll need to drag three instances into the toolbar and fill in each prompt for an argument with the following:
  • menuminusone
  • menuplusone
  • applyselected

You'll now be able to scroll through all the presets you've created, up and down, and select whichever one you like.

Additional argument commands:
Now that you're familiar with how to create a new preset, you can also manage them.
  • new:MySuperPreset - creates new preset.
  • delete:MySuperPreset - deletes preset with that name.
  • rename:MySuperPreset:MyMediocrePreset - changes the name of the preset to the second name
  • apply:MySuperPreset - loads the preset immediately without having to use the menu (handy when you can't use the cockpit or want to program a button panel with a setting.)

Check out the video walkthrough of me applying the script to the stock "Exp MB rover 20x8" by herrschaftg35. It's that easy to use. It's the second video in the description.
Link to the Exp MB rover below:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2705840723

Bug Fix:
There was an issue with the Save constructor where new instances of the script might have been throwing an exception. That should be fixed. Apologies.

New Feature:
Trigger timer blocks! Now you can trigger a timer block alongside of changing your suspension settings... or just trigger the timer WITHOUT changing suspension settings.

If you want to trigger a timer block, just add a colon ':' plus the timer block's FULL custom name (including tag) when you create a new preset.
Example: new:MySuperPreset:Timer Block [Suspension]

If you ONLY want to trigger a timer block WITHOUT changing your suspension, add the above plus another colon and the word 'only'
Example: new:MySuperPreset:Timer Block [Suspension]:only

Presets will appear as they have before if you don't bother adding any timer blocks.
If you add a timer block to a preset, that preset name will be followed by a <T>
If you add a timer block with no suspension changes, that preset name will be followed by a (T)

Updating existing builds
I found the easiest way to update existing rovers running 1.0 is this: go to the programmable block's custom data and copy and paste the stored presets to NotePad. Then add ":null:false" to each entry in Notepad. Copy the settings from NotePad and back to the Custom Data of the programmable block once you're done. Update the script to version 1.1. And you're done.

Useful Notes
Here's a working example of the script in a rover.
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2703980910

If a suspension block gets destroyed, the script should still run fine. I've tested it.

This script is compatible with MMaster's Automatic LCDs 2... ever heard of it? Don't use "@0 AutoLCD" in your custom data and Automatc LCD 2 will ignore the first cockpit LCD. It's mine.. mine, mine, mine.

This script really improves my quality-of-life with rovers in the game, especially when trying to adapt the suspension to rock climbing, driving on ice, carrying heavy loads... even PARKING.
27 Comments
hanXbatu 19 May, 2024 @ 1:15am 
It didn't work after the update.
FHN 12 Jul, 2023 @ 9:09am 
there is also a problem with scaling text on lcd, it's too small and doesn't want to move text between lines, the text just goes beyond the borders of the screen (
FHN 12 Jul, 2023 @ 9:07am 
Yes , I also encountered this problem , but I tried just outputting the apply:profile argument to the toolbar , and alas , the argument doesn't work (
alcangel_neal 30 Jun, 2023 @ 6:22pm 
Just came across this gem and I think it's exactly what I've been looking for, but i am having a bit of difficulty getting it to trigger via a timer. I've set timers to trigger when landing gear locks by passing the "apply:ProfileName" argument via a timer and the suspension seem to just behave erratically and don't reset to the "ProfileName" settings. When I trigger it via the cockpit controls it works fine but no other method seems to work, including passing the argument directly to the PB. Am I missing something or has anyone else noticed this?
Ronin Planetary Industries  [author] 17 Jan, 2023 @ 8:40am 
@Jack I'll take a look at it this evening. I've used it with Automatic LCDs as well and it doesn't take over all the LCDs. It only uses the first LCD "@0AutoLCD" If you don't include it in you Custom Data text, there won't be the conflict. There's a small rover in my collection that uses both my script and MMasters. If you take a look at the pics for this script, you'll see MMaster stuff running on the other LCDs. It's a darker pic and the MMaster stuff is in white.
Jack Schitt 17 Jan, 2023 @ 6:55am 
I wasn't able to get it working, Ronin. See the thread you shared this in. Is it possible to update this so we can choose which screen it displays on and operates from in multi-screen cockpits? I use automatic LCD's and fancy displays 2 on my cockpit screens at the same time. I can't use those if I run this because it hogs and disables every screen even though it only runs on one of them.
ddosme 14 Jul, 2022 @ 2:28am 
Hello!
Help please!
Strenght dont change from 100% to other (from any percent to 100% it work). Maybe i set wrong settings?
CTH2004 25 Mar, 2022 @ 2:17pm 
great! Thanks!
Ronin Planetary Industries  [author] 25 Mar, 2022 @ 7:58am 
@CTH2004 The values can be anything you want. Each suspension's settings are recorded individually. So change them up however you like: steering, heights, strengths... that's why I created the script... especially when using more than four wheels and wheels of different sizes.
CTH2004 25 Mar, 2022 @ 6:49am 
do the values have to be the same throughtout the suspension, or, for instance, can the back wheels be stronger than the front?