Space Engineers

Space Engineers

46 ratings
Realistic suspension
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
14.174 KB
26 Mar, 2016 @ 3:01am
1 Nov, 2020 @ 2:36pm
14 Change Notes ( view )

Subscribe to download
Realistic suspension

Description
Hello everyone!

WARNING!
Added new function. Now you can store presets for suspensions and switch between them.

Short description
This script controls Suspension parameters for your car, making suspension behavior more realistic (close to real air-suspension). Also, it tries to prevent suspension destruction after ground impact in long jumps.
Original concept has been proposed by [MGE]LeonserGT.

Current functions:
-Remember initial parameters for suspension strength, damping, wheel's position.
-Reads wheel position on suspension.
-Adjusts strength parameter of the suspension, according to car's vertical speed.
-Adjusts damping parameter of the suspension, according to car's vertical speed.
-Checks wheel's lift-off, coorects suspension parameters to impact-safe.
-Change propulsion parameter of the suspension, for smooth turning.
-Decrease calculation rate, on low speed.
-Remember presets for suspension parameters.
-Switch between presets.

Short installation guide:
In discussion section...

Vital/Non-vital blocks:
Minimal setup (vital):
-Programmable block (for script).
-Timer (should runs programmable block and (optionally) starts itself for full-auto reboot after world reloading)
-Suspension

Add suffiixes, determinated in the script:
Timer block - "_Susp_Clock"
Suspension - "_Susp"

Optimal setup(not so vital, but useful)
-full list above
-Text panel (store presets, remember current preset)

Add suffiixes, determinated in the script:
Timer block - "_Susp_Clock"
Suspension - "_Susp"
Text Panel - "_Preset"

Script parameters:
You can find this paramerers in the begiinning of the script. They could be changed to your own needs.

Name suffixes (for searching blocks on a grid):
strClock - suffix for the Timer block, which runs this script
strSuspSuff - suffix for the Suspension block
strTPSuff - suffix for the Text Panel

Variables for fine tuning:
dForce - Strength, put to the suspension, if script calculates wheel's lift-off
dSafeSpeed - vertical speed limit, on higher speed script adjusts suspension parameters

WARNING!
Script keeps initial parameters for suspensions in Suspension block name. If you want to change this parameters, you should reset script, change parameters in each suspension and start script again.

Commands for programmable block
You can type commands directly to the argument box in programmable block, but i recommend you to use Button Panels. No typing mistakes and good look!

"start" - starts script to runs itself. Initial boot.
"stop" - typed once, stops script. Typed twice, resets parameters (including remebered parameters for suspensions).
"g:up" - switch preset from current to higher.
"g:down" - switch preset from current to lower.

Presets function:
This function accessible only if you install Text Panel!
Every new preset must be written in a new row in Text panel. Row starts with the preset ID (number). After ID you can place abbreviation for parameter and it's value for this preset. You can change multiple parameters in one preset. Division sign between every parameter and value is ":"
Example of such row: "1:P:100:F:100:S:90:H:0".
Above ou can see screenshot with working example.

Abbreviations for the text panel and according suspension parameters, controlled by script:
-SA - Steering Angle.
-SS - Steering Speed.
-SR - Steer Return Speed.
-P - Power.
-F - Friction.
-D - Damping.
-S - Strength.
-H - Height Offset.
-T - Suspension Travel.
-L - Speed limit.

Updates:
Link to changelog

Links for blueprints and example worlds:
Hink
Lion Cargo Truck by [MGE]LeonserGT
Lion Trophy Truck by [MGE]LeonserGT
R&D -Excalibur 12x12 by fjakk
...

Credits:
[MGE]LeonserGT Lion Trophy Truck. Concept and car to smash during tests.
MMaster Configurable Automatic LCDs
d4rky1989 Multipurpose Filter and Control Block
Popular Discussions View All (1)
0
26 Mar, 2016 @ 3:36am
PINNED: Short instruction for installation
Skleroz
65 Comments
Skleroz  [author] 10 Jun, 2022 @ 1:32am 
В ближайшее обозримое будущее дорабатывать не буду, для этого нужно свободное время. Поддерживаю их по мере возможности, чтобы не ломались.
zabavski84 9 Jun, 2022 @ 6:18pm 
Да и описание было бы не плохо обновить)
zabavski84 9 Jun, 2022 @ 6:17pm 
@Skleroz а, теперь понятно, там вроде ещё и лимит скорости нельзя менять. Ладно, буду пользоваться тем что есть. Дорабатывать скрипт ещё будете?
Skleroz  [author] 9 Jun, 2022 @ 3:31pm 
@zabavski84 stop сбрасывает внутреннюю логику скрипта, по идее, это не должно влиять на параметры подвески.

Касательно параметров подвески - часть из них удаляли, в т.ч и гашение со скоростью поворота оси. Сами параметры остались, но они не меняют харатеристик подвески, поэтому я их и не удалял.
zabavski84 9 Jun, 2022 @ 1:01pm 
@Skleroz играю на русской версии. Можешь объяснить что именно делают параметры - -SR - Steer Return Speed и -D - Damping?
zabavski84 9 Jun, 2022 @ 12:55pm 
Скрипт хоть и старенький, но очень даже рабочий и полезный. Избавил меня от большинства головняков. Лучше для моих задумок не нашёл.
zabavski84 9 Jun, 2022 @ 12:51pm 
@Skleroz Понятно, спасибо за пояснение. А вот ещё повторное, использование команды stop, сбрасывает текущее состояние. Это на какие параметры, стоковые, или как раз на те что прописаны в названии подвески?
Skleroz  [author] 9 Jun, 2022 @ 12:13pm 
@zabavski84 Привет. Третья переменная добавлена была для проверки длительности прохождения скрипта, это средневзвешенное время работы скрипта.

Срипт достаточно старенький, параметры распределчет сразу на все колеса и вроде как одинаково, без учета ЦТ, так что с индивидуальными настройками подвесок, боюсь, работать он не сможет.

Таймеры вроде не нужны, но мешать работе они не смогут, если что.
zabavski84 9 Jun, 2022 @ 11:50am 
Да, и таймеры как я понял уже не обязательны?
zabavski84 9 Jun, 2022 @ 11:50am 
Привет. В "переменных для точной настройки" в верху скрипта есть третья переменная, за что она отвечает? - Adjustable parameters
const double dForce = 100; //Upper value for strength increase
const double dSafeSpeed = 2; //Limit for verticals speed, after it suspension strength will be encreased
double dA = 0;

И ещё вопрос - если у меня передняя и задняя подвески по разному настроены, как можно их прописать в "преднастройки", или переключаться на них (изначальные)? В описании "преднастройки" влияют на все подвески.