Space Engineers – NDS Interplanetary Ballistic Missile Guide

Guide on the usage and settings of the NDS Interplanetary Ballistic Missile script.

Instructions

All credit goes to nicknds!

Requirements

  • Remote Control.
  • Gyroscope(s).
  • Thrusters.
    Every direction except backwards increases accuracy and maneuverability.
  • Programmable Block on the missile running the script.
  • Block(s) supporting disconnection and the type(s) used enabled in settings.
  • Optional – Camera(s).
    Face forwards near the front of the missile to enable detonation when nearing target.
  • Optional – Warhead(s).

Launching

  1. Copy the GPS of the target to the clipboard.
  2. Paste the GPS string into the Argument field of the programmable block.
  3. Press Run.

Alternate Launch – Consecutive Targeting

  • Create a panel with “Launch” in the name. Case insensitive.
    E.g. “My launch panel” or “Missile launching panel”.
  • Paste the GPS string into the panel, one string per line.
  • The missiles will automatically read from the panel and choose a target starting at the top.
  • Used targets will be prefixed with a dash “-“, the targets can be reused by removing the dash.
  • You can put a target onto multiple lines to launch multiple missiles at that target.
  • A launch delay can be set to ensure a missile is fully built before firing with launchDelayInSeconds.

Thrusters

All thrusters are enabled automatically when launched.

When using two-stages, the first stage thrusters are enabled at launch and the second stage thrusters are enabled on the second stage activation.

To exclude a thruster from automatic activation (e.g. a reverse thruster) put the keyword “Exclude” into the Custom Data of the thruster.

Keyword is case insensitive.

Two-Stage Missile Instructions

The script now supports two-stage missiles where the first stage breaks away.

Quick Instructions

  1. Put the secondStageTimerKeyword into the Custom Data of any blocks used solely in the second stage. The default is “2”.
    Applies to: Remote Control, Merge Block, Connector, Rotor, Forward Reference Block, Gyroscopes, and Thrusters.
  2. Enable twoStageMissile.
  3. Enable form of disconnection used in separation if you want the script to control disconnection. This can be done manually with the second stage timer.
    Be sure you put the secondStageTimerKeyword into the Custom Data of the blocks used for disconnection to avoid misfires. Both Merge blocks and both Connectors.

Description

First stage is the part that breaks away and is “abandoned” by the missile. Second stage is the missile that goes to the target. Any blocks not specified as second stage will default to first stage

Behaviour

When the second stage activates, any blocks specified for second stage only will become the new default. If second stage blocks aren’t specified, the first stage blocks will be used. If all blocks are specified as second stage, all blocks will be used for the first and second stage

When the second stage activate the gyros and thrusters used in the first stage will have their overrides disabled so they can be used with autopilot to guide the first stage back

Timer

When the second stage activates, if a timer was specified, the second stage timer will trigger. This can be used for several things: enabling the reverse Thruster(s) on the first stage, enabling autopilot on the Remote Control on the first stage, manual disconnection of the first and second stage, turning on a beacon, etc

To specify a timer to trigger when the second stage activates set the secondStageTimerKeyword and put it into the Name of a timer. It is case insensitive. If you set it to “second” name the timer something like “Timer second stage” or “Second stage timer”

Conditions to Activate

To activate the second stage, two conditions must be met.

  • The first condition is distanceFromLaunchPointForSecondStage which is the distance the missile has traveled from the launch point, you can set this low to quickly satisfy this condition
  • The second condition is thrustAvailableForSecondStage which is the average effective thrust of all thrusters specified for the second stage. If no thrusters are specified then all thrusters are used in the calculation. You can set this low to quickly satisfy this condition

How to Return First Stage

  1. Build a Remote Control on both stages.
  2. Specify the Remote Control on the second stage with the secondStageKeyword in the Custom Data.
  3. Put a waypoint into the first stage Remote Control, set the Flight Mode to One Way, and set the Forward Direction to Down.
  4. Specify the second stage timer (see Timer). Set the actions in the second stage timer to enable Autopilot on the first stage Remote Control.

When the second stage activates, the second stage timer will trigger and the first stage Remote Control will use Autopilot to return* to your desired coordinate

Settings

Flight Settings

  • adjustElevation adjust the elevation of waypoints by the difference between desired elevation and current elevation. This is automatically done to an extent but enabling this changes the elevation of the waypoints to more actively attempt to correct elevation.
    Default: False
  • descentAccuracyForRotation accuracy of descent required before enabling rotation of missile.
    Default: 50
  • desiredElevationMultiplier desired percentage of gravity well’s radius used for determining altitude. 0.5 would be halfway to space, 1.0 would be the edge of space or in space, not recommended to go above 0.95.
    Default: 0.14
  • disableThrustersAtDistanceFromTarget distance from target required before disabling all thrusters. Setting a distance of 1000 will turn off thrusters 1000m from target.
    Default: 0
  • dropSpeed max speed before making descent or approach to target. The missile slows down at the desired elevation above target (planetary) for an accurate descent. It slows down (3000 + current speed)m from target (space) for an accurate approach. Setting this high will disable the slow down.
    Default: 30
  • elevationVariance variance allowed from desired elevation before elevation adjustments are made with adjustElevation enabled.
    Default: 1200
  • finalApproachRotationSpeedPercentage percentage of speed used in Gyroscope(s) for rotation when approaching target. 1.0 = 100% speed.
    Default: 0
  • gyroMultiplier percentage of speed used when orienting missile. Lower if you missile turns too fast, raise if missile turns too slow. 1.0 = 100% speed.
    Default: 0.8
  • maxSpeed speed limit the missile will attempt to stay below. Also used for efficiency when accelerating. Increase for higher speed limits.
    Default: 100
  • waypointDistance approximate distance calculated for waypoint ahead of missile on planets.
    Default: 1000

