@LAZYGLOBAL OFF. function any_flameout { // // Return true if any of our engines are starved for fuel. Primarily used to determine the need for staging. // local engines_list is LIST(). list ENGINES in engines_list. for engine in engines_list { if engine:ignition and engine:flameout { return true. } } return false. } function should_stage { // // Return true if the rocket needs to stage. // return STATUS = "PRELAUNCH" // e.g. still attached to launch tower or any_flameout() // any engine starved for fuel or SHIP:maxthrustat(0) = 0. // no active engines (e.g. when we have an intermediate stage for decouplers before activating the next engine) } function stage_when_ready { // // Stage when ready. Blocks until staging has been initiated. // wait until STAGE:ready. print "STAGING". STAGE. } function isp_sum { // // Return the sum of vacuum ISP for enabled engines. // local sum is 0. local engines_list is LIST(). list ENGINES in engines_list. for engine in engines_list { if engine:ignition { set sum to sum + engine:vacuumisp. } } return sum. } function deploy_fairings { print "Deploying fairings". local fairings is SHIP:modulesnamed("ModuleProceduralFairing"). for fairing in fairings { fairing:doaction("deploy", true). } if not fairings:empty { wait 3. // wait for fairings to clear the vessel } } function extend_antennas { print "Extending antennas". for module in SHIP:modulesnamed("ModuleDeployableAntenna") { module:doaction("extend antenna", true). } } function unlock_control { // // Ensure that the throttle is 0 and that the player is not locked out of control. // set SHIP:control:pilotmainthrottle to 0. set SHIP:control:neutralize to true. unlock STEERING. unlock THROTTLE. }