Launch Settings

  • forwardBlockReferenceFilter use a different block than the Remote Control as a reference for forwards and downwards. Leave blank to use Remote Control.
    Default: Blank
  • turnDelayInSeconds time after launch in second before missile starts turning. Helps avoid missile turning into the walls of silos.
    Default: 5
  • mergeFilter filter disconnection block(s) by keyword found in Custom Data. Leave blank to use the closest block to the Programmable Block.
    Default: Blank
  • missileStartDelayInMilliseconds after disconnection wait X milliseconds before making missile scan and booting up. Too low and the missile may find blocks that are not on the missile, too high and the missile will take more time to boot up.
    Default: 500
  • separatorDistanceFilter max distance between Programmable Block and disconnection block(s). Set to 0 for unlimited distance.
    Default: 50
  • mergeBlockSeparation use a Merge block for disconnection. Also used for two-stage missile separation. Can work with all other forms of disconnection simultaneously.
    Default: True
  • connectorSeparation use a Connector for disconnection. Also used for two-stage missile separation. If enabled the script will automatically lock any connectors within range. Can work with all other forms of disconnection simultaneously.
    Default: False
  • rotorSeparation use a Rotor for disconnection. Also used for two-stage missile separation. Can work with all other forms of disconnection simultaneously.
    Default: False
  • pistonSeparation use a Piston for disconnection. Can work with all other forms of disconnection simultaneously.
    Default: False
  • sameGridOnly only scan for missile blocks on the same grid, disable if you use subgrids on the missile.
    Default: True
  • turnDelayInSeconds time after launch in second before missile starts turning. Helps avoid missile turning into the walls of silos.
    Default: 5

Timer Settings

  • closingInOnTargetTimerKeyword specify a timer to trigger when closing in on target when meeting conditions. Put this into the Name, case insensitive. Leave blank to disable.
    Default: Blank
  • descentAccuracyForClosingInTimer accuracy of descent required to trigger closing in on target timer (planetary targets). Ignored for space targets.
    Default: 50
  • runClosingInOnTargetTimerDistance distance to target required to trigger closing in on target timer. Increase to trigger from farther away, set at 1000 the timer will trigger when at 1000m or less from target.
    Default: 0
  • leavingPlanetTimerKeyword specify a timer to trigger when leaving the planet. Triggers when script decides a direct path into space is viable. Put this into the Name, case insensitive. Leave blank to disable.
    Default: Blank
  • slowingDownForFinalApproachTimerKeyword specify a timer trigger when slowing down for final approach. Put this into the Name, case insensitive. Leave blank to disable.
    Default: Blank

Two-Stage Missile Settings

  • distanceFromLaunchPointForSecondStage distance from launch point required to satisfy this condition. A low distance will quickly satisfy this condition.
    Default: 1000
  • secondStageKeyword keyword to specify blocks used only for the second stage. Put into the Custom Data, case insensitive.
    Default: 2
  • secondStageTimerKeyword specify a timer to trigger when activating the second stage. Put this into the Name, case insensitive. Leave blank to disable.
    Default: Blank
  • thrustAvailableForSecondStage average effective thrust percentage of all second stage thrusters required to satisfy this condition. A low percentage will quickly satisfy this condition. 0.5 = 50%.
    Default: 0.5
  • twoStageMissile enable two-stage missile.
    Default: False

Run Settings

  • gravityWellMultiplier percentage of planets radius used to determine radius of gravity well. Default is accurate to within 10 meters, best left at default.
    Default: 1.7182
  • idleTicks ticks spent inactive. This will help on servers running Torch with the plugin that “overheats” Programmable Blocks breaking the script.
    Default: 0
  • largeWarheadRange effective range of a large grid warhead. If a mod increases the range of the warhead or a tiered warhead with increase range is used, set this to that range (can find with BuildInfo).
    Default: 22
  • smallWarheadRange effective range of a small grid warhead. If a mod increases the range of the warhead or a tiered warhead with increase range is used, set this to that range (can find with BuildInfo).
    Default: 4.5
Volodymyr Azimoff
About Volodymyr Azimoff 13981 Articles
I love games and I live games. Video games are my passion, my hobby and my job. My experience with games started back in 1994 with the Metal Mutant game on ZX Spectrum computer. And since then, I’ve been playing on anything from consoles, to mobile devices. My first official job in the game industry started back in 2005, and I'm still doing what I love to do.

Be the first to comment

Leave a Reply

Your email address will not be published.


*