├── ksppython_front.jpg ├── .gitattributes ├── README.md ├── .gitignore ├── kRPC_handsfree2orbit1.py ├── kRPC_falkon5_git_01.py ├── kRPC_falkon5_02.py └── Handsfree 1.craft /ksppython_front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Marcel-Jan/KSP-kRPC-Python/HEAD/ksppython_front.jpg -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KSP-kRPC-Python 2 | This contains the code to make a rocket launch and a rocket stage land relatively unharmed in the ocean afterwards, as seen in this video: 3 | 4 | [![How to land a rocket stage in KSP with Python](http://img.youtube.com/vi/D_X5k5lvx10/0.jpg)](http://www.youtube.com/watch?v=D_X5k5lvx10) 5 | 6 | Contains KSP kRPC Python code and KSP craft files. 7 | 8 | ### Some attempts that almost worked: 9 | https://youtu.be/elnqQ4bNdHI 10 | 11 | And this one: 12 | https://youtu.be/UGqqdfK3vtQ 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /kRPC_handsfree2orbit1.py: -------------------------------------------------------------------------------- 1 | """ 2 | kRPC Handsfree2Orbit 1.0 3 | 4 | Description: 5 | Python program to bring my Handsfree 1 rocket in orbit in Kerbal Space Program. 6 | 7 | To run this KSP kRPC Python program you need: 8 | - Kerbal Space Program (tested in 1.1.3) 9 | - kRPC 0.3.5 (https://mods.curse.com/ksp-mods/kerbal/220219-krpc-control-the-game-using-c-c-java-lua-python) 10 | Use the install guide on https://krpc.github.io/krpc/getting-started.html 11 | - I've also installed the Python client library (https://pypi.python.org/pypi/krpc) 12 | - Python 2.7 (https://www.python.org/download/releases/2.7/) 13 | 14 | When installed, install the .craft file (Handsfree 1.craft). 15 | Go to the directory with this program, start Python command line and run: 16 | execfile('kRPC_Orbital1_scrout.py') 17 | 18 | Good luck! 19 | """ 20 | 21 | import krpc 22 | import time 23 | 24 | 25 | conn = krpc.connect(name='Orbital flight script') 26 | canvas = conn.ui.stock_canvas 27 | 28 | # Get the size of the game window in pixels 29 | screen_size = canvas.rect_transform.size 30 | 31 | # Add a panel to contain the UI elements 32 | panel = canvas.add_panel() 33 | 34 | # Position the panel on the left of the screen 35 | rect = panel.rect_transform 36 | rect.size = (400,100) 37 | rect.position = (210-(screen_size[0]/2),-200) 38 | 39 | # Settings for text size in the panel on screen 40 | text = panel.add_text("Countdown") 41 | text.rect_transform.position = (0,-20) 42 | text.color = (1,1,1) 43 | text.size = 18 44 | 45 | # Some values for altitudes 46 | gravityturn = 12000 47 | target_apoapsis = 100000 48 | target_periapsis = 72000 49 | 50 | 51 | print "gravity turn at: " + str(gravityturn) 52 | print "target_apoapsis: " + str(target_apoapsis) 53 | 54 | # Now we're actually starting 55 | vessel = conn.space_center.active_vessel 56 | 57 | vessel.auto_pilot.engage() 58 | vessel.auto_pilot.target_pitch_and_heading(90,90) 59 | vessel.control.throttle = 1 60 | 61 | text.content = '3...' 62 | print('3...'); time.sleep(1) 63 | text.content = '2...' 64 | print('2...'); time.sleep(1) 65 | text.content = '1...' 66 | print('1...'); time.sleep(1) 67 | text.content = 'Engine start' 68 | print('Launch!') 69 | 70 | vessel.control.activate_next_stage() 71 | text.content = 'First stage burn' 72 | 73 | 74 | # Burn until the solid fuel in the boosters is out. 75 | while vessel.resources.amount('SolidFuel') > 0.1: 76 | time.sleep(1) 77 | 78 | text.content = 'Booster separation' 79 | print('Booster separation') 80 | vessel.control.activate_next_stage() 81 | 82 | # Pitch 10 degrees to the west. 83 | text.content = 'Turn to 80 degrees west' 84 | vessel.auto_pilot.target_pitch_and_heading(80,90) 85 | 86 | 87 | # Burn until we are at the altitude for the gravity turn. 88 | while vessel.flight().mean_altitude < gravityturn: 89 | time.sleep(1) 90 | # Display the targeted apoapsis on screen 91 | text.content = 'Apoapsis: ' + str(vessel.orbit.apoapsis_altitude) 92 | # Display the altitude and apoapsis in command line. 93 | print "Mean altitude: " + str(vessel.flight().mean_altitude) 94 | print "Apoapsis: " + str(vessel.orbit.apoapsis_altitude) 95 | 96 | 97 | text.content = 'Gravity turn' 98 | print('Gravity turn') 99 | 100 | # Turn 45 degrees west 101 | vessel.auto_pilot.target_pitch_and_heading(45,90) 102 | 103 | # Keep burning until the apoapsis is 100000 meters 104 | while vessel.orbit.apoapsis_altitude < target_apoapsis: 105 | time.sleep(1) 106 | # Display the targeted apoapsis on screen 107 | text.content = 'Apoapsis: ' + str(vessel.orbit.apoapsis_altitude) 108 | # Display the altitude and apoapsis in command line. 109 | print "Mean altitude: " + str(vessel.flight().mean_altitude) 110 | print "Apoapsis: " + str(vessel.orbit.apoapsis_altitude) 111 | 112 | 113 | text.content = 'Engine off' 114 | vessel.control.throttle = 0 115 | time.sleep(1) 116 | 117 | 118 | text.content = 'First stage separation' 119 | print('First stage separation') 120 | vessel.control.activate_next_stage() 121 | time.sleep(1) 122 | time.sleep(1) 123 | 124 | text.content = 'Short burn of second stage' 125 | # This short burn with 25% thrust isn't really necessary. 126 | vessel.control.throttle = 0.25 127 | time.sleep(1) 128 | vessel.control.throttle = 0 129 | 130 | # Pitch to 20 degrees above the horizon. And burn the second stage for 10 seconds (just to make the trajectory a bit .. wider? 131 | vessel.auto_pilot.target_pitch_and_heading(20,90) 132 | vessel.control.throttle = 1 133 | 134 | time.sleep(10) 135 | 136 | vessel.control.throttle = 0 137 | 138 | # Wait until we're on 90% of the apoapsis. 139 | while vessel.flight().mean_altitude < target_apoapsis*0.9: 140 | time.sleep(1) 141 | text.content = 'Burn after %d meters' % (target_apoapsis*0.9 - vessel.flight().mean_altitude) 142 | 143 | 144 | text.content = 'Turn to prograde' 145 | print('Turn to prograde') 146 | 147 | ap = vessel.auto_pilot 148 | ap.reference_frame = vessel.orbital_reference_frame 149 | ap.engage() 150 | 151 | # Point the vessel in the prograde direction 152 | # Not necessarily the most efficient way to get into orbit, but hey. 153 | ap.target_direction = (0,1,0) 154 | 155 | 156 | text.content = 'Extend solar panels' 157 | vessel = conn.space_center.active_vessel 158 | for solar_panel in vessel.parts.solar_panels: 159 | print solar_panel.state 160 | solar_panel.deployed=True 161 | 162 | text.content = 'Orbital burn' 163 | vessel.control.throttle = 1 164 | 165 | # Keep burning until the periapsis is 72000 meters. 166 | while vessel.orbit.periapsis_altitude < target_periapsis: 167 | time.sleep(1) 168 | text.content = 'Periapsis: %d ' % vessel.orbit.periapsis_altitude 169 | 170 | 171 | vessel.control.throttle = 0 172 | 173 | # And... we're in orbit.. hopefully. 174 | text.content = 'Welcome to orbit!' 175 | print('Welcome to orbit!') 176 | 177 | -------------------------------------------------------------------------------- /kRPC_falkon5_git_01.py: -------------------------------------------------------------------------------- 1 | """ 2 | kRPC Automated Landing of 1st Stage 3 | 4 | Description: 5 | Python program for automatic landing of the first stage of my rocket. 6 | 7 | To run this KSP kRPC Python program you need: 8 | - Kerbal Space Program (tested in 1.3.1) 9 | - kRPC 0.3.11 (https://forum.kerbalspaceprogram.com/index.php?/topic/62902-131-krpc-remote-procedure-call-server-v0311-6th-october-2017/) 10 | Use the install guide on https://krpc.github.io/krpc/getting-started.html 11 | - I've also installed the Python client library (https://pypi.python.org/pypi/krpc) 12 | - Python 2.7 or 3.4. Tested in Python 3.4 though 13 | 14 | When installed, install the .craft file (Falkon-5A.craft). 15 | Go to the directory with this program, start Python command line and run: 16 | execfile('kRPC_falkon5_01.py') 17 | 18 | Good luck! 19 | """ 20 | 21 | import krpc 22 | import time 23 | import time 24 | import math 25 | 26 | conn = krpc.connect(name='Automatic Landing of 1st Stage') 27 | 28 | def prepare_screen_message(): 29 | canvas = conn.ui.stock_canvas 30 | screen_size = canvas.rect_transform.size 31 | panel = canvas.add_panel() 32 | # Position the panel on the left of the screen 33 | rect = panel.rect_transform 34 | rect.size = (600,150) 35 | rect.position = (-screen_size[0]*.28, -screen_size[0]*.18) 36 | 37 | text = panel.add_text("Countdown") 38 | text.rect_transform.position = (-140,0) 39 | text.color = (1,1,1) 40 | text.size = 13 41 | return text 42 | 43 | 44 | def write_screen_message(text_panel, screen_message): 45 | text_panel.content = screen_message 46 | 47 | 48 | def interval_print(print_message): 49 | tens = int(round(time.time() * 10)) 50 | if (tens % 10) == 0: 51 | print(print_message) 52 | 53 | text_panel = prepare_screen_message() 54 | write_screen_message(text_panel, "Countdown") 55 | time.sleep(1) 56 | 57 | 58 | target_apoapsis = 75000 59 | island_heading = 117 60 | print("Heading: " + str(island_heading)) 61 | print("target_apoapsis: " + str(target_apoapsis)) 62 | 63 | # Ascent trajectory: {step, [end at altitude, pitch, heading, % thrust} 64 | ascent_trajectory = {1: [1000, 90, island_heading, 100], 65 | 2: [6000, 85, island_heading, 85], 66 | 3: [7500, 80, island_heading, 85], 67 | 4: [9000, 75, island_heading, 85], 68 | 5: [13000, 70, island_heading, 80], 69 | 6: [19000, 60, island_heading, 70], 70 | 7: [25000, 50, island_heading, 60], 71 | 8: [33000, 45, island_heading, 50]} 72 | 73 | print("Trajectory program") 74 | for step, params in ascent_trajectory.items(): 75 | print(step, params[0:4]) 76 | 77 | 78 | # Now we're actually starting 79 | ksc = conn.space_center 80 | rocket = ksc.active_vessel 81 | rocket_name = rocket.name 82 | srf_frame = rocket.orbit.body.reference_frame 83 | 84 | ap = rocket.auto_pilot 85 | v = ksc.active_vessel 86 | rocket.auto_pilot.engage() 87 | 88 | write_screen_message(text_panel, "3") 89 | time.sleep(1) 90 | write_screen_message(text_panel, "2") 91 | time.sleep(1) 92 | write_screen_message(text_panel, "1") 93 | time.sleep(1) 94 | 95 | 96 | 97 | # ======================= 98 | # Engine start 99 | # ======================= 100 | 101 | rocket.control.activate_next_stage() 102 | write_screen_message(text_panel, 'Engine start') 103 | rocket.control.throttle = 1 104 | time.sleep(1) 105 | 106 | 107 | # ======================= 108 | # Ascent 109 | # ======================= 110 | 111 | rocket.control.activate_next_stage() 112 | write_screen_message(text_panel, 'Lift off!') 113 | 114 | 115 | for step, params in ascent_trajectory.items(): 116 | print(step, params[0:4]) 117 | 118 | while rocket.flight().mean_altitude < params[0]: 119 | rocket.auto_pilot.target_pitch_and_heading(params[1], params[2]) 120 | rocket.control.throttle = (params[3]/100) 121 | write_screen_message(text_panel, "Ptc: " + str(params[1]) + " Hea: " + str(params[2]) + " Thr: " + str(params[3])) 122 | interval_print("Ptc: " + str(params[1]) + " Hea: " + str(params[2]) + " Thr: " + str(params[3])) 123 | 124 | 125 | write_screen_message(text_panel, 'Pitch to 45 until apoapsis=75000 m') 126 | while rocket.orbit.apoapsis_altitude < target_apoapsis: 127 | rocket.auto_pilot.target_pitch_and_heading(45,island_heading) 128 | #rocket.control.throttle = .40 129 | 130 | rocket.control.throttle = 0 131 | write_screen_message(text_panel, 'Engine stop') 132 | time.sleep(1) 133 | 134 | rocket.control.activate_next_stage() 135 | write_screen_message(text_panel, 'Deploy payload fairing') 136 | time.sleep(3) 137 | 138 | rocket.control.activate_next_stage() 139 | write_screen_message(text_panel, 'Bye bye, ..') 140 | time.sleep(2) 141 | write_screen_message(text_panel, '.. second stage') 142 | time.sleep(2) 143 | 144 | 145 | 146 | 147 | # ======================= 148 | # Running as second stage 149 | # ======================= 150 | 151 | 152 | for vess in conn.space_center.vessels: 153 | print("Found vessel: " + vess.name) 154 | if (vess.name == rocket_name + " Relay"): 155 | ksc.active_vessel = vess 156 | print("Switch naar " + vess.name) 157 | write_screen_message(text_panel, 'Temporary switch to second stage') 158 | second_stage = ksc.active_vessel 159 | #second_stage = vess.auto_pilot 160 | second_stage.auto_pilot.reference_frame = vess.surface_velocity_reference_frame 161 | 162 | secondst_heading = 0 163 | print("Second stage: pitch to 15, head to " + str(secondst_heading)) 164 | second_stage.auto_pilot.target_pitch_and_heading(15, secondst_heading) 165 | rocket.auto_pilot.target_pitch_and_heading(15,secondst_heading) 166 | print("Auto pilot engage") 167 | second_stage.auto_pilot.engage() 168 | 169 | 170 | #second_stage = conn.space_center.active_vessel 171 | print("Second stage: throttle 10%") 172 | second_stage.control.throttle = .1 173 | time.sleep(2) 174 | print("Second stage: pitch to 5, head to " + str(secondst_heading)) 175 | second_stage.auto_pilot.target_pitch_and_heading(5, secondst_heading) 176 | print("Second stage: throttle 100%") 177 | second_stage.control.throttle = 1 178 | time.sleep(5) 179 | 180 | #second_stage.auto_pilot.disengage() 181 | 182 | 183 | 184 | 185 | # ============================= 186 | # Running as first stage again 187 | # ============================= 188 | 189 | for vess in conn.space_center.vessels: 190 | if (vess.name == rocket_name): 191 | ksc.active_vessel = vess 192 | print("Switch naar " + vess.name) 193 | write_screen_message(text_panel, 'Back to 1st stage') 194 | rocket = ksc.active_vessel 195 | #rocket = vess.auto_pilot 196 | rocket.auto_pilot.reference_frame = vess.surface_velocity_reference_frame 197 | 198 | 199 | print("First stage: SAS on") 200 | rocket.control.throttle = 0 201 | #rocket.auto_pilot.sas = True 202 | print("First stage: retrograde") 203 | #rocket.auto_pilot.sas_mode = rocket.auto_pilot.sas_mode.retrograde 204 | rocket.auto_pilot.engage() 205 | 206 | srf_frame = rocket.orbit.body.reference_frame 207 | print("First stage: speed - surface mode") 208 | rocket.control.speed_mode = rocket.control.speed_mode.surface 209 | 210 | 211 | 212 | 213 | # ============================= 214 | # 215 | # ============================= 216 | 217 | 218 | 219 | write_screen_message(text_panel, 'RCS on') 220 | rocket.control.rcs=True 221 | rocket.control.throttle = 0 222 | 223 | 224 | 225 | # ============================= 226 | # Reentry burn 227 | # ============================= 228 | 229 | firstst_heading = 0 230 | rocket.auto_pilot.target_pitch_and_heading(135, firstst_heading) 231 | #ap.target_pitch_and_heading(185, firstst_heading) 232 | 233 | for i in range(20,0,-1): 234 | write_screen_message(text_panel, "Wait " + str(i)) 235 | time.sleep(1) 236 | 237 | write_screen_message(text_panel, 'Slight throttle') 238 | rocket.control.throttle = 0.05 239 | 240 | for i in range(3,0,-1): 241 | write_screen_message(text_panel, "Wait " + str(i)) 242 | time.sleep(1) 243 | 244 | write_screen_message(text_panel, 'Retrograde burn') 245 | rocket.control.throttle = 1 246 | 247 | for i in range(7,0,-1): 248 | write_screen_message(text_panel, "Wait " + str(i)) 249 | time.sleep(1) 250 | 251 | 252 | write_screen_message(text_panel, 'Reentry') 253 | rocket.control.rcs=False 254 | rocket.control.throttle = 0 255 | 256 | 257 | 258 | # ============================= 259 | # Air brakes 260 | # ============================= 261 | 262 | 263 | while rocket.flight().mean_altitude > 20000: 264 | write_screen_message(text_panel, "Alt: " + str(math.ceil(rocket.flight().mean_altitude)) + " spd: " + str(math.ceil(rocket.flight(srf_frame).speed))) 265 | 266 | rocket.control.set_action_group(1, True) 267 | write_screen_message(text_panel, "Airbrakes deployed") 268 | 269 | rocket.sas = True 270 | rocket.sasmode = "retrograde" 271 | 272 | 273 | 274 | 275 | while rocket.flight().mean_altitude > 2000: 276 | interval_print("Alt: " + str(rocket.flight().mean_altitude) + " spd: " + str(rocket.flight(srf_frame).speed) + " Sit: " + str(rocket.situation)) 277 | #print("Hsp: " + str(rocket.flight().horizontal_speed) + " Vsp: " + str(rocket.flight().vertical_speed) + " Vel: " + str(rocket.flight().velocity)) 278 | #print("Osp: " + str(rocket.orbit.speed) + " Orsp: " + str(rocket.orbit.orbital_speed)) 279 | write_screen_message(text_panel, "Wait for burn") 280 | 281 | crude_suicide_burn_factor = 3.2 282 | crude_suicide_burn_height = crude_suicide_burn_factor * rocket.flight(srf_frame).speed 283 | 284 | 285 | 286 | 287 | write_screen_message(text_panel, str(rocket.flight().mean_altitude)) 288 | print('Mean altitude: ' + str(rocket.flight().mean_altitude)) 289 | 290 | write_screen_message(text_panel, "Burn at: " + str(crude_suicide_burn_height) + " m") 291 | print("Burn at: " + str(crude_suicide_burn_height) + " m") 292 | 293 | while rocket.flight().mean_altitude > crude_suicide_burn_height: 294 | write_screen_message(text_panel, 'Suicide burn at ' + str(crude_suicide_burn_height) + " m") 295 | #print('Here we go!') 296 | interval_print("Alt: " + str(rocket.flight().mean_altitude) + " spd: " + str(rocket.flight(srf_frame).speed) + " Sit: " + str(rocket.situation)) 297 | 298 | #rocket.control.rcs=True 299 | #conn.space_center.sasmode(retrograde) 300 | 301 | #write_screen_message(text_panel, 'Auto pilot retrograde') 302 | ap = rocket.auto_pilot 303 | ap.reference_frame = rocket.surface_velocity_reference_frame 304 | ap.target_direction = (0, -1, 0) 305 | ap.engage() 306 | srf_frame = rocket.orbit.body.reference_frame 307 | 308 | #rocket.sasmode(retrograde) 309 | 310 | while rocket.flight().mean_altitude > 1: 311 | #print('In the last while loop.') 312 | if rocket.flight(srf_frame).speed > 50 and rocket.flight().mean_altitude > 100: 313 | rocket.control.throttle = 1 314 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 315 | interval_print("Throttle 100% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 316 | elif rocket.flight(srf_frame).speed > 20 and rocket.flight().mean_altitude > 100: 317 | rocket.control.throttle = .5 318 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 319 | interval_print("Throttle 50% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 320 | elif rocket.flight(srf_frame).speed > 8: 321 | ap.target_pitch_and_heading = (0, island_heading) 322 | ap.engage() 323 | rocket.control.throttle = .26 324 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 325 | interval_print("Throttle " + str(rocket.control.throttle*100) + "% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 326 | elif rocket.flight(srf_frame).speed < 10: 327 | write_screen_message(text_panel, 'Deploy landing gear') 328 | rocket.control.gear = True 329 | ap.disengage() 330 | rocket.control.throttle = 0 331 | 332 | 333 | if rocket.flight(srf_frame).speed < 12: 334 | write_screen_message(text_panel, 'Touchdown! Well done!') 335 | print('Touchdown! Well done!') 336 | else: 337 | write_screen_message(text_panel, 'Crashed with speed: ' + str(round(rocket.flight(srf_frame).speed)) + " m/s") 338 | print('Crashed with speed: ' + str(round(rocket.flight(srf_frame).speed)) + " m/s") 339 | 340 | -------------------------------------------------------------------------------- /kRPC_falkon5_02.py: -------------------------------------------------------------------------------- 1 | """ 2 | kRPC Automated Landing of 1st Stage 3 | 4 | Description: 5 | Python program for automatic landing of the first stage of my rocket. 6 | 7 | To run this KSP kRPC Python program you need: 8 | - Kerbal Space Program (tested in 1.3.1) 9 | - kRPC 0.3.9 () 10 | Use the install guide on https://krpc.github.io/krpc/getting-started.html 11 | - I've also installed the Python client library (https://pypi.python.org/pypi/krpc) 12 | - Python 2.7 or 3.4 13 | 14 | When installed, install the .craft file (Selflanding First Stage 5R.craft or Selflanding First Stage 5R-1.craft). 15 | Go to the directory with this program, start Python command line and run: 16 | execfile('kRPC_autoland1ststage_5engine_03.py') 17 | 18 | Good luck! 19 | """ 20 | 21 | import krpc 22 | import time 23 | import logging 24 | import time 25 | import math 26 | 27 | conn = krpc.connect(name='Automatic Landing of 1st Stage') 28 | 29 | def prepare_screen_message(): 30 | canvas = conn.ui.stock_canvas 31 | screen_size = canvas.rect_transform.size 32 | panel = canvas.add_panel() 33 | # Position the panel on the left of the screen 34 | rect = panel.rect_transform 35 | rect.size = (600,150) 36 | rect.position = (-screen_size[0]*.28, -screen_size[0]*.18) 37 | 38 | text = panel.add_text("Countdown") 39 | text.rect_transform.position = (-120,0) 40 | text.color = (1,1,1) 41 | text.size = 13 42 | return text 43 | 44 | 45 | def write_screen_message(text_panel, screen_message): 46 | text_panel.content = screen_message 47 | 48 | 49 | def interval_print(print_message): 50 | tens = int(round(time.time() * 10)) 51 | if (tens % 10) == 0: 52 | print(print_message) 53 | 54 | 55 | def calc_suicide_burn(current_speed, thrust, mass, gravity): 56 | acc_engine = thrust/mass 57 | acceleration = acc_engine - gravity 58 | return -(current_speed**2)/(2*acceleration) 59 | 60 | text_panel = prepare_screen_message() 61 | write_screen_message(text_panel, "Countdown") 62 | time.sleep(1) 63 | 64 | 65 | target_apoapsis = 75000 66 | island_heading = 117 67 | print("Heading: " + str(island_heading)) 68 | print("target_apoapsis: " + str(target_apoapsis)) 69 | 70 | # Ascent trajectory: {step, [end at altitude, pitch, heading, % thrust} 71 | ascent_trajectory = {1: [1000, 90, island_heading, 100], 72 | 2: [6000, 85, island_heading, 95], 73 | 3: [7500, 80, island_heading, 90], 74 | 3: [9000, 75, island_heading, 85], 75 | 4: [13000, 70, island_heading, 80], 76 | 5: [19000, 60, island_heading, 75], 77 | 6: [25000, 50, island_heading, 70], 78 | 7: [33000, 45, island_heading, 60]} 79 | 80 | print("Trajectory program") 81 | for step, params in ascent_trajectory.items(): 82 | print(step, params[0:4]) 83 | 84 | 85 | # Now we're actually starting 86 | ksc = conn.space_center 87 | rocket = ksc.active_vessel 88 | rocket_name = rocket.name 89 | srf_frame = rocket.orbit.body.reference_frame 90 | 91 | ap = rocket.auto_pilot 92 | v = ksc.active_vessel 93 | rocket.auto_pilot.engage() 94 | 95 | write_screen_message(text_panel, "3") 96 | time.sleep(1) 97 | write_screen_message(text_panel, "2") 98 | time.sleep(1) 99 | write_screen_message(text_panel, "1") 100 | time.sleep(1) 101 | 102 | 103 | 104 | # ======================= 105 | # Engine start 106 | # ======================= 107 | 108 | rocket.control.activate_next_stage() 109 | write_screen_message(text_panel, 'Engine start') 110 | rocket.control.throttle = 1 111 | time.sleep(1) 112 | 113 | 114 | # ======================= 115 | # Ascent 116 | # ======================= 117 | 118 | rocket.control.activate_next_stage() 119 | write_screen_message(text_panel, 'Lift off!') 120 | 121 | 122 | for step, params in ascent_trajectory.items(): 123 | print(step, params[0:4]) 124 | 125 | while rocket.flight().mean_altitude < params[0]: 126 | rocket.auto_pilot.target_pitch_and_heading(params[1], params[2]) 127 | rocket.control.throttle = (params[3]/100) 128 | write_screen_message(text_panel, "Ptc: " + str(params[1]) + " Hea: " + str(params[2]) + " Thr: " + str(params[3])) 129 | interval_print("Ptc: " + str(params[1]) + " Hea: " + str(params[2]) + " Thr: " + str(params[3])) 130 | 131 | 132 | write_screen_message(text_panel, 'Pitch to 45 until apoapsis=75000 m') 133 | while rocket.orbit.apoapsis_altitude < target_apoapsis: 134 | rocket.auto_pilot.target_pitch_and_heading(45,island_heading) 135 | #rocket.control.throttle = .40 136 | 137 | rocket.control.throttle = 0 138 | write_screen_message(text_panel, 'Engine stop') 139 | time.sleep(1) 140 | 141 | rocket.control.activate_next_stage() 142 | write_screen_message(text_panel, 'Deploy payload fairing') 143 | time.sleep(3) 144 | 145 | rocket.control.activate_next_stage() 146 | write_screen_message(text_panel, 'Bye bye, ..') 147 | time.sleep(2) 148 | write_screen_message(text_panel, '.. second stage') 149 | time.sleep(2) 150 | 151 | 152 | 153 | 154 | # ======================= 155 | # Running as second stage 156 | # ======================= 157 | 158 | 159 | for vess in conn.space_center.vessels: 160 | print("Gevonden vessel: " + vess.name) 161 | if (vess.name == rocket_name + " Relay"): 162 | ksc.active_vessel = vess 163 | print("Switch naar " + vess.name) 164 | write_screen_message(text_panel, 'Temporary switch to second stage') 165 | second_stage = ksc.active_vessel 166 | #second_stage = vess.auto_pilot 167 | second_stage.auto_pilot.reference_frame = vess.surface_velocity_reference_frame 168 | 169 | secondst_heading = 0 170 | print("Second stage: pitch to 0, head to " + str(secondst_heading)) 171 | second_stage.auto_pilot.target_pitch_and_heading(0, secondst_heading) 172 | rocket.auto_pilot.target_pitch_and_heading(0,secondst_heading) 173 | print("Auto pilot engage") 174 | second_stage.auto_pilot.engage() 175 | 176 | 177 | #second_stage = conn.space_center.active_vessel 178 | print("Second stage: throttle 10%") 179 | second_stage.control.throttle = .1 180 | time.sleep(2) 181 | print("Second stage: pitch to 0, head to " + str(secondst_heading)) 182 | second_stage.auto_pilot.target_pitch_and_heading(0, secondst_heading) 183 | print("Second stage: throttle 100%") 184 | second_stage.control.throttle = 1 185 | time.sleep(5) 186 | 187 | #second_stage.auto_pilot.disengage() 188 | 189 | 190 | 191 | 192 | # ============================= 193 | # Running as first stage again 194 | # ============================= 195 | 196 | for vess in conn.space_center.vessels: 197 | if (vess.name == rocket_name): 198 | ksc.active_vessel = vess 199 | print("Switch naar " + vess.name) 200 | write_screen_message(text_panel, 'Back to 1st stage') 201 | rocket = ksc.active_vessel 202 | #rocket = vess.auto_pilot 203 | rocket.auto_pilot.reference_frame = vess.surface_velocity_reference_frame 204 | 205 | 206 | print("First stage: SAS on") 207 | rocket.control.throttle = 0 208 | #rocket.auto_pilot.sas = True 209 | print("First stage: retrograde") 210 | #rocket.auto_pilot.sas_mode = rocket.auto_pilot.sas_mode.retrograde 211 | rocket.auto_pilot.engage() 212 | 213 | srf_frame = rocket.orbit.body.reference_frame 214 | print("First stage: speed - surface mode") 215 | rocket.control.speed_mode = rocket.control.speed_mode.surface 216 | 217 | 218 | 219 | 220 | # ============================= 221 | # 222 | # ============================= 223 | 224 | 225 | 226 | write_screen_message(text_panel, 'RCS on') 227 | rocket.control.rcs=True 228 | rocket.control.throttle = 0 229 | 230 | 231 | 232 | # ============================= 233 | # Reentry burn 234 | # ============================= 235 | 236 | firstst_heading = 0 237 | rocket.auto_pilot.target_pitch_and_heading(135, firstst_heading) 238 | #ap.target_pitch_and_heading(185, firstst_heading) 239 | 240 | for i in range(20,0,-1): 241 | write_screen_message(text_panel, "Wait " + str(i)) 242 | time.sleep(1) 243 | 244 | write_screen_message(text_panel, 'Slight throttle') 245 | rocket.control.throttle = 0.05 246 | 247 | for i in range(3,0,-1): 248 | write_screen_message(text_panel, "Wait " + str(i)) 249 | time.sleep(1) 250 | 251 | write_screen_message(text_panel, 'Retrograde burn') 252 | rocket.control.throttle = 1 253 | 254 | for i in range(7,0,-1): 255 | write_screen_message(text_panel, "Wait " + str(i)) 256 | time.sleep(1) 257 | 258 | 259 | write_screen_message(text_panel, 'Reentry') 260 | rocket.control.rcs=False 261 | rocket.control.throttle = 0 262 | 263 | 264 | 265 | # ============================= 266 | # Air brakes 267 | # ============================= 268 | 269 | 270 | while rocket.flight().mean_altitude > 20000: 271 | write_screen_message(text_panel, "Alt: " + str(math.ceil(rocket.flight().mean_altitude)) + " spd: " + str(math.ceil(rocket.flight(srf_frame).speed))) 272 | 273 | rocket.control.set_action_group(1, True) 274 | write_screen_message(text_panel, "Airbrakes deployed") 275 | 276 | rocket.sas = True 277 | rocket.sasmode = "retrograde" 278 | 279 | 280 | 281 | 282 | while rocket.flight().mean_altitude > 2000: 283 | interval_print("Alt: " + str(rocket.flight().mean_altitude) + " spd: " + str(rocket.flight(srf_frame).speed) + " Sit: " + str(rocket.situation)) 284 | #print("Hsp: " + str(rocket.flight().horizontal_speed) + " Vsp: " + str(rocket.flight().vertical_speed) + " Vel: " + str(rocket.flight().velocity)) 285 | #print("Osp: " + str(rocket.orbit.speed) + " Orsp: " + str(rocket.orbit.orbital_speed)) 286 | write_screen_message(text_panel, "Wait for burn") 287 | 288 | 289 | current_speed = rocket.flight(srf_frame).speed 290 | thrust = rocket.thrust 291 | mass = rocket.mass 292 | gravity = rocket.orbit.body.surface_gravity 293 | 294 | crude_suicide_burn_alt = (calc_suicide_burn(current_speed, thrust, mass, gravity) + 100) 295 | 296 | 297 | 298 | write_screen_message(text_panel, str(rocket.flight().mean_altitude)) 299 | print('Mean altitude: ' + str(rocket.flight().mean_altitude)) 300 | 301 | write_screen_message(text_panel, "Burn at: " + str(crude_suicide_burn_alt) + " m") 302 | print("Burn at: " + str(crude_suicide_burn_alt) + " m") 303 | 304 | while rocket.flight().mean_altitude > crude_suicide_burn_alt: 305 | write_screen_message(text_panel, 'Suicide burn at ' + str(crude_suicide_burn_alt) + " m") 306 | #print('Here we go!') 307 | interval_print("Alt: " + str(rocket.flight().mean_altitude) + " spd: " + str(rocket.flight(srf_frame).speed) + " Sit: " + str(rocket.situation)) 308 | 309 | #rocket.control.rcs=True 310 | #conn.space_center.sasmode(retrograde) 311 | 312 | #write_screen_message(text_panel, 'Auto pilot retrograde') 313 | ap = rocket.auto_pilot 314 | ap.reference_frame = rocket.surface_velocity_reference_frame 315 | ap.target_direction = (0, -1, 0) 316 | ap.engage() 317 | srf_frame = rocket.orbit.body.reference_frame 318 | 319 | #rocket.sasmode(retrograde) 320 | 321 | while rocket.flight().mean_altitude > 1: 322 | #print('In the last while loop.') 323 | if rocket.flight(srf_frame).speed > 50 and rocket.flight().mean_altitude > 100: 324 | rocket.control.throttle = 1 325 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 326 | interval_print("Throttle 100% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 327 | elif rocket.flight(srf_frame).speed > 20 and rocket.flight().mean_altitude > 100: 328 | rocket.control.throttle = .5 329 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 330 | interval_print("Throttle 50% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 331 | elif rocket.flight(srf_frame).speed > 8: 332 | ap.target_pitch_and_heading = (0, island_heading) 333 | ap.engage() 334 | rocket.control.throttle = .26 335 | write_screen_message(text_panel, 'Throttle ' + str(rocket.control.throttle*100) + '%' ) 336 | interval_print("Throttle " + str(rocket.control.throttle*100) + "% at " + str(rocket.flight().mean_altitude) + " m, speed: " + str(rocket.flight(srf_frame).speed) + " m/s") 337 | elif rocket.flight(srf_frame).speed < 8: 338 | write_screen_message(text_panel, 'Deploy landing gear') 339 | rocket.control.gear = True 340 | ap.disengage() 341 | rocket.control.throttle = 0 342 | 343 | 344 | if rocket.flight(srf_frame).speed < 12: 345 | write_screen_message(text_panel, 'Touchdown! Well done!') 346 | print('Touchdown! Well done!') 347 | else: 348 | write_screen_message(text_panel, 'Crashed with speed: ' + str(round(rocket.flight(srf_frame).speed)) + " m/s") 349 | print('Crashed with speed: ' + str(round(rocket.flight(srf_frame).speed)) + " m/s") 350 | 351 | -------------------------------------------------------------------------------- /Handsfree 1.craft: -------------------------------------------------------------------------------- 1 | ship = Handsfree 1 2 | version = 1.1.3 3 | description = 4 | type = VAB 5 | size = 4.0534,26.82056,7.47653 6 | PART 7 | { 8 | part = Mark1-2Pod_4294710528 9 | partName = Part 10 | pos = 1.534222E-05,33.9655,2.17253E-05 11 | attPos = 0,0,0 12 | attPos0 = 1.534222E-05,33.9655,2.17253E-05 13 | rot = 0,0,0,1 14 | attRot = 0,0,0,1 15 | attRot0 = 0,0,0,1 16 | mir = 1,1,1 17 | symMethod = Radial 18 | istg = 0 19 | dstg = 0 20 | sidx = -1 21 | sqor = -1 22 | sepI = 0 23 | attm = 0 24 | modCost = 0 25 | modMass = 0 26 | modSize = (0.0, 0.0, 0.0) 27 | link = ServiceBay.250_4294685688 28 | link = parachuteLarge_4294652684 29 | link = parachuteRadial_4294648124 30 | link = parachuteRadial_4294638942 31 | link = parachuteRadial_4294638886 32 | attN = bottom,ServiceBay.250_4294685688 33 | attN = top,parachuteLarge_4294652684 34 | EVENTS 35 | { 36 | } 37 | ACTIONS 38 | { 39 | } 40 | PARTDATA 41 | { 42 | } 43 | MODULE 44 | { 45 | name = ModuleCommand 46 | isEnabled = True 47 | controlSrcStatusText = 48 | stagingEnabled = True 49 | EVENTS 50 | { 51 | MakeReference 52 | { 53 | active = True 54 | guiActive = True 55 | guiActiveUncommand = False 56 | guiIcon = Control From Here 57 | guiName = Control From Here 58 | category = Control From Here 59 | guiActiveUnfocused = False 60 | unfocusedRange = 2 61 | externalToEVAOnly = True 62 | } 63 | RenameVessel 64 | { 65 | active = True 66 | guiActive = True 67 | guiActiveUncommand = True 68 | guiIcon = Rename Vessel 69 | guiName = Rename Vessel 70 | category = Rename Vessel 71 | guiActiveUnfocused = False 72 | unfocusedRange = 2 73 | externalToEVAOnly = True 74 | } 75 | ToggleStaging 76 | { 77 | active = True 78 | guiActive = False 79 | guiActiveUncommand = False 80 | guiIcon = Disable Staging 81 | guiName = Disable Staging 82 | category = Disable Staging 83 | guiActiveUnfocused = False 84 | unfocusedRange = 2 85 | externalToEVAOnly = True 86 | } 87 | } 88 | ACTIONS 89 | { 90 | } 91 | } 92 | MODULE 93 | { 94 | name = ModuleReactionWheel 95 | isEnabled = True 96 | actuatorModeCycle = 0 97 | stateString = Active 98 | stagingEnabled = True 99 | WheelState = Active 100 | actuatorModeCycle_UIFlight 101 | { 102 | controlEnabled = True 103 | stateNames = Normal, SAS Only, Pilot Only 104 | } 105 | EVENTS 106 | { 107 | OnToggle 108 | { 109 | active = True 110 | guiActive = True 111 | guiActiveEditor = True 112 | guiActiveUncommand = False 113 | guiIcon = Toggle Torque 114 | guiName = Toggle Torque 115 | category = Toggle Torque 116 | guiActiveUnfocused = False 117 | unfocusedRange = 2 118 | externalToEVAOnly = True 119 | } 120 | ToggleStaging 121 | { 122 | active = True 123 | guiActive = False 124 | guiActiveUncommand = False 125 | guiIcon = Disable Staging 126 | guiName = Disable Staging 127 | category = Disable Staging 128 | guiActiveUnfocused = False 129 | unfocusedRange = 2 130 | externalToEVAOnly = True 131 | } 132 | } 133 | ACTIONS 134 | { 135 | Activate 136 | { 137 | actionGroup = None 138 | } 139 | Deactivate 140 | { 141 | actionGroup = None 142 | } 143 | Toggle 144 | { 145 | actionGroup = None 146 | } 147 | } 148 | } 149 | MODULE 150 | { 151 | name = ModuleScienceExperiment 152 | isEnabled = True 153 | Deployed = False 154 | Inoperable = False 155 | cooldownToGo = 0 156 | stagingEnabled = True 157 | EVENTS 158 | { 159 | DeployExperiment 160 | { 161 | active = True 162 | guiActive = True 163 | guiActiveUncommand = False 164 | guiIcon = Deploy 165 | guiName = Deploy 166 | category = Deploy 167 | guiActiveUnfocused = False 168 | unfocusedRange = 2 169 | externalToEVAOnly = True 170 | } 171 | CollectDataExternalEvent 172 | { 173 | active = True 174 | guiActive = False 175 | guiActiveUncommand = False 176 | guiIcon = 177 | guiName = 178 | category = 179 | guiActiveUnfocused = True 180 | unfocusedRange = 1.5 181 | externalToEVAOnly = True 182 | } 183 | ReviewDataEvent 184 | { 185 | active = True 186 | guiActive = True 187 | guiActiveUncommand = False 188 | guiIcon = Review Data 189 | guiName = Review Data 190 | category = Review Data 191 | guiActiveUnfocused = False 192 | unfocusedRange = 2 193 | externalToEVAOnly = True 194 | } 195 | ResetExperiment 196 | { 197 | active = True 198 | guiActive = True 199 | guiActiveUncommand = False 200 | guiIcon = Reset 201 | guiName = Reset 202 | category = Reset 203 | guiActiveUnfocused = False 204 | unfocusedRange = 2 205 | externalToEVAOnly = True 206 | } 207 | DeployExperimentExternal 208 | { 209 | active = True 210 | guiActive = False 211 | guiActiveUncommand = False 212 | guiIcon = Deploy 213 | guiName = Deploy 214 | category = Deploy 215 | guiActiveUnfocused = True 216 | unfocusedRange = 2 217 | externalToEVAOnly = True 218 | } 219 | ResetExperimentExternal 220 | { 221 | active = True 222 | guiActive = False 223 | guiActiveUncommand = False 224 | guiIcon = Reset 225 | guiName = Reset 226 | category = Reset 227 | guiActiveUnfocused = True 228 | unfocusedRange = 2 229 | externalToEVAOnly = True 230 | } 231 | CleanUpExperimentExternal 232 | { 233 | active = True 234 | guiActive = False 235 | guiActiveUncommand = False 236 | guiIcon = Restore 237 | guiName = Restore 238 | category = Restore 239 | guiActiveUnfocused = True 240 | unfocusedRange = 2 241 | externalToEVAOnly = True 242 | } 243 | ToggleStaging 244 | { 245 | active = True 246 | guiActive = False 247 | guiActiveUncommand = False 248 | guiIcon = Disable Staging 249 | guiName = Experiment: Disable Staging 250 | category = Disable Staging 251 | guiActiveUnfocused = False 252 | unfocusedRange = 2 253 | externalToEVAOnly = True 254 | } 255 | } 256 | ACTIONS 257 | { 258 | DeployAction 259 | { 260 | actionGroup = None 261 | } 262 | ResetAction 263 | { 264 | actionGroup = None 265 | } 266 | } 267 | } 268 | MODULE 269 | { 270 | name = ModuleScienceContainer 271 | isEnabled = True 272 | stagingEnabled = True 273 | EVENTS 274 | { 275 | StoreDataExternalEvent 276 | { 277 | active = False 278 | guiActive = False 279 | guiActiveUncommand = False 280 | guiIcon = 281 | guiName = Store Experiments (0) 282 | category = 283 | guiActiveUnfocused = True 284 | unfocusedRange = 2 285 | externalToEVAOnly = True 286 | } 287 | CollectDataExternalEvent 288 | { 289 | active = False 290 | guiActive = False 291 | guiActiveUncommand = False 292 | guiIcon = 293 | guiName = Take Data (0) 294 | category = 295 | guiActiveUnfocused = True 296 | unfocusedRange = 2 297 | externalToEVAOnly = True 298 | } 299 | ReviewDataEvent 300 | { 301 | active = False 302 | guiActive = True 303 | guiActiveUncommand = False 304 | guiIcon = Review Data 305 | guiName = Review Stored Data (0) 306 | category = Review Data 307 | guiActiveUnfocused = False 308 | unfocusedRange = 2 309 | externalToEVAOnly = True 310 | } 311 | ToggleStaging 312 | { 313 | active = True 314 | guiActive = False 315 | guiActiveUncommand = False 316 | guiIcon = Disable Staging 317 | guiName = Disable Staging 318 | category = Disable Staging 319 | guiActiveUnfocused = False 320 | unfocusedRange = 2 321 | externalToEVAOnly = True 322 | } 323 | } 324 | ACTIONS 325 | { 326 | } 327 | } 328 | MODULE 329 | { 330 | name = FlagDecal 331 | isEnabled = True 332 | flagDisplayed = True 333 | stagingEnabled = True 334 | EVENTS 335 | { 336 | ToggleFlag 337 | { 338 | active = True 339 | guiActive = False 340 | guiActiveEditor = True 341 | guiActiveUncommand = False 342 | guiIcon = Toggle Flag 343 | guiName = Toggle Flag 344 | category = Toggle Flag 345 | guiActiveUnfocused = False 346 | unfocusedRange = 2 347 | externalToEVAOnly = True 348 | } 349 | ToggleStaging 350 | { 351 | active = True 352 | guiActive = False 353 | guiActiveUncommand = False 354 | guiIcon = Disable Staging 355 | guiName = Disable Staging 356 | category = Disable Staging 357 | guiActiveUnfocused = False 358 | unfocusedRange = 2 359 | externalToEVAOnly = True 360 | } 361 | } 362 | ACTIONS 363 | { 364 | } 365 | } 366 | MODULE 367 | { 368 | name = ModuleConductionMultiplier 369 | isEnabled = True 370 | stagingEnabled = True 371 | EVENTS 372 | { 373 | ToggleStaging 374 | { 375 | active = True 376 | guiActive = False 377 | guiActiveUncommand = False 378 | guiIcon = Disable Staging 379 | guiName = Disable Staging 380 | category = Disable Staging 381 | guiActiveUnfocused = False 382 | unfocusedRange = 2 383 | externalToEVAOnly = True 384 | } 385 | } 386 | ACTIONS 387 | { 388 | } 389 | } 390 | MODULE 391 | { 392 | name = TrajectoriesVesselSettings 393 | isEnabled = True 394 | EntryAngle = 0 395 | EntryHorizon = False 396 | HighAngle = 0 397 | HighHorizon = False 398 | LowAngle = 0 399 | LowHorizon = False 400 | GroundAngle = 0 401 | GroundHorizon = False 402 | ProgradeEntry = False 403 | RetrogradeEntry = False 404 | hasTarget = False 405 | targetLocation = (0, 0, 0) 406 | targetReferenceBody = 407 | stagingEnabled = True 408 | EVENTS 409 | { 410 | ToggleStaging 411 | { 412 | active = True 413 | guiActive = False 414 | guiActiveUncommand = False 415 | guiIcon = Disable Staging 416 | guiName = Disable Staging 417 | category = Disable Staging 418 | guiActiveUnfocused = False 419 | unfocusedRange = 2 420 | externalToEVAOnly = True 421 | } 422 | } 423 | ACTIONS 424 | { 425 | } 426 | } 427 | MODULE 428 | { 429 | name = ModuleTripLogger 430 | isEnabled = True 431 | stagingEnabled = True 432 | EVENTS 433 | { 434 | ToggleStaging 435 | { 436 | active = True 437 | guiActive = False 438 | guiActiveUncommand = False 439 | guiIcon = Disable Staging 440 | guiName = Disable Staging 441 | category = Disable Staging 442 | guiActiveUnfocused = False 443 | unfocusedRange = 2 444 | externalToEVAOnly = True 445 | } 446 | } 447 | ACTIONS 448 | { 449 | } 450 | Log 451 | { 452 | flight = 0 453 | } 454 | } 455 | MODULE 456 | { 457 | name = TransferDialogSpawner 458 | isEnabled = True 459 | stagingEnabled = True 460 | EVENTS 461 | { 462 | SpawnDialog 463 | { 464 | active = True 465 | guiActive = True 466 | guiActiveUncommand = True 467 | guiIcon = Transfer Crew 468 | guiName = Transfer Crew 469 | category = Transfer Crew 470 | guiActiveUnfocused = False 471 | unfocusedRange = 2 472 | externalToEVAOnly = True 473 | } 474 | ToggleStaging 475 | { 476 | active = True 477 | guiActive = False 478 | guiActiveUncommand = False 479 | guiIcon = Disable Staging 480 | guiName = Disable Staging 481 | category = Disable Staging 482 | guiActiveUnfocused = False 483 | unfocusedRange = 2 484 | externalToEVAOnly = True 485 | } 486 | } 487 | ACTIONS 488 | { 489 | } 490 | } 491 | RESOURCE 492 | { 493 | name = ElectricCharge 494 | amount = 150 495 | maxAmount = 150 496 | flowState = True 497 | isTweakable = True 498 | hideFlow = False 499 | isVisible = True 500 | flowMode = Both 501 | } 502 | RESOURCE 503 | { 504 | name = MonoPropellant 505 | amount = 30 506 | maxAmount = 30 507 | flowState = True 508 | isTweakable = True 509 | hideFlow = False 510 | isVisible = True 511 | flowMode = Both 512 | } 513 | } 514 | PART 515 | { 516 | part = ServiceBay.250_4294685688 517 | partName = Part 518 | pos = 1.534222E-05,32.83627,2.17253E-05 519 | attPos = 0,0,0 520 | attPos0 = 0,-1.12924,0 521 | rot = 0,0,0,1 522 | attRot = 0,0,0,1 523 | attRot0 = 0,0,0,1 524 | mir = 1,1,1 525 | symMethod = Radial 526 | istg = 0 527 | dstg = 0 528 | sidx = -1 529 | sqor = -1 530 | sepI = 0 531 | attm = 0 532 | modCost = 0 533 | modMass = 0 534 | modSize = (0.0, 0.0, 0.0) 535 | link = HeatShield2_4294413856 536 | link = ksp.r.largeBatteryPack_4294413792 537 | link = ksp.r.largeBatteryPack_4294413768 538 | attN = top,Mark1-2Pod_4294710528 539 | attN = bottom,HeatShield2_4294413856 540 | EVENTS 541 | { 542 | } 543 | ACTIONS 544 | { 545 | } 546 | PARTDATA 547 | { 548 | } 549 | MODULE 550 | { 551 | name = ModuleAnimateGeneric 552 | isEnabled = True 553 | aniState = LOCKED 554 | animSwitch = True 555 | animTime = 0 556 | animSpeed = -5 557 | deployPercent = 100 558 | animationIsDisabled = False 559 | stagingEnabled = True 560 | deployPercent_UIFlight 561 | { 562 | controlEnabled = True 563 | minValue = 0 564 | maxValue = 100 565 | stepIncrement = 1 566 | } 567 | EVENTS 568 | { 569 | Toggle 570 | { 571 | active = True 572 | guiActive = True 573 | guiActiveEditor = True 574 | guiActiveUncommand = False 575 | guiIcon = Toggle 576 | guiName = Open 577 | category = Toggle 578 | guiActiveUnfocused = True 579 | unfocusedRange = 5 580 | externalToEVAOnly = True 581 | } 582 | ToggleStaging 583 | { 584 | active = True 585 | guiActive = False 586 | guiActiveUncommand = False 587 | guiIcon = Disable Staging 588 | guiName = Disable Staging 589 | category = Disable Staging 590 | guiActiveUnfocused = False 591 | unfocusedRange = 2 592 | externalToEVAOnly = True 593 | } 594 | } 595 | ACTIONS 596 | { 597 | ToggleAction 598 | { 599 | actionGroup = None 600 | } 601 | } 602 | } 603 | MODULE 604 | { 605 | name = ModuleCargoBay 606 | isEnabled = True 607 | stagingEnabled = True 608 | EVENTS 609 | { 610 | ToggleStaging 611 | { 612 | active = True 613 | guiActive = False 614 | guiActiveUncommand = False 615 | guiIcon = Disable Staging 616 | guiName = Disable Staging 617 | category = Disable Staging 618 | guiActiveUnfocused = False 619 | unfocusedRange = 2 620 | externalToEVAOnly = True 621 | } 622 | } 623 | ACTIONS 624 | { 625 | } 626 | } 627 | MODULE 628 | { 629 | name = ModuleSeeThroughObject 630 | isEnabled = True 631 | stagingEnabled = True 632 | EVENTS 633 | { 634 | ToggleStaging 635 | { 636 | active = True 637 | guiActive = False 638 | guiActiveUncommand = False 639 | guiIcon = Disable Staging 640 | guiName = Disable Staging 641 | category = Disable Staging 642 | guiActiveUnfocused = False 643 | unfocusedRange = 2 644 | externalToEVAOnly = True 645 | } 646 | } 647 | ACTIONS 648 | { 649 | } 650 | } 651 | MODULE 652 | { 653 | name = ModuleConductionMultiplier 654 | isEnabled = True 655 | stagingEnabled = True 656 | EVENTS 657 | { 658 | ToggleStaging 659 | { 660 | active = True 661 | guiActive = False 662 | guiActiveUncommand = False 663 | guiIcon = Disable Staging 664 | guiName = Disable Staging 665 | category = Disable Staging 666 | guiActiveUnfocused = False 667 | unfocusedRange = 2 668 | externalToEVAOnly = True 669 | } 670 | } 671 | ACTIONS 672 | { 673 | } 674 | } 675 | } 676 | PART 677 | { 678 | part = HeatShield2_4294413856 679 | partName = Part 680 | pos = 1.534222E-05,32.15226,2.17253E-05 681 | attPos = 0,0,0 682 | attPos0 = 0,-0.684,0 683 | rot = 0,0,0,1 684 | attRot = 0,0,0,1 685 | attRot0 = 0,0,0,1 686 | mir = 1,1,1 687 | symMethod = Radial 688 | istg = 0 689 | dstg = 0 690 | sidx = -1 691 | sqor = -1 692 | sepI = 0 693 | attm = 0 694 | modCost = 0 695 | modMass = 0 696 | modSize = (0.0, 0.0, 0.0) 697 | link = stackSeparatorBig_4294413532 698 | attN = bottom,stackSeparatorBig_4294413532 699 | attN = top,ServiceBay.250_4294685688 700 | EVENTS 701 | { 702 | } 703 | ACTIONS 704 | { 705 | } 706 | PARTDATA 707 | { 708 | } 709 | MODULE 710 | { 711 | name = ModuleJettison 712 | isEnabled = True 713 | isJettisoned = False 714 | shroudHideOverride = False 715 | stagingEnabled = False 716 | shroudHideOverride_UIFlight 717 | { 718 | controlEnabled = True 719 | } 720 | EVENTS 721 | { 722 | Jettison 723 | { 724 | active = False 725 | guiActive = True 726 | guiActiveUncommand = False 727 | guiIcon = Jettison Shroud 728 | guiName = Jettison Shroud 729 | category = Jettison Shroud 730 | guiActiveUnfocused = False 731 | unfocusedRange = 2 732 | externalToEVAOnly = True 733 | } 734 | ToggleStaging 735 | { 736 | active = True 737 | guiActive = False 738 | guiActiveUncommand = False 739 | guiIcon = Disable Staging 740 | guiName = Shroud: Enable Staging 741 | category = Disable Staging 742 | guiActiveUnfocused = False 743 | unfocusedRange = 2 744 | externalToEVAOnly = True 745 | } 746 | } 747 | ACTIONS 748 | { 749 | JettisonAction 750 | { 751 | actionGroup = None 752 | } 753 | } 754 | } 755 | MODULE 756 | { 757 | name = ModuleDecouple 758 | isEnabled = True 759 | ejectionForcePercent = 100 760 | isDecoupled = False 761 | stagingEnabled = False 762 | ejectionForcePercent_UIFlight 763 | { 764 | controlEnabled = True 765 | minValue = 0 766 | maxValue = 100 767 | stepIncrement = 1 768 | } 769 | EVENTS 770 | { 771 | Decouple 772 | { 773 | active = True 774 | guiActive = True 775 | guiActiveUncommand = False 776 | guiIcon = Decouple 777 | guiName = Jettison Heat Shield 778 | category = Decouple 779 | guiActiveUnfocused = False 780 | unfocusedRange = 2 781 | externalToEVAOnly = True 782 | } 783 | ToggleStaging 784 | { 785 | active = True 786 | guiActive = False 787 | guiActiveEditor = True 788 | guiActiveUncommand = False 789 | guiIcon = Disable Staging 790 | guiName = HS Jettison Not Staged 791 | category = Disable Staging 792 | guiActiveUnfocused = False 793 | unfocusedRange = 2 794 | externalToEVAOnly = True 795 | } 796 | } 797 | ACTIONS 798 | { 799 | DecoupleAction 800 | { 801 | actionGroup = None 802 | } 803 | } 804 | } 805 | MODULE 806 | { 807 | name = ModuleAblator 808 | isEnabled = True 809 | stagingEnabled = True 810 | EVENTS 811 | { 812 | ToggleStaging 813 | { 814 | active = True 815 | guiActive = False 816 | guiActiveUncommand = False 817 | guiIcon = Disable Staging 818 | guiName = Disable Staging 819 | category = Disable Staging 820 | guiActiveUnfocused = False 821 | unfocusedRange = 2 822 | externalToEVAOnly = True 823 | } 824 | } 825 | ACTIONS 826 | { 827 | } 828 | } 829 | MODULE 830 | { 831 | name = ModuleTestSubject 832 | isEnabled = True 833 | stagingEnabled = True 834 | EVENTS 835 | { 836 | RunTestEvent 837 | { 838 | active = False 839 | guiActive = True 840 | guiActiveUncommand = False 841 | guiIcon = Run Test 842 | guiName = Run Test 843 | category = Run Test 844 | guiActiveUnfocused = False 845 | unfocusedRange = 2 846 | externalToEVAOnly = True 847 | } 848 | ToggleStaging 849 | { 850 | active = True 851 | guiActive = False 852 | guiActiveUncommand = False 853 | guiIcon = Disable Staging 854 | guiName = Disable Staging 855 | category = Disable Staging 856 | guiActiveUnfocused = False 857 | unfocusedRange = 2 858 | externalToEVAOnly = True 859 | } 860 | } 861 | ACTIONS 862 | { 863 | } 864 | } 865 | RESOURCE 866 | { 867 | name = Ablator 868 | amount = 800 869 | maxAmount = 800 870 | flowState = True 871 | isTweakable = True 872 | hideFlow = False 873 | isVisible = True 874 | flowMode = Both 875 | } 876 | } 877 | PART 878 | { 879 | part = ksp.r.largeBatteryPack_4294413792 880 | partName = Part 881 | pos = 1.528395E-05,33.38626,-0.6665012 882 | attPos = 0,0,0 883 | attPos0 = -5.826928E-08,0.5500002,-0.6665229 884 | rot = -0.7071069,0,0,0.7071066 885 | attRot = 0,-0.9999999,0,0 886 | attRot0 = -0.7071069,0,0,0.7071066 887 | mir = 1,1,1 888 | symMethod = Radial 889 | istg = 0 890 | dstg = 0 891 | sidx = -1 892 | sqor = -1 893 | sepI = 0 894 | attm = 1 895 | modCost = 0 896 | modMass = 0 897 | modSize = (0.0, 0.0, 0.0) 898 | sym = ksp.r.largeBatteryPack_4294413768 899 | srfN = srfAttach,ServiceBay.250_4294685688 900 | EVENTS 901 | { 902 | } 903 | ACTIONS 904 | { 905 | } 906 | PARTDATA 907 | { 908 | } 909 | RESOURCE 910 | { 911 | name = ElectricCharge 912 | amount = 400 913 | maxAmount = 400 914 | flowState = True 915 | isTweakable = True 916 | hideFlow = False 917 | isVisible = True 918 | flowMode = Both 919 | } 920 | } 921 | PART 922 | { 923 | part = ksp.r.largeBatteryPack_4294413768 924 | partName = Part 925 | pos = 1.545876E-05,33.38626,0.6665446 926 | attPos = 0,0,0 927 | attPos0 = 1.165386E-07,0.5500002,0.6665229 928 | rot = 3.090862E-08,0.7071066,0.7071069,-3.090861E-08 929 | attRot = 0,-0.9999999,0,0 930 | attRot0 = 3.090862E-08,0.7071066,0.7071069,-3.090861E-08 931 | mir = 1,1,1 932 | symMethod = Radial 933 | istg = 0 934 | dstg = 0 935 | sidx = -1 936 | sqor = -1 937 | sepI = 0 938 | attm = 1 939 | modCost = 0 940 | modMass = 0 941 | modSize = (0.0, 0.0, 0.0) 942 | sym = ksp.r.largeBatteryPack_4294413792 943 | srfN = srfAttach,ServiceBay.250_4294685688 944 | EVENTS 945 | { 946 | } 947 | ACTIONS 948 | { 949 | } 950 | PARTDATA 951 | { 952 | } 953 | RESOURCE 954 | { 955 | name = ElectricCharge 956 | amount = 400 957 | maxAmount = 400 958 | flowState = True 959 | isTweakable = True 960 | hideFlow = False 961 | isVisible = True 962 | flowMode = Both 963 | } 964 | } 965 | PART 966 | { 967 | part = parachuteLarge_4294652684 968 | partName = Part 969 | pos = 1.534222E-05,35.16076,2.17253E-05 970 | attPos = 0,0,0 971 | attPos0 = 0,1.195255,0 972 | rot = 0,0,0,1 973 | attRot = 0,0,0,1 974 | attRot0 = 0,0,0,1 975 | mir = 1,1,1 976 | symMethod = Radial 977 | istg = 0 978 | dstg = 0 979 | sidx = 1 980 | sqor = 0 981 | sepI = 0 982 | attm = 0 983 | modCost = 0 984 | modMass = 0 985 | modSize = (0.0, 0.0, 0.0) 986 | attN = bottom,Mark1-2Pod_4294710528 987 | EVENTS 988 | { 989 | } 990 | ACTIONS 991 | { 992 | } 993 | PARTDATA 994 | { 995 | } 996 | MODULE 997 | { 998 | name = ModuleParachute 999 | isEnabled = True 1000 | persistentState = STOWED 1001 | animTime = 0 1002 | minAirPressureToOpen = 0.04 1003 | deployAltitude = 1000 1004 | stagingEnabled = True 1005 | minAirPressureToOpen_UIFlight 1006 | { 1007 | controlEnabled = True 1008 | minValue = 0.01 1009 | maxValue = 0.75 1010 | stepIncrement = 0.01 1011 | } 1012 | deployAltitude_UIFlight 1013 | { 1014 | controlEnabled = True 1015 | minValue = 50 1016 | maxValue = 5000 1017 | stepIncrement = 50 1018 | } 1019 | EVENTS 1020 | { 1021 | Deploy 1022 | { 1023 | active = True 1024 | guiActive = True 1025 | guiActiveUncommand = False 1026 | guiIcon = Deploy Chute 1027 | guiName = Deploy Chute 1028 | category = Deploy Chute 1029 | guiActiveUnfocused = True 1030 | unfocusedRange = 4 1031 | externalToEVAOnly = True 1032 | } 1033 | CutParachute 1034 | { 1035 | active = True 1036 | guiActive = True 1037 | guiActiveUncommand = False 1038 | guiIcon = Cut Parachute 1039 | guiName = Cut Parachute 1040 | category = Cut Parachute 1041 | guiActiveUnfocused = True 1042 | unfocusedRange = 4 1043 | externalToEVAOnly = True 1044 | } 1045 | Repack 1046 | { 1047 | active = False 1048 | guiActive = False 1049 | guiActiveUncommand = False 1050 | guiIcon = Repack Chute 1051 | guiName = Repack Chute 1052 | category = Repack Chute 1053 | guiActiveUnfocused = True 1054 | unfocusedRange = 4 1055 | externalToEVAOnly = True 1056 | } 1057 | Disarm 1058 | { 1059 | active = False 1060 | guiActive = True 1061 | guiActiveUncommand = False 1062 | guiIcon = Disarm 1063 | guiName = Disarm 1064 | category = Disarm 1065 | guiActiveUnfocused = True 1066 | unfocusedRange = 4 1067 | externalToEVAOnly = True 1068 | } 1069 | ToggleStaging 1070 | { 1071 | active = True 1072 | guiActive = False 1073 | guiActiveUncommand = False 1074 | guiIcon = Disable Staging 1075 | guiName = Disable Staging 1076 | category = Disable Staging 1077 | guiActiveUnfocused = False 1078 | unfocusedRange = 2 1079 | externalToEVAOnly = True 1080 | } 1081 | } 1082 | ACTIONS 1083 | { 1084 | DeployAction 1085 | { 1086 | actionGroup = None 1087 | } 1088 | CutAction 1089 | { 1090 | actionGroup = None 1091 | } 1092 | } 1093 | } 1094 | MODULE 1095 | { 1096 | name = ModuleTestSubject 1097 | isEnabled = True 1098 | stagingEnabled = True 1099 | EVENTS 1100 | { 1101 | RunTestEvent 1102 | { 1103 | active = False 1104 | guiActive = True 1105 | guiActiveUncommand = False 1106 | guiIcon = Run Test 1107 | guiName = Run Test 1108 | category = Run Test 1109 | guiActiveUnfocused = False 1110 | unfocusedRange = 2 1111 | externalToEVAOnly = True 1112 | } 1113 | ToggleStaging 1114 | { 1115 | active = True 1116 | guiActive = False 1117 | guiActiveUncommand = False 1118 | guiIcon = Disable Staging 1119 | guiName = Disable Staging 1120 | category = Disable Staging 1121 | guiActiveUnfocused = False 1122 | unfocusedRange = 2 1123 | externalToEVAOnly = True 1124 | } 1125 | } 1126 | ACTIONS 1127 | { 1128 | } 1129 | } 1130 | MODULE 1131 | { 1132 | name = ModuleDragModifier 1133 | isEnabled = True 1134 | stagingEnabled = True 1135 | EVENTS 1136 | { 1137 | ToggleStaging 1138 | { 1139 | active = True 1140 | guiActive = False 1141 | guiActiveUncommand = False 1142 | guiIcon = Disable Staging 1143 | guiName = Disable Staging 1144 | category = Disable Staging 1145 | guiActiveUnfocused = False 1146 | unfocusedRange = 2 1147 | externalToEVAOnly = True 1148 | } 1149 | } 1150 | ACTIONS 1151 | { 1152 | } 1153 | } 1154 | MODULE 1155 | { 1156 | name = ModuleDragModifier 1157 | isEnabled = True 1158 | stagingEnabled = True 1159 | EVENTS 1160 | { 1161 | ToggleStaging 1162 | { 1163 | active = True 1164 | guiActive = False 1165 | guiActiveUncommand = False 1166 | guiIcon = Disable Staging 1167 | guiName = Disable Staging 1168 | category = Disable Staging 1169 | guiActiveUnfocused = False 1170 | unfocusedRange = 2 1171 | externalToEVAOnly = True 1172 | } 1173 | } 1174 | ACTIONS 1175 | { 1176 | } 1177 | } 1178 | } 1179 | PART 1180 | { 1181 | part = parachuteRadial_4294648124 1182 | partName = Part 1183 | pos = -0.6858809,34.83693,2.176618E-05 1184 | attPos = 0,0,0 1185 | attPos0 = -0.6858962,0.8714256,4.08826E-08 1186 | rot = 0.1398695,0.6931353,-0.1398695,0.6931353 1187 | attRot = 0,0,0,1 1188 | attRot0 = 0.1398695,0.6931353,-0.1398695,0.6931353 1189 | mir = 1,1,1 1190 | symMethod = Radial 1191 | istg = 0 1192 | dstg = 0 1193 | sidx = 0 1194 | sqor = 0 1195 | sepI = 0 1196 | attm = 1 1197 | modCost = 0 1198 | modMass = 0 1199 | modSize = (0.0, 0.0, 0.0) 1200 | sym = parachuteRadial_4294638942 1201 | sym = parachuteRadial_4294638886 1202 | srfN = srfAttach,Mark1-2Pod_4294710528 1203 | EVENTS 1204 | { 1205 | } 1206 | ACTIONS 1207 | { 1208 | } 1209 | PARTDATA 1210 | { 1211 | } 1212 | MODULE 1213 | { 1214 | name = ModuleParachute 1215 | isEnabled = True 1216 | persistentState = STOWED 1217 | animTime = 0 1218 | minAirPressureToOpen = 0.04 1219 | deployAltitude = 1000 1220 | stagingEnabled = True 1221 | minAirPressureToOpen_UIFlight 1222 | { 1223 | controlEnabled = True 1224 | minValue = 0.01 1225 | maxValue = 0.75 1226 | stepIncrement = 0.01 1227 | } 1228 | deployAltitude_UIFlight 1229 | { 1230 | controlEnabled = True 1231 | minValue = 50 1232 | maxValue = 5000 1233 | stepIncrement = 50 1234 | } 1235 | EVENTS 1236 | { 1237 | Deploy 1238 | { 1239 | active = True 1240 | guiActive = True 1241 | guiActiveUncommand = False 1242 | guiIcon = Deploy Chute 1243 | guiName = Deploy Chute 1244 | category = Deploy Chute 1245 | guiActiveUnfocused = True 1246 | unfocusedRange = 4 1247 | externalToEVAOnly = True 1248 | } 1249 | CutParachute 1250 | { 1251 | active = True 1252 | guiActive = True 1253 | guiActiveUncommand = False 1254 | guiIcon = Cut Parachute 1255 | guiName = Cut Parachute 1256 | category = Cut Parachute 1257 | guiActiveUnfocused = True 1258 | unfocusedRange = 4 1259 | externalToEVAOnly = True 1260 | } 1261 | Repack 1262 | { 1263 | active = False 1264 | guiActive = False 1265 | guiActiveUncommand = False 1266 | guiIcon = Repack Chute 1267 | guiName = Repack Chute 1268 | category = Repack Chute 1269 | guiActiveUnfocused = True 1270 | unfocusedRange = 4 1271 | externalToEVAOnly = True 1272 | } 1273 | Disarm 1274 | { 1275 | active = False 1276 | guiActive = True 1277 | guiActiveUncommand = False 1278 | guiIcon = Disarm 1279 | guiName = Disarm 1280 | category = Disarm 1281 | guiActiveUnfocused = True 1282 | unfocusedRange = 4 1283 | externalToEVAOnly = True 1284 | } 1285 | ToggleStaging 1286 | { 1287 | active = True 1288 | guiActive = False 1289 | guiActiveUncommand = False 1290 | guiIcon = Disable Staging 1291 | guiName = Disable Staging 1292 | category = Disable Staging 1293 | guiActiveUnfocused = False 1294 | unfocusedRange = 2 1295 | externalToEVAOnly = True 1296 | } 1297 | } 1298 | ACTIONS 1299 | { 1300 | DeployAction 1301 | { 1302 | actionGroup = None 1303 | } 1304 | CutAction 1305 | { 1306 | actionGroup = None 1307 | } 1308 | } 1309 | } 1310 | MODULE 1311 | { 1312 | name = ModuleTestSubject 1313 | isEnabled = True 1314 | stagingEnabled = True 1315 | EVENTS 1316 | { 1317 | RunTestEvent 1318 | { 1319 | active = False 1320 | guiActive = True 1321 | guiActiveUncommand = False 1322 | guiIcon = Run Test 1323 | guiName = Run Test 1324 | category = Run Test 1325 | guiActiveUnfocused = False 1326 | unfocusedRange = 2 1327 | externalToEVAOnly = True 1328 | } 1329 | ToggleStaging 1330 | { 1331 | active = True 1332 | guiActive = False 1333 | guiActiveUncommand = False 1334 | guiIcon = Disable Staging 1335 | guiName = Disable Staging 1336 | category = Disable Staging 1337 | guiActiveUnfocused = False 1338 | unfocusedRange = 2 1339 | externalToEVAOnly = True 1340 | } 1341 | } 1342 | ACTIONS 1343 | { 1344 | } 1345 | } 1346 | MODULE 1347 | { 1348 | name = ModuleDragModifier 1349 | isEnabled = True 1350 | stagingEnabled = True 1351 | EVENTS 1352 | { 1353 | ToggleStaging 1354 | { 1355 | active = True 1356 | guiActive = False 1357 | guiActiveUncommand = False 1358 | guiIcon = Disable Staging 1359 | guiName = Disable Staging 1360 | category = Disable Staging 1361 | guiActiveUnfocused = False 1362 | unfocusedRange = 2 1363 | externalToEVAOnly = True 1364 | } 1365 | } 1366 | ACTIONS 1367 | { 1368 | } 1369 | } 1370 | MODULE 1371 | { 1372 | name = ModuleDragModifier 1373 | isEnabled = True 1374 | stagingEnabled = True 1375 | EVENTS 1376 | { 1377 | ToggleStaging 1378 | { 1379 | active = True 1380 | guiActive = False 1381 | guiActiveUncommand = False 1382 | guiIcon = Disable Staging 1383 | guiName = Disable Staging 1384 | category = Disable Staging 1385 | guiActiveUnfocused = False 1386 | unfocusedRange = 2 1387 | externalToEVAOnly = True 1388 | } 1389 | } 1390 | ACTIONS 1391 | { 1392 | } 1393 | } 1394 | } 1395 | PART 1396 | { 1397 | part = parachuteRadial_4294638942 1398 | partName = Part 1399 | pos = 0.3429636,34.83693,0.5940252 1400 | attPos = 0,0,0 1401 | attPos0 = 0.3429482,0.8714256,0.5940035 1402 | rot = -0.05119581,0.9468404,-0.1910653,-0.2537052 1403 | attRot = 0,0,0,1 1404 | attRot0 = -0.05119581,0.9468404,-0.1910653,-0.2537052 1405 | mir = 1,1,1 1406 | symMethod = Radial 1407 | istg = 0 1408 | dstg = 0 1409 | sidx = 0 1410 | sqor = 0 1411 | sepI = 0 1412 | attm = 1 1413 | modCost = 0 1414 | modMass = 0 1415 | modSize = (0.0, 0.0, 0.0) 1416 | sym = parachuteRadial_4294648124 1417 | sym = parachuteRadial_4294638886 1418 | srfN = srfAttach,Mark1-2Pod_4294710528 1419 | EVENTS 1420 | { 1421 | } 1422 | ACTIONS 1423 | { 1424 | } 1425 | PARTDATA 1426 | { 1427 | } 1428 | MODULE 1429 | { 1430 | name = ModuleParachute 1431 | isEnabled = True 1432 | persistentState = STOWED 1433 | animTime = 0 1434 | minAirPressureToOpen = 0.04 1435 | deployAltitude = 1000 1436 | stagingEnabled = True 1437 | minAirPressureToOpen_UIFlight 1438 | { 1439 | controlEnabled = True 1440 | minValue = 0.01 1441 | maxValue = 0.75 1442 | stepIncrement = 0.01 1443 | } 1444 | deployAltitude_UIFlight 1445 | { 1446 | controlEnabled = True 1447 | minValue = 50 1448 | maxValue = 5000 1449 | stepIncrement = 50 1450 | } 1451 | EVENTS 1452 | { 1453 | Deploy 1454 | { 1455 | active = True 1456 | guiActive = True 1457 | guiActiveUncommand = False 1458 | guiIcon = Deploy Chute 1459 | guiName = Deploy Chute 1460 | category = Deploy Chute 1461 | guiActiveUnfocused = True 1462 | unfocusedRange = 4 1463 | externalToEVAOnly = True 1464 | } 1465 | CutParachute 1466 | { 1467 | active = True 1468 | guiActive = True 1469 | guiActiveUncommand = False 1470 | guiIcon = Cut Parachute 1471 | guiName = Cut Parachute 1472 | category = Cut Parachute 1473 | guiActiveUnfocused = True 1474 | unfocusedRange = 4 1475 | externalToEVAOnly = True 1476 | } 1477 | Repack 1478 | { 1479 | active = False 1480 | guiActive = False 1481 | guiActiveUncommand = False 1482 | guiIcon = Repack Chute 1483 | guiName = Repack Chute 1484 | category = Repack Chute 1485 | guiActiveUnfocused = True 1486 | unfocusedRange = 4 1487 | externalToEVAOnly = True 1488 | } 1489 | Disarm 1490 | { 1491 | active = False 1492 | guiActive = True 1493 | guiActiveUncommand = False 1494 | guiIcon = Disarm 1495 | guiName = Disarm 1496 | category = Disarm 1497 | guiActiveUnfocused = True 1498 | unfocusedRange = 4 1499 | externalToEVAOnly = True 1500 | } 1501 | ToggleStaging 1502 | { 1503 | active = True 1504 | guiActive = False 1505 | guiActiveUncommand = False 1506 | guiIcon = Disable Staging 1507 | guiName = Disable Staging 1508 | category = Disable Staging 1509 | guiActiveUnfocused = False 1510 | unfocusedRange = 2 1511 | externalToEVAOnly = True 1512 | } 1513 | } 1514 | ACTIONS 1515 | { 1516 | DeployAction 1517 | { 1518 | actionGroup = None 1519 | } 1520 | CutAction 1521 | { 1522 | actionGroup = None 1523 | } 1524 | } 1525 | } 1526 | MODULE 1527 | { 1528 | name = ModuleTestSubject 1529 | isEnabled = True 1530 | stagingEnabled = True 1531 | EVENTS 1532 | { 1533 | RunTestEvent 1534 | { 1535 | active = False 1536 | guiActive = True 1537 | guiActiveUncommand = False 1538 | guiIcon = Run Test 1539 | guiName = Run Test 1540 | category = Run Test 1541 | guiActiveUnfocused = False 1542 | unfocusedRange = 2 1543 | externalToEVAOnly = True 1544 | } 1545 | ToggleStaging 1546 | { 1547 | active = True 1548 | guiActive = False 1549 | guiActiveUncommand = False 1550 | guiIcon = Disable Staging 1551 | guiName = Disable Staging 1552 | category = Disable Staging 1553 | guiActiveUnfocused = False 1554 | unfocusedRange = 2 1555 | externalToEVAOnly = True 1556 | } 1557 | } 1558 | ACTIONS 1559 | { 1560 | } 1561 | } 1562 | MODULE 1563 | { 1564 | name = ModuleDragModifier 1565 | isEnabled = True 1566 | stagingEnabled = True 1567 | EVENTS 1568 | { 1569 | ToggleStaging 1570 | { 1571 | active = True 1572 | guiActive = False 1573 | guiActiveUncommand = False 1574 | guiIcon = Disable Staging 1575 | guiName = Disable Staging 1576 | category = Disable Staging 1577 | guiActiveUnfocused = False 1578 | unfocusedRange = 2 1579 | externalToEVAOnly = True 1580 | } 1581 | } 1582 | ACTIONS 1583 | { 1584 | } 1585 | } 1586 | MODULE 1587 | { 1588 | name = ModuleDragModifier 1589 | isEnabled = True 1590 | stagingEnabled = True 1591 | EVENTS 1592 | { 1593 | ToggleStaging 1594 | { 1595 | active = True 1596 | guiActive = False 1597 | guiActiveUncommand = False 1598 | guiIcon = Disable Staging 1599 | guiName = Disable Staging 1600 | category = Disable Staging 1601 | guiActiveUnfocused = False 1602 | unfocusedRange = 2 1603 | externalToEVAOnly = True 1604 | } 1605 | } 1606 | ACTIONS 1607 | { 1608 | } 1609 | } 1610 | } 1611 | PART 1612 | { 1613 | part = parachuteRadial_4294638886 1614 | partName = Part 1615 | pos = 0.3429634,34.83693,-0.5939819 1616 | attPos = 0,0,0 1617 | attPos0 = 0.3429481,0.8714256,-0.5940036 1618 | rot = -0.1910653,0.253705,-0.05119577,-0.9468405 1619 | attRot = 0,0,0,1 1620 | attRot0 = -0.1910653,0.253705,-0.05119577,-0.9468405 1621 | mir = 1,1,1 1622 | symMethod = Radial 1623 | istg = 0 1624 | dstg = 0 1625 | sidx = 0 1626 | sqor = 0 1627 | sepI = 0 1628 | attm = 1 1629 | modCost = 0 1630 | modMass = 0 1631 | modSize = (0.0, 0.0, 0.0) 1632 | sym = parachuteRadial_4294648124 1633 | sym = parachuteRadial_4294638942 1634 | srfN = srfAttach,Mark1-2Pod_4294710528 1635 | EVENTS 1636 | { 1637 | } 1638 | ACTIONS 1639 | { 1640 | } 1641 | PARTDATA 1642 | { 1643 | } 1644 | MODULE 1645 | { 1646 | name = ModuleParachute 1647 | isEnabled = True 1648 | persistentState = STOWED 1649 | animTime = 0 1650 | minAirPressureToOpen = 0.04 1651 | deployAltitude = 1000 1652 | stagingEnabled = True 1653 | minAirPressureToOpen_UIFlight 1654 | { 1655 | controlEnabled = True 1656 | minValue = 0.01 1657 | maxValue = 0.75 1658 | stepIncrement = 0.01 1659 | } 1660 | deployAltitude_UIFlight 1661 | { 1662 | controlEnabled = True 1663 | minValue = 50 1664 | maxValue = 5000 1665 | stepIncrement = 50 1666 | } 1667 | EVENTS 1668 | { 1669 | Deploy 1670 | { 1671 | active = True 1672 | guiActive = True 1673 | guiActiveUncommand = False 1674 | guiIcon = Deploy Chute 1675 | guiName = Deploy Chute 1676 | category = Deploy Chute 1677 | guiActiveUnfocused = True 1678 | unfocusedRange = 4 1679 | externalToEVAOnly = True 1680 | } 1681 | CutParachute 1682 | { 1683 | active = True 1684 | guiActive = True 1685 | guiActiveUncommand = False 1686 | guiIcon = Cut Parachute 1687 | guiName = Cut Parachute 1688 | category = Cut Parachute 1689 | guiActiveUnfocused = True 1690 | unfocusedRange = 4 1691 | externalToEVAOnly = True 1692 | } 1693 | Repack 1694 | { 1695 | active = False 1696 | guiActive = False 1697 | guiActiveUncommand = False 1698 | guiIcon = Repack Chute 1699 | guiName = Repack Chute 1700 | category = Repack Chute 1701 | guiActiveUnfocused = True 1702 | unfocusedRange = 4 1703 | externalToEVAOnly = True 1704 | } 1705 | Disarm 1706 | { 1707 | active = False 1708 | guiActive = True 1709 | guiActiveUncommand = False 1710 | guiIcon = Disarm 1711 | guiName = Disarm 1712 | category = Disarm 1713 | guiActiveUnfocused = True 1714 | unfocusedRange = 4 1715 | externalToEVAOnly = True 1716 | } 1717 | ToggleStaging 1718 | { 1719 | active = True 1720 | guiActive = False 1721 | guiActiveUncommand = False 1722 | guiIcon = Disable Staging 1723 | guiName = Disable Staging 1724 | category = Disable Staging 1725 | guiActiveUnfocused = False 1726 | unfocusedRange = 2 1727 | externalToEVAOnly = True 1728 | } 1729 | } 1730 | ACTIONS 1731 | { 1732 | DeployAction 1733 | { 1734 | actionGroup = None 1735 | } 1736 | CutAction 1737 | { 1738 | actionGroup = None 1739 | } 1740 | } 1741 | } 1742 | MODULE 1743 | { 1744 | name = ModuleTestSubject 1745 | isEnabled = True 1746 | stagingEnabled = True 1747 | EVENTS 1748 | { 1749 | RunTestEvent 1750 | { 1751 | active = False 1752 | guiActive = True 1753 | guiActiveUncommand = False 1754 | guiIcon = Run Test 1755 | guiName = Run Test 1756 | category = Run Test 1757 | guiActiveUnfocused = False 1758 | unfocusedRange = 2 1759 | externalToEVAOnly = True 1760 | } 1761 | ToggleStaging 1762 | { 1763 | active = True 1764 | guiActive = False 1765 | guiActiveUncommand = False 1766 | guiIcon = Disable Staging 1767 | guiName = Disable Staging 1768 | category = Disable Staging 1769 | guiActiveUnfocused = False 1770 | unfocusedRange = 2 1771 | externalToEVAOnly = True 1772 | } 1773 | } 1774 | ACTIONS 1775 | { 1776 | } 1777 | } 1778 | MODULE 1779 | { 1780 | name = ModuleDragModifier 1781 | isEnabled = True 1782 | stagingEnabled = True 1783 | EVENTS 1784 | { 1785 | ToggleStaging 1786 | { 1787 | active = True 1788 | guiActive = False 1789 | guiActiveUncommand = False 1790 | guiIcon = Disable Staging 1791 | guiName = Disable Staging 1792 | category = Disable Staging 1793 | guiActiveUnfocused = False 1794 | unfocusedRange = 2 1795 | externalToEVAOnly = True 1796 | } 1797 | } 1798 | ACTIONS 1799 | { 1800 | } 1801 | } 1802 | MODULE 1803 | { 1804 | name = ModuleDragModifier 1805 | isEnabled = True 1806 | stagingEnabled = True 1807 | EVENTS 1808 | { 1809 | ToggleStaging 1810 | { 1811 | active = True 1812 | guiActive = False 1813 | guiActiveUncommand = False 1814 | guiIcon = Disable Staging 1815 | guiName = Disable Staging 1816 | category = Disable Staging 1817 | guiActiveUnfocused = False 1818 | unfocusedRange = 2 1819 | externalToEVAOnly = True 1820 | } 1821 | } 1822 | ACTIONS 1823 | { 1824 | } 1825 | } 1826 | } 1827 | PART 1828 | { 1829 | part = stackSeparatorBig_4294413532 1830 | partName = Part 1831 | pos = 1.534222E-05,31.68526,2.17253E-05 1832 | attPos = 0,0,0 1833 | attPos0 = 0,-0.467001,0 1834 | rot = 0,0,0,1 1835 | attRot = 0,0,0,1 1836 | attRot0 = 0,0,0,1 1837 | mir = 1,1,1 1838 | symMethod = Radial 1839 | istg = 1 1840 | dstg = 1 1841 | sidx = 0 1842 | sqor = 1 1843 | sepI = 1 1844 | attm = 0 1845 | modCost = 0 1846 | modMass = 0 1847 | modSize = (0.0, 0.0, 0.0) 1848 | link = fuelTank2-2_4294413486 1849 | attN = bottom,fuelTank2-2_4294413486 1850 | attN = top,HeatShield2_4294413856 1851 | EVENTS 1852 | { 1853 | } 1854 | ACTIONS 1855 | { 1856 | } 1857 | PARTDATA 1858 | { 1859 | } 1860 | MODULE 1861 | { 1862 | name = ModuleDecouple 1863 | isEnabled = True 1864 | ejectionForcePercent = 100 1865 | isDecoupled = False 1866 | stagingEnabled = True 1867 | ejectionForcePercent_UIFlight 1868 | { 1869 | controlEnabled = True 1870 | minValue = 0 1871 | maxValue = 100 1872 | stepIncrement = 1 1873 | } 1874 | EVENTS 1875 | { 1876 | Decouple 1877 | { 1878 | active = True 1879 | guiActive = True 1880 | guiActiveUncommand = False 1881 | guiIcon = Decouple 1882 | guiName = Decouple 1883 | category = Decouple 1884 | guiActiveUnfocused = False 1885 | unfocusedRange = 2 1886 | externalToEVAOnly = True 1887 | } 1888 | ToggleStaging 1889 | { 1890 | active = True 1891 | guiActive = False 1892 | guiActiveEditor = True 1893 | guiActiveUncommand = False 1894 | guiIcon = Disable Staging 1895 | guiName = Decoupler: Disable Staging 1896 | category = Disable Staging 1897 | guiActiveUnfocused = False 1898 | unfocusedRange = 2 1899 | externalToEVAOnly = True 1900 | } 1901 | } 1902 | ACTIONS 1903 | { 1904 | DecoupleAction 1905 | { 1906 | actionGroup = None 1907 | } 1908 | } 1909 | } 1910 | MODULE 1911 | { 1912 | name = ModuleToggleCrossfeed 1913 | isEnabled = True 1914 | crossfeedStatus = False 1915 | stagingEnabled = True 1916 | EVENTS 1917 | { 1918 | ToggleEvent 1919 | { 1920 | active = True 1921 | guiActive = True 1922 | guiActiveEditor = True 1923 | guiActiveUncommand = False 1924 | guiIcon = Disable Crossfeed 1925 | guiName = Enable Crossfeed 1926 | category = Disable Crossfeed 1927 | guiActiveUnfocused = False 1928 | unfocusedRange = 2 1929 | externalToEVAOnly = True 1930 | } 1931 | ToggleStaging 1932 | { 1933 | active = True 1934 | guiActive = False 1935 | guiActiveUncommand = False 1936 | guiIcon = Disable Staging 1937 | guiName = Disable Staging 1938 | category = Disable Staging 1939 | guiActiveUnfocused = False 1940 | unfocusedRange = 2 1941 | externalToEVAOnly = True 1942 | } 1943 | } 1944 | ACTIONS 1945 | { 1946 | ToggleAction 1947 | { 1948 | actionGroup = None 1949 | } 1950 | EnableAction 1951 | { 1952 | actionGroup = None 1953 | } 1954 | DisableAction 1955 | { 1956 | actionGroup = None 1957 | } 1958 | } 1959 | } 1960 | MODULE 1961 | { 1962 | name = ModuleTestSubject 1963 | isEnabled = True 1964 | stagingEnabled = True 1965 | EVENTS 1966 | { 1967 | RunTestEvent 1968 | { 1969 | active = False 1970 | guiActive = True 1971 | guiActiveUncommand = False 1972 | guiIcon = Run Test 1973 | guiName = Run Test 1974 | category = Run Test 1975 | guiActiveUnfocused = False 1976 | unfocusedRange = 2 1977 | externalToEVAOnly = True 1978 | } 1979 | ToggleStaging 1980 | { 1981 | active = True 1982 | guiActive = False 1983 | guiActiveUncommand = False 1984 | guiIcon = Disable Staging 1985 | guiName = Disable Staging 1986 | category = Disable Staging 1987 | guiActiveUnfocused = False 1988 | unfocusedRange = 2 1989 | externalToEVAOnly = True 1990 | } 1991 | } 1992 | ACTIONS 1993 | { 1994 | } 1995 | } 1996 | } 1997 | PART 1998 | { 1999 | part = fuelTank2-2_4294413486 2000 | partName = Part 2001 | pos = 1.534222E-05,30.64776,2.17253E-05 2002 | attPos = 0,0,0 2003 | attPos0 = 0,-1.0375,0 2004 | rot = 0,0,0,1 2005 | attRot = 0,0,0,1 2006 | attRot0 = 0,0,0,1 2007 | mir = 1,1,1 2008 | symMethod = Radial 2009 | istg = 2 2010 | dstg = 2 2011 | sidx = -1 2012 | sqor = -1 2013 | sepI = 1 2014 | attm = 0 2015 | modCost = 0 2016 | modMass = 0 2017 | modSize = (0.0, 0.0, 0.0) 2018 | link = largeSolarPanel_4294303950 2019 | link = largeSolarPanel_4294303630 2020 | link = fuelTank1-2_4293841844 2021 | attN = top,stackSeparatorBig_4294413532 2022 | attN = bottom,fuelTank1-2_4293841844 2023 | EVENTS 2024 | { 2025 | } 2026 | ACTIONS 2027 | { 2028 | } 2029 | PARTDATA 2030 | { 2031 | } 2032 | RESOURCE 2033 | { 2034 | name = LiquidFuel 2035 | amount = 720 2036 | maxAmount = 720 2037 | flowState = True 2038 | isTweakable = True 2039 | hideFlow = False 2040 | isVisible = True 2041 | flowMode = Both 2042 | } 2043 | RESOURCE 2044 | { 2045 | name = Oxidizer 2046 | amount = 880 2047 | maxAmount = 880 2048 | flowState = True 2049 | isTweakable = True 2050 | hideFlow = False 2051 | isVisible = True 2052 | flowMode = Both 2053 | } 2054 | } 2055 | PART 2056 | { 2057 | part = largeSolarPanel_4294303950 2058 | partName = Part 2059 | pos = 1.523658E-05,30.38511,-1.20832 2060 | attPos = 0,0,0 2061 | attPos0 = -1.056369E-07,-0.2626495,-1.208342 2062 | rot = -7.375697E-07,0.7071068,7.375697E-07,-0.7071068 2063 | attRot = 0,0,0,1 2064 | attRot0 = -7.375697E-07,0.7071068,7.375697E-07,-0.7071068 2065 | mir = 1,1,1 2066 | symMethod = Radial 2067 | istg = 2 2068 | dstg = 2 2069 | sidx = -1 2070 | sqor = -1 2071 | sepI = 1 2072 | attm = 1 2073 | modCost = 0 2074 | modMass = 0 2075 | modSize = (0.0, 0.0, 0.0) 2076 | sym = largeSolarPanel_4294303630 2077 | srfN = srfAttach,fuelTank2-2_4294413486 2078 | EVENTS 2079 | { 2080 | } 2081 | ACTIONS 2082 | { 2083 | } 2084 | PARTDATA 2085 | { 2086 | } 2087 | MODULE 2088 | { 2089 | name = ModuleDeployableSolarPanel 2090 | isEnabled = True 2091 | currentRotation = (0, 0, -0.7071068, 0.7071068) 2092 | stateString = RETRACTED 2093 | storedAnimationTime = 0 2094 | storedAnimationSpeed = 1 2095 | efficiencyMult = 1 2096 | launchUT = -1 2097 | stagingEnabled = True 2098 | EVENTS 2099 | { 2100 | Extend 2101 | { 2102 | active = True 2103 | guiActive = True 2104 | guiActiveEditor = True 2105 | guiActiveUncommand = False 2106 | guiIcon = Extend Panels 2107 | guiName = Extend Panels 2108 | category = Extend Panels 2109 | guiActiveUnfocused = True 2110 | unfocusedRange = 4 2111 | externalToEVAOnly = True 2112 | } 2113 | Retract 2114 | { 2115 | active = False 2116 | guiActive = True 2117 | guiActiveEditor = True 2118 | guiActiveUncommand = False 2119 | guiIcon = Retract Panels 2120 | guiName = Retract Panels 2121 | category = Retract Panels 2122 | guiActiveUnfocused = True 2123 | unfocusedRange = 4 2124 | externalToEVAOnly = True 2125 | } 2126 | ToggleStaging 2127 | { 2128 | active = True 2129 | guiActive = False 2130 | guiActiveUncommand = False 2131 | guiIcon = Disable Staging 2132 | guiName = Disable Staging 2133 | category = Disable Staging 2134 | guiActiveUnfocused = False 2135 | unfocusedRange = 2 2136 | externalToEVAOnly = True 2137 | } 2138 | } 2139 | ACTIONS 2140 | { 2141 | ExtendPanelsAction 2142 | { 2143 | actionGroup = None 2144 | } 2145 | ExtendAction 2146 | { 2147 | actionGroup = None 2148 | } 2149 | RetractAction 2150 | { 2151 | actionGroup = None 2152 | } 2153 | } 2154 | } 2155 | } 2156 | PART 2157 | { 2158 | part = largeSolarPanel_4294303630 2159 | partName = Part 2160 | pos = 1.555349E-05,30.38511,1.208364 2161 | attPos = 0,0,0 2162 | attPos0 = 2.112738E-07,-0.2626495,1.208342 2163 | rot = 7.375697E-07,-0.7071068,7.375696E-07,-0.7071068 2164 | attRot = 0,0,0,1 2165 | attRot0 = 7.375698E-07,-0.7071069,7.375697E-07,-0.7071068 2166 | mir = 1,1,1 2167 | symMethod = Radial 2168 | istg = 2 2169 | dstg = 2 2170 | sidx = -1 2171 | sqor = -1 2172 | sepI = 1 2173 | attm = 1 2174 | modCost = 0 2175 | modMass = 0 2176 | modSize = (0.0, 0.0, 0.0) 2177 | sym = largeSolarPanel_4294303950 2178 | srfN = srfAttach,fuelTank2-2_4294413486 2179 | EVENTS 2180 | { 2181 | } 2182 | ACTIONS 2183 | { 2184 | } 2185 | PARTDATA 2186 | { 2187 | } 2188 | MODULE 2189 | { 2190 | name = ModuleDeployableSolarPanel 2191 | isEnabled = True 2192 | currentRotation = (0, 0, -0.7071068, 0.7071068) 2193 | stateString = RETRACTED 2194 | storedAnimationTime = 0 2195 | storedAnimationSpeed = 1 2196 | efficiencyMult = 1 2197 | launchUT = -1 2198 | stagingEnabled = True 2199 | EVENTS 2200 | { 2201 | Extend 2202 | { 2203 | active = True 2204 | guiActive = True 2205 | guiActiveEditor = True 2206 | guiActiveUncommand = False 2207 | guiIcon = Extend Panels 2208 | guiName = Extend Panels 2209 | category = Extend Panels 2210 | guiActiveUnfocused = True 2211 | unfocusedRange = 4 2212 | externalToEVAOnly = True 2213 | } 2214 | Retract 2215 | { 2216 | active = False 2217 | guiActive = True 2218 | guiActiveEditor = True 2219 | guiActiveUncommand = False 2220 | guiIcon = Retract Panels 2221 | guiName = Retract Panels 2222 | category = Retract Panels 2223 | guiActiveUnfocused = True 2224 | unfocusedRange = 4 2225 | externalToEVAOnly = True 2226 | } 2227 | ToggleStaging 2228 | { 2229 | active = True 2230 | guiActive = False 2231 | guiActiveUncommand = False 2232 | guiIcon = Disable Staging 2233 | guiName = Disable Staging 2234 | category = Disable Staging 2235 | guiActiveUnfocused = False 2236 | unfocusedRange = 2 2237 | externalToEVAOnly = True 2238 | } 2239 | } 2240 | ACTIONS 2241 | { 2242 | ExtendPanelsAction 2243 | { 2244 | actionGroup = None 2245 | } 2246 | ExtendAction 2247 | { 2248 | actionGroup = None 2249 | } 2250 | RetractAction 2251 | { 2252 | actionGroup = None 2253 | } 2254 | } 2255 | } 2256 | } 2257 | PART 2258 | { 2259 | part = fuelTank1-2_4293841844 2260 | partName = Part 2261 | pos = 1.534222E-05,27.83526,2.17253E-05 2262 | attPos = 0,0,0 2263 | attPos0 = 0,-2.8125,0 2264 | rot = 0,0,0,1 2265 | attRot = 0,0,0,1 2266 | attRot0 = 0,0,0,1 2267 | mir = 1,1,1 2268 | symMethod = Radial 2269 | istg = 2 2270 | dstg = 2 2271 | sidx = -1 2272 | sqor = -1 2273 | sepI = 1 2274 | attm = 0 2275 | modCost = 0 2276 | modMass = 0 2277 | modSize = (0.0, 0.0, 0.0) 2278 | link = liquidEngine2-2_4294413456 2279 | link = strutConnector_4293650354 2280 | link = strutConnector_4293650280 2281 | attN = top,fuelTank2-2_4294413486 2282 | attN = bottom,liquidEngine2-2_4294413456 2283 | EVENTS 2284 | { 2285 | } 2286 | ACTIONS 2287 | { 2288 | } 2289 | PARTDATA 2290 | { 2291 | } 2292 | RESOURCE 2293 | { 2294 | name = LiquidFuel 2295 | amount = 1440 2296 | maxAmount = 1440 2297 | flowState = True 2298 | isTweakable = True 2299 | hideFlow = False 2300 | isVisible = True 2301 | flowMode = Both 2302 | } 2303 | RESOURCE 2304 | { 2305 | name = Oxidizer 2306 | amount = 1760 2307 | maxAmount = 1760 2308 | flowState = True 2309 | isTweakable = True 2310 | hideFlow = False 2311 | isVisible = True 2312 | flowMode = Both 2313 | } 2314 | } 2315 | PART 2316 | { 2317 | part = liquidEngine2-2_4294413456 2318 | partName = Part 2319 | pos = 1.534222E-05,25.23332,2.17253E-05 2320 | attPos = 0,0,0 2321 | attPos0 = 0,-2.60194,0 2322 | rot = 0,0,0,1 2323 | attRot = 0,0,0,1 2324 | attRot0 = 0,0,0,1 2325 | mir = 1,1,1 2326 | symMethod = Radial 2327 | istg = 2 2328 | dstg = 2 2329 | sidx = 0 2330 | sqor = 2 2331 | sepI = 1 2332 | attm = 0 2333 | modCost = 0 2334 | modMass = 0 2335 | modSize = (0.0, 0.0, 0.0) 2336 | link = stackSeparatorBig_4294413166 2337 | attN = top,fuelTank1-2_4293841844 2338 | attN = bottom,stackSeparatorBig_4294413166 2339 | EVENTS 2340 | { 2341 | } 2342 | ACTIONS 2343 | { 2344 | } 2345 | PARTDATA 2346 | { 2347 | } 2348 | MODULE 2349 | { 2350 | name = ModuleEngines 2351 | isEnabled = True 2352 | staged = False 2353 | flameout = False 2354 | EngineIgnited = False 2355 | engineShutdown = False 2356 | currentThrottle = 0 2357 | thrustPercentage = 100 2358 | manuallyOverridden = False 2359 | stagingEnabled = True 2360 | thrustPercentage_UIFlight 2361 | { 2362 | controlEnabled = True 2363 | minValue = 0 2364 | maxValue = 100 2365 | stepIncrement = 0.5 2366 | } 2367 | EVENTS 2368 | { 2369 | Activate 2370 | { 2371 | active = True 2372 | guiActive = True 2373 | guiActiveUncommand = False 2374 | guiIcon = Activate Engine 2375 | guiName = Activate Engine 2376 | category = Activate Engine 2377 | guiActiveUnfocused = False 2378 | unfocusedRange = 2 2379 | externalToEVAOnly = True 2380 | } 2381 | Shutdown 2382 | { 2383 | active = False 2384 | guiActive = True 2385 | guiActiveUncommand = False 2386 | guiIcon = Shutdown Engine 2387 | guiName = Shutdown Engine 2388 | category = Shutdown Engine 2389 | guiActiveUnfocused = False 2390 | unfocusedRange = 2 2391 | externalToEVAOnly = True 2392 | } 2393 | ToggleStaging 2394 | { 2395 | active = True 2396 | guiActive = False 2397 | guiActiveUncommand = False 2398 | guiIcon = Disable Staging 2399 | guiName = Disable Staging 2400 | category = Disable Staging 2401 | guiActiveUnfocused = False 2402 | unfocusedRange = 2 2403 | externalToEVAOnly = True 2404 | } 2405 | } 2406 | ACTIONS 2407 | { 2408 | OnAction 2409 | { 2410 | actionGroup = None 2411 | } 2412 | ShutdownAction 2413 | { 2414 | actionGroup = None 2415 | } 2416 | ActivateAction 2417 | { 2418 | actionGroup = None 2419 | } 2420 | } 2421 | } 2422 | MODULE 2423 | { 2424 | name = ModuleJettison 2425 | isEnabled = True 2426 | isJettisoned = False 2427 | shroudHideOverride = False 2428 | stagingEnabled = True 2429 | shroudHideOverride_UIFlight 2430 | { 2431 | controlEnabled = True 2432 | } 2433 | EVENTS 2434 | { 2435 | Jettison 2436 | { 2437 | active = False 2438 | guiActive = True 2439 | guiActiveUncommand = False 2440 | guiIcon = Jettison Shroud 2441 | guiName = Jettison Shroud 2442 | category = Jettison Shroud 2443 | guiActiveUnfocused = False 2444 | unfocusedRange = 2 2445 | externalToEVAOnly = True 2446 | } 2447 | ToggleStaging 2448 | { 2449 | active = True 2450 | guiActive = False 2451 | guiActiveUncommand = False 2452 | guiIcon = Disable Staging 2453 | guiName = Shroud: Disable Staging 2454 | category = Disable Staging 2455 | guiActiveUnfocused = False 2456 | unfocusedRange = 2 2457 | externalToEVAOnly = True 2458 | } 2459 | } 2460 | ACTIONS 2461 | { 2462 | JettisonAction 2463 | { 2464 | actionGroup = None 2465 | } 2466 | } 2467 | } 2468 | MODULE 2469 | { 2470 | name = ModuleGimbal 2471 | isEnabled = True 2472 | gimbalLock = False 2473 | gimbalLimiter = 100 2474 | currentShowToggles = False 2475 | enableYaw = True 2476 | enablePitch = True 2477 | enableRoll = True 2478 | gimbalActive = False 2479 | stagingEnabled = True 2480 | gimbalLock_UIFlight 2481 | { 2482 | controlEnabled = True 2483 | } 2484 | gimbalLimiter_UIFlight 2485 | { 2486 | controlEnabled = True 2487 | minValue = 0 2488 | maxValue = 100 2489 | stepIncrement = 1 2490 | } 2491 | enableYaw_UIFlight 2492 | { 2493 | controlEnabled = True 2494 | } 2495 | enablePitch_UIFlight 2496 | { 2497 | controlEnabled = True 2498 | } 2499 | enableRoll_UIFlight 2500 | { 2501 | controlEnabled = True 2502 | } 2503 | EVENTS 2504 | { 2505 | ToggleToggles 2506 | { 2507 | active = True 2508 | guiActive = True 2509 | guiActiveEditor = True 2510 | guiActiveUncommand = False 2511 | guiIcon = Actuation Toggles 2512 | guiName = Show Actuation Toggles 2513 | category = Actuation Toggles 2514 | guiActiveUnfocused = False 2515 | unfocusedRange = 2 2516 | externalToEVAOnly = True 2517 | } 2518 | ToggleStaging 2519 | { 2520 | active = True 2521 | guiActive = False 2522 | guiActiveUncommand = False 2523 | guiIcon = Disable Staging 2524 | guiName = Disable Staging 2525 | category = Disable Staging 2526 | guiActiveUnfocused = False 2527 | unfocusedRange = 2 2528 | externalToEVAOnly = True 2529 | } 2530 | } 2531 | ACTIONS 2532 | { 2533 | ToggleAction 2534 | { 2535 | actionGroup = None 2536 | } 2537 | LockAction 2538 | { 2539 | actionGroup = None 2540 | } 2541 | FreeAction 2542 | { 2543 | actionGroup = None 2544 | } 2545 | TogglePitchAction 2546 | { 2547 | actionGroup = None 2548 | } 2549 | ToggleYawAction 2550 | { 2551 | actionGroup = None 2552 | } 2553 | ToggleRollAction 2554 | { 2555 | actionGroup = None 2556 | } 2557 | } 2558 | } 2559 | MODULE 2560 | { 2561 | name = FXModuleAnimateThrottle 2562 | isEnabled = True 2563 | stagingEnabled = True 2564 | EVENTS 2565 | { 2566 | ToggleStaging 2567 | { 2568 | active = True 2569 | guiActive = False 2570 | guiActiveUncommand = False 2571 | guiIcon = Disable Staging 2572 | guiName = Disable Staging 2573 | category = Disable Staging 2574 | guiActiveUnfocused = False 2575 | unfocusedRange = 2 2576 | externalToEVAOnly = True 2577 | } 2578 | } 2579 | ACTIONS 2580 | { 2581 | } 2582 | } 2583 | MODULE 2584 | { 2585 | name = ModuleAlternator 2586 | isEnabled = True 2587 | stagingEnabled = True 2588 | EVENTS 2589 | { 2590 | ToggleStaging 2591 | { 2592 | active = True 2593 | guiActive = False 2594 | guiActiveUncommand = False 2595 | guiIcon = Disable Staging 2596 | guiName = Disable Staging 2597 | category = Disable Staging 2598 | guiActiveUnfocused = False 2599 | unfocusedRange = 2 2600 | externalToEVAOnly = True 2601 | } 2602 | } 2603 | ACTIONS 2604 | { 2605 | } 2606 | } 2607 | MODULE 2608 | { 2609 | name = ModuleTestSubject 2610 | isEnabled = True 2611 | stagingEnabled = True 2612 | EVENTS 2613 | { 2614 | RunTestEvent 2615 | { 2616 | active = False 2617 | guiActive = True 2618 | guiActiveUncommand = False 2619 | guiIcon = Run Test 2620 | guiName = Run Test 2621 | category = Run Test 2622 | guiActiveUnfocused = False 2623 | unfocusedRange = 2 2624 | externalToEVAOnly = True 2625 | } 2626 | ToggleStaging 2627 | { 2628 | active = True 2629 | guiActive = False 2630 | guiActiveUncommand = False 2631 | guiIcon = Disable Staging 2632 | guiName = Disable Staging 2633 | category = Disable Staging 2634 | guiActiveUnfocused = False 2635 | unfocusedRange = 2 2636 | externalToEVAOnly = True 2637 | } 2638 | } 2639 | ACTIONS 2640 | { 2641 | } 2642 | } 2643 | MODULE 2644 | { 2645 | name = ModuleSurfaceFX 2646 | isEnabled = True 2647 | stagingEnabled = True 2648 | EVENTS 2649 | { 2650 | ToggleStaging 2651 | { 2652 | active = True 2653 | guiActive = False 2654 | guiActiveUncommand = False 2655 | guiIcon = Disable Staging 2656 | guiName = Disable Staging 2657 | category = Disable Staging 2658 | guiActiveUnfocused = False 2659 | unfocusedRange = 2 2660 | externalToEVAOnly = True 2661 | } 2662 | } 2663 | ACTIONS 2664 | { 2665 | } 2666 | } 2667 | RESOURCE 2668 | { 2669 | name = ElectricCharge 2670 | amount = 0 2671 | maxAmount = 0.16 2672 | flowState = True 2673 | isTweakable = False 2674 | hideFlow = True 2675 | isVisible = False 2676 | flowMode = Both 2677 | } 2678 | } 2679 | PART 2680 | { 2681 | part = stackSeparatorBig_4294413166 2682 | partName = Part 2683 | pos = 1.534222E-05,24.39788,2.17253E-05 2684 | attPos = 0,0,0 2685 | attPos0 = 0,-0.8354359,0 2686 | rot = 0,0,0,1 2687 | attRot = 0,0,0,1 2688 | attRot0 = 0,0,0,1 2689 | mir = 1,1,1 2690 | symMethod = Radial 2691 | istg = 2 2692 | dstg = 3 2693 | sidx = 1 2694 | sqor = 2 2695 | sepI = 2 2696 | attm = 0 2697 | modCost = 0 2698 | modMass = 0 2699 | modSize = (0.0, 0.0, 0.0) 2700 | link = adapterMk3-Size2_4294413120 2701 | attN = bottom,adapterMk3-Size2_4294413120 2702 | attN = top,liquidEngine2-2_4294413456 2703 | EVENTS 2704 | { 2705 | } 2706 | ACTIONS 2707 | { 2708 | } 2709 | PARTDATA 2710 | { 2711 | } 2712 | MODULE 2713 | { 2714 | name = ModuleDecouple 2715 | isEnabled = True 2716 | ejectionForcePercent = 100 2717 | isDecoupled = False 2718 | stagingEnabled = True 2719 | ejectionForcePercent_UIFlight 2720 | { 2721 | controlEnabled = True 2722 | minValue = 0 2723 | maxValue = 100 2724 | stepIncrement = 1 2725 | } 2726 | EVENTS 2727 | { 2728 | Decouple 2729 | { 2730 | active = True 2731 | guiActive = True 2732 | guiActiveUncommand = False 2733 | guiIcon = Decouple 2734 | guiName = Decouple 2735 | category = Decouple 2736 | guiActiveUnfocused = False 2737 | unfocusedRange = 2 2738 | externalToEVAOnly = True 2739 | } 2740 | ToggleStaging 2741 | { 2742 | active = True 2743 | guiActive = False 2744 | guiActiveEditor = True 2745 | guiActiveUncommand = False 2746 | guiIcon = Disable Staging 2747 | guiName = Decoupler: Disable Staging 2748 | category = Disable Staging 2749 | guiActiveUnfocused = False 2750 | unfocusedRange = 2 2751 | externalToEVAOnly = True 2752 | } 2753 | } 2754 | ACTIONS 2755 | { 2756 | DecoupleAction 2757 | { 2758 | actionGroup = None 2759 | } 2760 | } 2761 | } 2762 | MODULE 2763 | { 2764 | name = ModuleToggleCrossfeed 2765 | isEnabled = True 2766 | crossfeedStatus = False 2767 | stagingEnabled = True 2768 | EVENTS 2769 | { 2770 | ToggleEvent 2771 | { 2772 | active = True 2773 | guiActive = True 2774 | guiActiveEditor = True 2775 | guiActiveUncommand = False 2776 | guiIcon = Disable Crossfeed 2777 | guiName = Enable Crossfeed 2778 | category = Disable Crossfeed 2779 | guiActiveUnfocused = False 2780 | unfocusedRange = 2 2781 | externalToEVAOnly = True 2782 | } 2783 | ToggleStaging 2784 | { 2785 | active = True 2786 | guiActive = False 2787 | guiActiveUncommand = False 2788 | guiIcon = Disable Staging 2789 | guiName = Disable Staging 2790 | category = Disable Staging 2791 | guiActiveUnfocused = False 2792 | unfocusedRange = 2 2793 | externalToEVAOnly = True 2794 | } 2795 | } 2796 | ACTIONS 2797 | { 2798 | ToggleAction 2799 | { 2800 | actionGroup = None 2801 | } 2802 | EnableAction 2803 | { 2804 | actionGroup = None 2805 | } 2806 | DisableAction 2807 | { 2808 | actionGroup = None 2809 | } 2810 | } 2811 | } 2812 | MODULE 2813 | { 2814 | name = ModuleTestSubject 2815 | isEnabled = True 2816 | stagingEnabled = True 2817 | EVENTS 2818 | { 2819 | RunTestEvent 2820 | { 2821 | active = False 2822 | guiActive = True 2823 | guiActiveUncommand = False 2824 | guiIcon = Run Test 2825 | guiName = Run Test 2826 | category = Run Test 2827 | guiActiveUnfocused = False 2828 | unfocusedRange = 2 2829 | externalToEVAOnly = True 2830 | } 2831 | ToggleStaging 2832 | { 2833 | active = True 2834 | guiActive = False 2835 | guiActiveUncommand = False 2836 | guiIcon = Disable Staging 2837 | guiName = Disable Staging 2838 | category = Disable Staging 2839 | guiActiveUnfocused = False 2840 | unfocusedRange = 2 2841 | externalToEVAOnly = True 2842 | } 2843 | } 2844 | ACTIONS 2845 | { 2846 | } 2847 | } 2848 | } 2849 | PART 2850 | { 2851 | part = adapterMk3-Size2_4294413120 2852 | partName = Part 2853 | pos = 1.534222E-05,22.42288,2.17253E-05 2854 | attPos = 0,0,0 2855 | attPos0 = 0,-1.975,0 2856 | rot = 0,0,0,1 2857 | attRot = 0,0,0,1 2858 | attRot0 = 0,0,0,1 2859 | mir = 1,1,1 2860 | symMethod = Radial 2861 | istg = 4 2862 | dstg = 4 2863 | sidx = -1 2864 | sqor = -1 2865 | sepI = 2 2866 | attm = 0 2867 | modCost = 0 2868 | modMass = 0 2869 | modSize = (0.0, 0.0, 0.0) 2870 | link = Size3LargeTank_4294413084 2871 | attN = top,stackSeparatorBig_4294413166 2872 | attN = bottom,Size3LargeTank_4294413084 2873 | EVENTS 2874 | { 2875 | } 2876 | ACTIONS 2877 | { 2878 | } 2879 | PARTDATA 2880 | { 2881 | } 2882 | RESOURCE 2883 | { 2884 | name = LiquidFuel 2885 | amount = 1125 2886 | maxAmount = 1125 2887 | flowState = True 2888 | isTweakable = True 2889 | hideFlow = False 2890 | isVisible = True 2891 | flowMode = Both 2892 | } 2893 | RESOURCE 2894 | { 2895 | name = Oxidizer 2896 | amount = 1375 2897 | maxAmount = 1375 2898 | flowState = True 2899 | isTweakable = True 2900 | hideFlow = False 2901 | isVisible = True 2902 | flowMode = Both 2903 | } 2904 | } 2905 | PART 2906 | { 2907 | part = Size3LargeTank_4294413084 2908 | partName = Part 2909 | pos = 1.534222E-05,16.80788,2.17253E-05 2910 | attPos = 0,0,0 2911 | attPos0 = 0,-5.615,0 2912 | rot = 0,0,0,1 2913 | attRot = 0,0,0,1 2914 | attRot0 = 0,0,0,1 2915 | mir = 1,1,1 2916 | symMethod = Radial 2917 | istg = 4 2918 | dstg = 4 2919 | sidx = -1 2920 | sqor = -1 2921 | sepI = 2 2922 | attm = 0 2923 | modCost = 0 2924 | modMass = 0 2925 | modSize = (0.0, 0.0, 0.0) 2926 | link = Size3EngineCluster_4294413050 2927 | link = radialDecoupler2_4294041592 2928 | link = radialDecoupler2_4293736924 2929 | attN = top,adapterMk3-Size2_4294413120 2930 | attN = bottom,Size3EngineCluster_4294413050 2931 | EVENTS 2932 | { 2933 | } 2934 | ACTIONS 2935 | { 2936 | } 2937 | PARTDATA 2938 | { 2939 | } 2940 | RESOURCE 2941 | { 2942 | name = LiquidFuel 2943 | amount = 6480 2944 | maxAmount = 6480 2945 | flowState = True 2946 | isTweakable = True 2947 | hideFlow = False 2948 | isVisible = True 2949 | flowMode = Both 2950 | } 2951 | RESOURCE 2952 | { 2953 | name = Oxidizer 2954 | amount = 7920 2955 | maxAmount = 7920 2956 | flowState = True 2957 | isTweakable = True 2958 | hideFlow = False 2959 | isVisible = True 2960 | flowMode = Both 2961 | } 2962 | } 2963 | PART 2964 | { 2965 | part = Size3EngineCluster_4294413050 2966 | partName = Part 2967 | pos = 1.534222E-05,11.54063,2.17253E-05 2968 | attPos = 0,0,0 2969 | attPos0 = 0,-5.267248,0 2970 | rot = 0,0,0,1 2971 | attRot = 0,0,0,1 2972 | attRot0 = 0,0,0,1 2973 | mir = 1,1,1 2974 | symMethod = Radial 2975 | istg = 4 2976 | dstg = 4 2977 | sidx = 1 2978 | sqor = 4 2979 | sepI = 2 2980 | attm = 0 2981 | modCost = 0 2982 | modMass = 0 2983 | modSize = (0.0, 0.0, 0.0) 2984 | attN = top,Size3LargeTank_4294413084 2985 | EVENTS 2986 | { 2987 | } 2988 | ACTIONS 2989 | { 2990 | } 2991 | PARTDATA 2992 | { 2993 | } 2994 | MODULE 2995 | { 2996 | name = ModuleEnginesFX 2997 | isEnabled = True 2998 | staged = False 2999 | flameout = False 3000 | EngineIgnited = False 3001 | engineShutdown = False 3002 | currentThrottle = 0 3003 | thrustPercentage = 100 3004 | manuallyOverridden = False 3005 | stagingEnabled = True 3006 | thrustPercentage_UIFlight 3007 | { 3008 | controlEnabled = True 3009 | minValue = 0 3010 | maxValue = 100 3011 | stepIncrement = 0.5 3012 | } 3013 | EVENTS 3014 | { 3015 | Activate 3016 | { 3017 | active = True 3018 | guiActive = True 3019 | guiActiveUncommand = False 3020 | guiIcon = Activate Engine 3021 | guiName = Activate Engine 3022 | category = Activate Engine 3023 | guiActiveUnfocused = False 3024 | unfocusedRange = 2 3025 | externalToEVAOnly = True 3026 | } 3027 | Shutdown 3028 | { 3029 | active = False 3030 | guiActive = True 3031 | guiActiveUncommand = False 3032 | guiIcon = Shutdown Engine 3033 | guiName = Shutdown Engine 3034 | category = Shutdown Engine 3035 | guiActiveUnfocused = False 3036 | unfocusedRange = 2 3037 | externalToEVAOnly = True 3038 | } 3039 | ToggleStaging 3040 | { 3041 | active = True 3042 | guiActive = False 3043 | guiActiveUncommand = False 3044 | guiIcon = Disable Staging 3045 | guiName = Disable Staging 3046 | category = Disable Staging 3047 | guiActiveUnfocused = False 3048 | unfocusedRange = 2 3049 | externalToEVAOnly = True 3050 | } 3051 | } 3052 | ACTIONS 3053 | { 3054 | OnAction 3055 | { 3056 | actionGroup = None 3057 | } 3058 | ShutdownAction 3059 | { 3060 | actionGroup = None 3061 | } 3062 | ActivateAction 3063 | { 3064 | actionGroup = None 3065 | } 3066 | } 3067 | } 3068 | MODULE 3069 | { 3070 | name = ModuleAlternator 3071 | isEnabled = True 3072 | stagingEnabled = True 3073 | EVENTS 3074 | { 3075 | ToggleStaging 3076 | { 3077 | active = True 3078 | guiActive = False 3079 | guiActiveUncommand = False 3080 | guiIcon = Disable Staging 3081 | guiName = Disable Staging 3082 | category = Disable Staging 3083 | guiActiveUnfocused = False 3084 | unfocusedRange = 2 3085 | externalToEVAOnly = True 3086 | } 3087 | } 3088 | ACTIONS 3089 | { 3090 | } 3091 | } 3092 | MODULE 3093 | { 3094 | name = ModuleGimbal 3095 | isEnabled = True 3096 | gimbalLock = False 3097 | gimbalLimiter = 100 3098 | currentShowToggles = False 3099 | enableYaw = True 3100 | enablePitch = True 3101 | enableRoll = True 3102 | gimbalActive = False 3103 | stagingEnabled = True 3104 | gimbalLock_UIFlight 3105 | { 3106 | controlEnabled = True 3107 | } 3108 | gimbalLimiter_UIFlight 3109 | { 3110 | controlEnabled = True 3111 | minValue = 0 3112 | maxValue = 100 3113 | stepIncrement = 1 3114 | } 3115 | enableYaw_UIFlight 3116 | { 3117 | controlEnabled = True 3118 | } 3119 | enablePitch_UIFlight 3120 | { 3121 | controlEnabled = True 3122 | } 3123 | enableRoll_UIFlight 3124 | { 3125 | controlEnabled = True 3126 | } 3127 | EVENTS 3128 | { 3129 | ToggleToggles 3130 | { 3131 | active = True 3132 | guiActive = True 3133 | guiActiveEditor = True 3134 | guiActiveUncommand = False 3135 | guiIcon = Actuation Toggles 3136 | guiName = Show Actuation Toggles 3137 | category = Actuation Toggles 3138 | guiActiveUnfocused = False 3139 | unfocusedRange = 2 3140 | externalToEVAOnly = True 3141 | } 3142 | ToggleStaging 3143 | { 3144 | active = True 3145 | guiActive = False 3146 | guiActiveUncommand = False 3147 | guiIcon = Disable Staging 3148 | guiName = Disable Staging 3149 | category = Disable Staging 3150 | guiActiveUnfocused = False 3151 | unfocusedRange = 2 3152 | externalToEVAOnly = True 3153 | } 3154 | } 3155 | ACTIONS 3156 | { 3157 | ToggleAction 3158 | { 3159 | actionGroup = None 3160 | } 3161 | LockAction 3162 | { 3163 | actionGroup = None 3164 | } 3165 | FreeAction 3166 | { 3167 | actionGroup = None 3168 | } 3169 | TogglePitchAction 3170 | { 3171 | actionGroup = None 3172 | } 3173 | ToggleYawAction 3174 | { 3175 | actionGroup = None 3176 | } 3177 | ToggleRollAction 3178 | { 3179 | actionGroup = None 3180 | } 3181 | } 3182 | } 3183 | MODULE 3184 | { 3185 | name = FXModuleAnimateThrottle 3186 | isEnabled = True 3187 | stagingEnabled = True 3188 | EVENTS 3189 | { 3190 | ToggleStaging 3191 | { 3192 | active = True 3193 | guiActive = False 3194 | guiActiveUncommand = False 3195 | guiIcon = Disable Staging 3196 | guiName = Disable Staging 3197 | category = Disable Staging 3198 | guiActiveUnfocused = False 3199 | unfocusedRange = 2 3200 | externalToEVAOnly = True 3201 | } 3202 | } 3203 | ACTIONS 3204 | { 3205 | } 3206 | } 3207 | MODULE 3208 | { 3209 | name = ModuleTestSubject 3210 | isEnabled = True 3211 | stagingEnabled = True 3212 | EVENTS 3213 | { 3214 | RunTestEvent 3215 | { 3216 | active = False 3217 | guiActive = True 3218 | guiActiveUncommand = False 3219 | guiIcon = Run Test 3220 | guiName = Run Test 3221 | category = Run Test 3222 | guiActiveUnfocused = False 3223 | unfocusedRange = 2 3224 | externalToEVAOnly = True 3225 | } 3226 | ToggleStaging 3227 | { 3228 | active = True 3229 | guiActive = False 3230 | guiActiveUncommand = False 3231 | guiIcon = Disable Staging 3232 | guiName = Disable Staging 3233 | category = Disable Staging 3234 | guiActiveUnfocused = False 3235 | unfocusedRange = 2 3236 | externalToEVAOnly = True 3237 | } 3238 | } 3239 | ACTIONS 3240 | { 3241 | } 3242 | } 3243 | MODULE 3244 | { 3245 | name = ModuleSurfaceFX 3246 | isEnabled = True 3247 | stagingEnabled = True 3248 | EVENTS 3249 | { 3250 | ToggleStaging 3251 | { 3252 | active = True 3253 | guiActive = False 3254 | guiActiveUncommand = False 3255 | guiIcon = Disable Staging 3256 | guiName = Disable Staging 3257 | category = Disable Staging 3258 | guiActiveUnfocused = False 3259 | unfocusedRange = 2 3260 | externalToEVAOnly = True 3261 | } 3262 | } 3263 | ACTIONS 3264 | { 3265 | } 3266 | } 3267 | RESOURCE 3268 | { 3269 | name = ElectricCharge 3270 | amount = 0 3271 | maxAmount = 0.24 3272 | flowState = True 3273 | isTweakable = False 3274 | hideFlow = True 3275 | isVisible = False 3276 | flowMode = Both 3277 | } 3278 | } 3279 | PART 3280 | { 3281 | part = radialDecoupler2_4294041592 3282 | partName = Part 3283 | pos = 1.549412E-05,13.67331,-1.830212 3284 | attPos = 0,0,0 3285 | attPos0 = 1.518983E-07,-3.134571,-1.830234 3286 | rot = 1.253586E-07,0.7071068,-1.253586E-07,-0.7071068 3287 | attRot = 0,0,0,1 3288 | attRot0 = 1.253586E-07,0.7071069,-1.253586E-07,-0.7071068 3289 | mir = 1,1,1 3290 | symMethod = Radial 3291 | istg = 3 3292 | dstg = 5 3293 | sidx = 0 3294 | sqor = 3 3295 | sepI = 3 3296 | attm = 1 3297 | modCost = 0 3298 | modMass = 0 3299 | modSize = (0.0, 0.0, 0.0) 3300 | link = solidBooster_4293362440 3301 | sym = radialDecoupler2_4293736924 3302 | srfN = srfAttach,Size3LargeTank_4294413084 3303 | EVENTS 3304 | { 3305 | } 3306 | ACTIONS 3307 | { 3308 | } 3309 | PARTDATA 3310 | { 3311 | } 3312 | MODULE 3313 | { 3314 | name = ModuleAnchoredDecoupler 3315 | isEnabled = True 3316 | ejectionForcePercent = 100 3317 | isDecoupled = False 3318 | stagingEnabled = True 3319 | ejectionForcePercent_UIFlight 3320 | { 3321 | controlEnabled = True 3322 | minValue = 0 3323 | maxValue = 100 3324 | stepIncrement = 1 3325 | } 3326 | EVENTS 3327 | { 3328 | Decouple 3329 | { 3330 | active = True 3331 | guiActive = True 3332 | guiActiveUncommand = False 3333 | guiIcon = Decouple 3334 | guiName = Decouple 3335 | category = Decouple 3336 | guiActiveUnfocused = False 3337 | unfocusedRange = 2 3338 | externalToEVAOnly = True 3339 | } 3340 | ToggleStaging 3341 | { 3342 | active = True 3343 | guiActive = False 3344 | guiActiveEditor = True 3345 | guiActiveUncommand = False 3346 | guiIcon = Disable Staging 3347 | guiName = Decoupler: Disable Staging 3348 | category = Disable Staging 3349 | guiActiveUnfocused = False 3350 | unfocusedRange = 2 3351 | externalToEVAOnly = True 3352 | } 3353 | } 3354 | ACTIONS 3355 | { 3356 | DecoupleAction 3357 | { 3358 | actionGroup = None 3359 | } 3360 | } 3361 | } 3362 | MODULE 3363 | { 3364 | name = ModuleToggleCrossfeed 3365 | isEnabled = True 3366 | crossfeedStatus = False 3367 | stagingEnabled = True 3368 | EVENTS 3369 | { 3370 | ToggleEvent 3371 | { 3372 | active = True 3373 | guiActive = True 3374 | guiActiveEditor = True 3375 | guiActiveUncommand = False 3376 | guiIcon = Disable Crossfeed 3377 | guiName = Enable Crossfeed 3378 | category = Disable Crossfeed 3379 | guiActiveUnfocused = False 3380 | unfocusedRange = 2 3381 | externalToEVAOnly = True 3382 | } 3383 | ToggleStaging 3384 | { 3385 | active = True 3386 | guiActive = False 3387 | guiActiveUncommand = False 3388 | guiIcon = Disable Staging 3389 | guiName = Disable Staging 3390 | category = Disable Staging 3391 | guiActiveUnfocused = False 3392 | unfocusedRange = 2 3393 | externalToEVAOnly = True 3394 | } 3395 | } 3396 | ACTIONS 3397 | { 3398 | ToggleAction 3399 | { 3400 | actionGroup = None 3401 | } 3402 | EnableAction 3403 | { 3404 | actionGroup = None 3405 | } 3406 | DisableAction 3407 | { 3408 | actionGroup = None 3409 | } 3410 | } 3411 | } 3412 | MODULE 3413 | { 3414 | name = ModuleTestSubject 3415 | isEnabled = True 3416 | stagingEnabled = True 3417 | EVENTS 3418 | { 3419 | RunTestEvent 3420 | { 3421 | active = False 3422 | guiActive = True 3423 | guiActiveUncommand = False 3424 | guiIcon = Run Test 3425 | guiName = Run Test 3426 | category = Run Test 3427 | guiActiveUnfocused = False 3428 | unfocusedRange = 2 3429 | externalToEVAOnly = True 3430 | } 3431 | ToggleStaging 3432 | { 3433 | active = True 3434 | guiActive = False 3435 | guiActiveUncommand = False 3436 | guiIcon = Disable Staging 3437 | guiName = Disable Staging 3438 | category = Disable Staging 3439 | guiActiveUnfocused = False 3440 | unfocusedRange = 2 3441 | externalToEVAOnly = True 3442 | } 3443 | } 3444 | ACTIONS 3445 | { 3446 | } 3447 | } 3448 | } 3449 | PART 3450 | { 3451 | part = radialDecoupler2_4293736924 3452 | partName = Part 3453 | pos = 1.535033E-05,13.67331,1.830255 3454 | attPos = 0,0,0 3455 | attPos0 = 8.105417E-09,-3.134571,1.830234 3456 | rot = -1.253586E-07,-0.7071068,-1.253586E-07,-0.7071068 3457 | attRot = 0,0,0,1 3458 | attRot0 = -1.253586E-07,-0.7071068,-1.253586E-07,-0.7071068 3459 | mir = 1,1,1 3460 | symMethod = Radial 3461 | istg = 3 3462 | dstg = 5 3463 | sidx = 0 3464 | sqor = 3 3465 | sepI = 3 3466 | attm = 1 3467 | modCost = 0 3468 | modMass = 0 3469 | modSize = (0.0, 0.0, 0.0) 3470 | link = solidBooster_4293360216 3471 | sym = radialDecoupler2_4294041592 3472 | srfN = srfAttach,Size3LargeTank_4294413084 3473 | EVENTS 3474 | { 3475 | } 3476 | ACTIONS 3477 | { 3478 | } 3479 | PARTDATA 3480 | { 3481 | } 3482 | MODULE 3483 | { 3484 | name = ModuleAnchoredDecoupler 3485 | isEnabled = True 3486 | ejectionForcePercent = 100 3487 | isDecoupled = False 3488 | stagingEnabled = True 3489 | ejectionForcePercent_UIFlight 3490 | { 3491 | controlEnabled = True 3492 | minValue = 0 3493 | maxValue = 100 3494 | stepIncrement = 1 3495 | } 3496 | EVENTS 3497 | { 3498 | Decouple 3499 | { 3500 | active = True 3501 | guiActive = True 3502 | guiActiveUncommand = False 3503 | guiIcon = Decouple 3504 | guiName = Decouple 3505 | category = Decouple 3506 | guiActiveUnfocused = False 3507 | unfocusedRange = 2 3508 | externalToEVAOnly = True 3509 | } 3510 | ToggleStaging 3511 | { 3512 | active = True 3513 | guiActive = False 3514 | guiActiveEditor = True 3515 | guiActiveUncommand = False 3516 | guiIcon = Disable Staging 3517 | guiName = Decoupler: Disable Staging 3518 | category = Disable Staging 3519 | guiActiveUnfocused = False 3520 | unfocusedRange = 2 3521 | externalToEVAOnly = True 3522 | } 3523 | } 3524 | ACTIONS 3525 | { 3526 | DecoupleAction 3527 | { 3528 | actionGroup = None 3529 | } 3530 | } 3531 | } 3532 | MODULE 3533 | { 3534 | name = ModuleToggleCrossfeed 3535 | isEnabled = True 3536 | crossfeedStatus = False 3537 | stagingEnabled = True 3538 | EVENTS 3539 | { 3540 | ToggleEvent 3541 | { 3542 | active = True 3543 | guiActive = True 3544 | guiActiveEditor = True 3545 | guiActiveUncommand = False 3546 | guiIcon = Disable Crossfeed 3547 | guiName = Enable Crossfeed 3548 | category = Disable Crossfeed 3549 | guiActiveUnfocused = False 3550 | unfocusedRange = 2 3551 | externalToEVAOnly = True 3552 | } 3553 | ToggleStaging 3554 | { 3555 | active = True 3556 | guiActive = False 3557 | guiActiveUncommand = False 3558 | guiIcon = Disable Staging 3559 | guiName = Disable Staging 3560 | category = Disable Staging 3561 | guiActiveUnfocused = False 3562 | unfocusedRange = 2 3563 | externalToEVAOnly = True 3564 | } 3565 | } 3566 | ACTIONS 3567 | { 3568 | ToggleAction 3569 | { 3570 | actionGroup = None 3571 | } 3572 | EnableAction 3573 | { 3574 | actionGroup = None 3575 | } 3576 | DisableAction 3577 | { 3578 | actionGroup = None 3579 | } 3580 | } 3581 | } 3582 | MODULE 3583 | { 3584 | name = ModuleTestSubject 3585 | isEnabled = True 3586 | stagingEnabled = True 3587 | EVENTS 3588 | { 3589 | RunTestEvent 3590 | { 3591 | active = False 3592 | guiActive = True 3593 | guiActiveUncommand = False 3594 | guiIcon = Run Test 3595 | guiName = Run Test 3596 | category = Run Test 3597 | guiActiveUnfocused = False 3598 | unfocusedRange = 2 3599 | externalToEVAOnly = True 3600 | } 3601 | ToggleStaging 3602 | { 3603 | active = True 3604 | guiActive = False 3605 | guiActiveUncommand = False 3606 | guiIcon = Disable Staging 3607 | guiName = Disable Staging 3608 | category = Disable Staging 3609 | guiActiveUnfocused = False 3610 | unfocusedRange = 2 3611 | externalToEVAOnly = True 3612 | } 3613 | } 3614 | ACTIONS 3615 | { 3616 | } 3617 | } 3618 | } 3619 | PART 3620 | { 3621 | part = strutConnector_4293650354 3622 | partName = CompoundPart 3623 | pos = 1.534222E-05,26.22667,1.207574 3624 | attPos = 0,0,0 3625 | attPos0 = 0,-1.608593,1.207552 3626 | rot = 7.797169E-07,0.7071068,7.797169E-07,0.7071068 3627 | attRot = 0,0,0,1 3628 | attRot0 = 7.797169E-07,0.7071068,7.797169E-07,0.7071068 3629 | mir = 1,1,1 3630 | symMethod = Radial 3631 | istg = 2 3632 | dstg = 2 3633 | sidx = -1 3634 | sqor = -1 3635 | sepI = 1 3636 | attm = 1 3637 | modCost = 0 3638 | modMass = 0 3639 | modSize = (0.0, 0.0, 0.0) 3640 | sym = strutConnector_4293650280 3641 | srfN = srfAttach,fuelTank1-2_4293841844 3642 | EVENTS 3643 | { 3644 | } 3645 | ACTIONS 3646 | { 3647 | } 3648 | PARTDATA 3649 | { 3650 | tgt = 4294413120 3651 | pos = -0.2913035,-3.648147,0.0254638 3652 | rot = 7.72621E-13,7.006914E-07,0.9964779,0.08385703 3653 | dir = -0.07959444,-0.996803,0.006957612 3654 | } 3655 | MODULE 3656 | { 3657 | name = CModuleLinkedMesh 3658 | isEnabled = True 3659 | stagingEnabled = True 3660 | EVENTS 3661 | { 3662 | ToggleStaging 3663 | { 3664 | active = True 3665 | guiActive = False 3666 | guiActiveUncommand = False 3667 | guiIcon = Disable Staging 3668 | guiName = Disable Staging 3669 | category = Disable Staging 3670 | guiActiveUnfocused = False 3671 | unfocusedRange = 2 3672 | externalToEVAOnly = True 3673 | } 3674 | } 3675 | ACTIONS 3676 | { 3677 | } 3678 | } 3679 | MODULE 3680 | { 3681 | name = CModuleStrut 3682 | isEnabled = True 3683 | stagingEnabled = True 3684 | EVENTS 3685 | { 3686 | ToggleStaging 3687 | { 3688 | active = True 3689 | guiActive = False 3690 | guiActiveUncommand = False 3691 | guiIcon = Disable Staging 3692 | guiName = Disable Staging 3693 | category = Disable Staging 3694 | guiActiveUnfocused = False 3695 | unfocusedRange = 2 3696 | externalToEVAOnly = True 3697 | } 3698 | } 3699 | ACTIONS 3700 | { 3701 | } 3702 | } 3703 | } 3704 | PART 3705 | { 3706 | part = strutConnector_4293650280 3707 | partName = CompoundPart 3708 | pos = 1.523665E-05,26.22667,-1.20753 3709 | attPos = 0,0,0 3710 | attPos0 = -1.055678E-07,-1.608593,-1.207552 3711 | rot = 7.797167E-07,0.7071068,-7.797168E-07,-0.7071068 3712 | attRot = 0,0,0,1 3713 | attRot0 = 7.797168E-07,0.7071068,-7.797169E-07,-0.7071069 3714 | mir = 1,1,1 3715 | symMethod = Radial 3716 | istg = 2 3717 | dstg = 2 3718 | sidx = -1 3719 | sqor = -1 3720 | sepI = 1 3721 | attm = 1 3722 | modCost = 0 3723 | modMass = 0 3724 | modSize = (0.0, 0.0, 0.0) 3725 | sym = strutConnector_4293650354 3726 | srfN = srfAttach,fuelTank1-2_4293841844 3727 | EVENTS 3728 | { 3729 | } 3730 | ACTIONS 3731 | { 3732 | } 3733 | PARTDATA 3734 | { 3735 | tgt = 4294413120 3736 | pos = -0.2912879,-3.648057,0.02546317 3737 | rot = 3.79555E-13,3.503458E-07,0.9964779,0.08385666 3738 | dir = -0.07959214,-0.9968032,0.006957612 3739 | } 3740 | MODULE 3741 | { 3742 | name = CModuleLinkedMesh 3743 | isEnabled = True 3744 | stagingEnabled = True 3745 | EVENTS 3746 | { 3747 | ToggleStaging 3748 | { 3749 | active = True 3750 | guiActive = False 3751 | guiActiveUncommand = False 3752 | guiIcon = Disable Staging 3753 | guiName = Disable Staging 3754 | category = Disable Staging 3755 | guiActiveUnfocused = False 3756 | unfocusedRange = 2 3757 | externalToEVAOnly = True 3758 | } 3759 | } 3760 | ACTIONS 3761 | { 3762 | } 3763 | } 3764 | MODULE 3765 | { 3766 | name = CModuleStrut 3767 | isEnabled = True 3768 | stagingEnabled = True 3769 | EVENTS 3770 | { 3771 | ToggleStaging 3772 | { 3773 | active = True 3774 | guiActive = False 3775 | guiActiveUncommand = False 3776 | guiIcon = Disable Staging 3777 | guiName = Disable Staging 3778 | category = Disable Staging 3779 | guiActiveUnfocused = False 3780 | unfocusedRange = 2 3781 | externalToEVAOnly = True 3782 | } 3783 | } 3784 | ACTIONS 3785 | { 3786 | } 3787 | } 3788 | } 3789 | PART 3790 | { 3791 | part = solidBooster_4293362440 3792 | partName = Part 3793 | pos = 1.555745E-05,13.72787,-3.075742 3794 | attPos = 0,0,0 3795 | attPos0 = -1.24553,0.05456206,8.514883E-08 3796 | rot = 0,1,-2.980232E-07,1.070257E-14 3797 | attRot = 0,0,0,1 3798 | attRot0 = 8.537562E-08,-0.7071068,8.537562E-08,0.7071068 3799 | mir = 1,1,1 3800 | symMethod = Radial 3801 | istg = 4 3802 | dstg = 6 3803 | sidx = 0 3804 | sqor = 4 3805 | sepI = 3 3806 | attm = 1 3807 | modCost = 0 3808 | modMass = 0 3809 | modSize = (0.0, 0.0, 0.0) 3810 | link = noseCone_4293347104 3811 | sym = solidBooster_4293360216 3812 | srfN = srfAttach,radialDecoupler2_4294041592 3813 | attN = top,noseCone_4293347104 3814 | EVENTS 3815 | { 3816 | } 3817 | ACTIONS 3818 | { 3819 | } 3820 | PARTDATA 3821 | { 3822 | } 3823 | MODULE 3824 | { 3825 | name = ModuleEngines 3826 | isEnabled = True 3827 | staged = False 3828 | flameout = False 3829 | EngineIgnited = False 3830 | engineShutdown = False 3831 | currentThrottle = 0 3832 | thrustPercentage = 100 3833 | manuallyOverridden = False 3834 | stagingEnabled = True 3835 | thrustPercentage_UIFlight 3836 | { 3837 | controlEnabled = True 3838 | minValue = 0 3839 | maxValue = 100 3840 | stepIncrement = 0.5 3841 | } 3842 | EVENTS 3843 | { 3844 | Activate 3845 | { 3846 | active = True 3847 | guiActive = True 3848 | guiActiveUncommand = False 3849 | guiIcon = Activate Engine 3850 | guiName = Activate Engine 3851 | category = Activate Engine 3852 | guiActiveUnfocused = False 3853 | unfocusedRange = 2 3854 | externalToEVAOnly = True 3855 | } 3856 | Shutdown 3857 | { 3858 | active = False 3859 | guiActive = True 3860 | guiActiveUncommand = False 3861 | guiIcon = Shutdown Engine 3862 | guiName = Shutdown Engine 3863 | category = Shutdown Engine 3864 | guiActiveUnfocused = False 3865 | unfocusedRange = 2 3866 | externalToEVAOnly = True 3867 | } 3868 | ToggleStaging 3869 | { 3870 | active = True 3871 | guiActive = False 3872 | guiActiveUncommand = False 3873 | guiIcon = Disable Staging 3874 | guiName = Disable Staging 3875 | category = Disable Staging 3876 | guiActiveUnfocused = False 3877 | unfocusedRange = 2 3878 | externalToEVAOnly = True 3879 | } 3880 | } 3881 | ACTIONS 3882 | { 3883 | OnAction 3884 | { 3885 | actionGroup = None 3886 | } 3887 | ShutdownAction 3888 | { 3889 | actionGroup = None 3890 | } 3891 | ActivateAction 3892 | { 3893 | actionGroup = None 3894 | } 3895 | } 3896 | } 3897 | MODULE 3898 | { 3899 | name = FXModuleAnimateThrottle 3900 | isEnabled = True 3901 | stagingEnabled = True 3902 | EVENTS 3903 | { 3904 | ToggleStaging 3905 | { 3906 | active = True 3907 | guiActive = False 3908 | guiActiveUncommand = False 3909 | guiIcon = Disable Staging 3910 | guiName = Disable Staging 3911 | category = Disable Staging 3912 | guiActiveUnfocused = False 3913 | unfocusedRange = 2 3914 | externalToEVAOnly = True 3915 | } 3916 | } 3917 | ACTIONS 3918 | { 3919 | } 3920 | } 3921 | MODULE 3922 | { 3923 | name = ModuleTestSubject 3924 | isEnabled = True 3925 | stagingEnabled = True 3926 | EVENTS 3927 | { 3928 | RunTestEvent 3929 | { 3930 | active = False 3931 | guiActive = True 3932 | guiActiveUncommand = False 3933 | guiIcon = Run Test 3934 | guiName = Run Test 3935 | category = Run Test 3936 | guiActiveUnfocused = False 3937 | unfocusedRange = 2 3938 | externalToEVAOnly = True 3939 | } 3940 | ToggleStaging 3941 | { 3942 | active = True 3943 | guiActive = False 3944 | guiActiveUncommand = False 3945 | guiIcon = Disable Staging 3946 | guiName = Disable Staging 3947 | category = Disable Staging 3948 | guiActiveUnfocused = False 3949 | unfocusedRange = 2 3950 | externalToEVAOnly = True 3951 | } 3952 | } 3953 | ACTIONS 3954 | { 3955 | } 3956 | } 3957 | MODULE 3958 | { 3959 | name = ModuleSurfaceFX 3960 | isEnabled = True 3961 | stagingEnabled = True 3962 | EVENTS 3963 | { 3964 | ToggleStaging 3965 | { 3966 | active = True 3967 | guiActive = False 3968 | guiActiveUncommand = False 3969 | guiIcon = Disable Staging 3970 | guiName = Disable Staging 3971 | category = Disable Staging 3972 | guiActiveUnfocused = False 3973 | unfocusedRange = 2 3974 | externalToEVAOnly = True 3975 | } 3976 | } 3977 | ACTIONS 3978 | { 3979 | } 3980 | } 3981 | RESOURCE 3982 | { 3983 | name = SolidFuel 3984 | amount = 375 3985 | maxAmount = 375 3986 | flowState = True 3987 | isTweakable = True 3988 | hideFlow = False 3989 | isVisible = True 3990 | flowMode = Both 3991 | } 3992 | } 3993 | PART 3994 | { 3995 | part = solidBooster_4293360216 3996 | partName = Part 3997 | pos = 1.558396E-05,13.72787,3.075786 3998 | attPos = 0,0,0 3999 | attPos0 = -1.24553,0.05456206,8.51486E-08 4000 | rot = -2.980232E-07,0,7.105427E-15,-1 4001 | attRot = 0,0,0,1 4002 | attRot0 = 8.537562E-08,-0.7071068,8.537562E-08,0.7071068 4003 | mir = 1,1,1 4004 | symMethod = Radial 4005 | istg = 4 4006 | dstg = 6 4007 | sidx = 0 4008 | sqor = 4 4009 | sepI = 3 4010 | attm = 1 4011 | modCost = 0 4012 | modMass = 0 4013 | modSize = (0.0, 0.0, 0.0) 4014 | link = noseCone_4293346176 4015 | sym = solidBooster_4293362440 4016 | srfN = srfAttach,radialDecoupler2_4293736924 4017 | attN = top,noseCone_4293346176 4018 | EVENTS 4019 | { 4020 | } 4021 | ACTIONS 4022 | { 4023 | } 4024 | PARTDATA 4025 | { 4026 | } 4027 | MODULE 4028 | { 4029 | name = ModuleEngines 4030 | isEnabled = True 4031 | staged = False 4032 | flameout = False 4033 | EngineIgnited = False 4034 | engineShutdown = False 4035 | currentThrottle = 0 4036 | thrustPercentage = 100 4037 | manuallyOverridden = False 4038 | stagingEnabled = True 4039 | thrustPercentage_UIFlight 4040 | { 4041 | controlEnabled = True 4042 | minValue = 0 4043 | maxValue = 100 4044 | stepIncrement = 0.5 4045 | } 4046 | EVENTS 4047 | { 4048 | Activate 4049 | { 4050 | active = True 4051 | guiActive = True 4052 | guiActiveUncommand = False 4053 | guiIcon = Activate Engine 4054 | guiName = Activate Engine 4055 | category = Activate Engine 4056 | guiActiveUnfocused = False 4057 | unfocusedRange = 2 4058 | externalToEVAOnly = True 4059 | } 4060 | Shutdown 4061 | { 4062 | active = False 4063 | guiActive = True 4064 | guiActiveUncommand = False 4065 | guiIcon = Shutdown Engine 4066 | guiName = Shutdown Engine 4067 | category = Shutdown Engine 4068 | guiActiveUnfocused = False 4069 | unfocusedRange = 2 4070 | externalToEVAOnly = True 4071 | } 4072 | ToggleStaging 4073 | { 4074 | active = True 4075 | guiActive = False 4076 | guiActiveUncommand = False 4077 | guiIcon = Disable Staging 4078 | guiName = Disable Staging 4079 | category = Disable Staging 4080 | guiActiveUnfocused = False 4081 | unfocusedRange = 2 4082 | externalToEVAOnly = True 4083 | } 4084 | } 4085 | ACTIONS 4086 | { 4087 | OnAction 4088 | { 4089 | actionGroup = None 4090 | } 4091 | ShutdownAction 4092 | { 4093 | actionGroup = None 4094 | } 4095 | ActivateAction 4096 | { 4097 | actionGroup = None 4098 | } 4099 | } 4100 | } 4101 | MODULE 4102 | { 4103 | name = FXModuleAnimateThrottle 4104 | isEnabled = True 4105 | stagingEnabled = True 4106 | EVENTS 4107 | { 4108 | ToggleStaging 4109 | { 4110 | active = True 4111 | guiActive = False 4112 | guiActiveUncommand = False 4113 | guiIcon = Disable Staging 4114 | guiName = Disable Staging 4115 | category = Disable Staging 4116 | guiActiveUnfocused = False 4117 | unfocusedRange = 2 4118 | externalToEVAOnly = True 4119 | } 4120 | } 4121 | ACTIONS 4122 | { 4123 | } 4124 | } 4125 | MODULE 4126 | { 4127 | name = ModuleTestSubject 4128 | isEnabled = True 4129 | stagingEnabled = True 4130 | EVENTS 4131 | { 4132 | RunTestEvent 4133 | { 4134 | active = False 4135 | guiActive = True 4136 | guiActiveUncommand = False 4137 | guiIcon = Run Test 4138 | guiName = Run Test 4139 | category = Run Test 4140 | guiActiveUnfocused = False 4141 | unfocusedRange = 2 4142 | externalToEVAOnly = True 4143 | } 4144 | ToggleStaging 4145 | { 4146 | active = True 4147 | guiActive = False 4148 | guiActiveUncommand = False 4149 | guiIcon = Disable Staging 4150 | guiName = Disable Staging 4151 | category = Disable Staging 4152 | guiActiveUnfocused = False 4153 | unfocusedRange = 2 4154 | externalToEVAOnly = True 4155 | } 4156 | } 4157 | ACTIONS 4158 | { 4159 | } 4160 | } 4161 | MODULE 4162 | { 4163 | name = ModuleSurfaceFX 4164 | isEnabled = True 4165 | stagingEnabled = True 4166 | EVENTS 4167 | { 4168 | ToggleStaging 4169 | { 4170 | active = True 4171 | guiActive = False 4172 | guiActiveUncommand = False 4173 | guiIcon = Disable Staging 4174 | guiName = Disable Staging 4175 | category = Disable Staging 4176 | guiActiveUnfocused = False 4177 | unfocusedRange = 2 4178 | externalToEVAOnly = True 4179 | } 4180 | } 4181 | ACTIONS 4182 | { 4183 | } 4184 | } 4185 | RESOURCE 4186 | { 4187 | name = SolidFuel 4188 | amount = 375 4189 | maxAmount = 375 4190 | flowState = True 4191 | isTweakable = True 4192 | hideFlow = False 4193 | isVisible = True 4194 | flowMode = Both 4195 | } 4196 | } 4197 | PART 4198 | { 4199 | part = noseCone_4293347104 4200 | partName = Part 4201 | pos = 1.555745E-05,15.00971,-3.075744 4202 | attPos = 0,0,0 4203 | attPos0 = 2.273737E-13,1.281837,4.057194E-07 4204 | rot = 0,0,0,1 4205 | attRot = 0,0,0,1 4206 | attRot0 = 0,-1,2.980232E-07,1.070257E-14 4207 | mir = 1,1,1 4208 | symMethod = Radial 4209 | istg = 6 4210 | dstg = 6 4211 | sidx = -1 4212 | sqor = -1 4213 | sepI = 3 4214 | attm = 0 4215 | modCost = 0 4216 | modMass = 0 4217 | modSize = (0.0, 0.0, 0.0) 4218 | link = strutConnector_4293339056 4219 | sym = noseCone_4293346176 4220 | attN = bottom01,solidBooster_4293362440 4221 | EVENTS 4222 | { 4223 | } 4224 | ACTIONS 4225 | { 4226 | } 4227 | PARTDATA 4228 | { 4229 | } 4230 | } 4231 | PART 4232 | { 4233 | part = noseCone_4293346176 4234 | partName = Part 4235 | pos = 1.558396E-05,15.00971,3.075787 4236 | attPos = 0,0,0 4237 | attPos0 = -5.684343E-14,1.281837,1.673008E-07 4238 | rot = 0,1,0,1.571478E-14 4239 | attRot = 0,0,0,1 4240 | attRot0 = -2.019484E-28,-1,2.980232E-07,1.070257E-14 4241 | mir = 1,1,1 4242 | symMethod = Radial 4243 | istg = 6 4244 | dstg = 6 4245 | sidx = -1 4246 | sqor = -1 4247 | sepI = 3 4248 | attm = 0 4249 | modCost = 0 4250 | modMass = 0 4251 | modSize = (0.0, 0.0, 0.0) 4252 | link = strutConnector_4293338760 4253 | sym = noseCone_4293347104 4254 | attN = bottom01,solidBooster_4293360216 4255 | EVENTS 4256 | { 4257 | } 4258 | ACTIONS 4259 | { 4260 | } 4261 | PARTDATA 4262 | { 4263 | } 4264 | } 4265 | PART 4266 | { 4267 | part = strutConnector_4293339056 4268 | partName = CompoundPart 4269 | pos = 1.554076E-05,15.56222,-3.266652 4270 | attPos = 0,0,0 4271 | attPos0 = -6.220525E-08,0.552513,-0.1909082 4272 | rot = -0.3706317,0.6021896,0.3706317,-0.6021896 4273 | attRot = 0,0,0,1 4274 | attRot0 = -0.3706316,0.6021895,0.3706316,-0.6021895 4275 | mir = 1,1,1 4276 | symMethod = Radial 4277 | istg = 6 4278 | dstg = 6 4279 | sidx = -1 4280 | sqor = -1 4281 | sepI = 3 4282 | attm = 1 4283 | modCost = 0 4284 | modMass = 0 4285 | modSize = (0.0, 0.0, 0.0) 4286 | sym = strutConnector_4293338760 4287 | srfN = srfAttach,noseCone_4293347104 4288 | EVENTS 4289 | { 4290 | } 4291 | ACTIONS 4292 | { 4293 | } 4294 | PARTDATA 4295 | { 4296 | tgt = 4294413084 4297 | pos = -1.317688,2.245754,-0.04676026 4298 | rot = 0,0.1240886,-0.841391,0.525988 4299 | dir = -0.5059848,0.8623555,-0.01795538 4300 | } 4301 | MODULE 4302 | { 4303 | name = CModuleLinkedMesh 4304 | isEnabled = True 4305 | stagingEnabled = True 4306 | EVENTS 4307 | { 4308 | ToggleStaging 4309 | { 4310 | active = True 4311 | guiActive = False 4312 | guiActiveUncommand = False 4313 | guiIcon = Disable Staging 4314 | guiName = Disable Staging 4315 | category = Disable Staging 4316 | guiActiveUnfocused = False 4317 | unfocusedRange = 2 4318 | externalToEVAOnly = True 4319 | } 4320 | } 4321 | ACTIONS 4322 | { 4323 | } 4324 | } 4325 | MODULE 4326 | { 4327 | name = CModuleStrut 4328 | isEnabled = True 4329 | stagingEnabled = True 4330 | EVENTS 4331 | { 4332 | ToggleStaging 4333 | { 4334 | active = True 4335 | guiActive = False 4336 | guiActiveUncommand = False 4337 | guiIcon = Disable Staging 4338 | guiName = Disable Staging 4339 | category = Disable Staging 4340 | guiActiveUnfocused = False 4341 | unfocusedRange = 2 4342 | externalToEVAOnly = True 4343 | } 4344 | } 4345 | ACTIONS 4346 | { 4347 | } 4348 | } 4349 | } 4350 | PART 4351 | { 4352 | part = strutConnector_4293338760 4353 | partName = CompoundPart 4354 | pos = 1.564616E-05,15.56222,3.266695 4355 | attPos = 0,0,0 4356 | attPos0 = -6.220576E-08,0.552513,-0.1909084 4357 | rot = 0.3706316,-0.6021896,0.3706316,-0.6021896 4358 | attRot = 0,0,0,1 4359 | attRot0 = -0.3706316,0.6021895,0.3706316,-0.6021895 4360 | mir = 1,1,1 4361 | symMethod = Radial 4362 | istg = 6 4363 | dstg = 6 4364 | sidx = -1 4365 | sqor = -1 4366 | sepI = 3 4367 | attm = 1 4368 | modCost = 0 4369 | modMass = 0 4370 | modSize = (0.0, 0.0, 0.0) 4371 | sym = strutConnector_4293339056 4372 | srfN = srfAttach,noseCone_4293346176 4373 | EVENTS 4374 | { 4375 | } 4376 | ACTIONS 4377 | { 4378 | } 4379 | PARTDATA 4380 | { 4381 | tgt = 4294413084 4382 | pos = -1.311133,2.234573,-0.04652654 4383 | rot = 0,0.12409,-0.841391,0.5259876 4384 | dir = -0.5059848,0.8623555,-0.01795538 4385 | } 4386 | MODULE 4387 | { 4388 | name = CModuleLinkedMesh 4389 | isEnabled = True 4390 | stagingEnabled = True 4391 | EVENTS 4392 | { 4393 | ToggleStaging 4394 | { 4395 | active = True 4396 | guiActive = False 4397 | guiActiveUncommand = False 4398 | guiIcon = Disable Staging 4399 | guiName = Disable Staging 4400 | category = Disable Staging 4401 | guiActiveUnfocused = False 4402 | unfocusedRange = 2 4403 | externalToEVAOnly = True 4404 | } 4405 | } 4406 | ACTIONS 4407 | { 4408 | } 4409 | } 4410 | MODULE 4411 | { 4412 | name = CModuleStrut 4413 | isEnabled = True 4414 | stagingEnabled = True 4415 | EVENTS 4416 | { 4417 | ToggleStaging 4418 | { 4419 | active = True 4420 | guiActive = False 4421 | guiActiveUncommand = False 4422 | guiIcon = Disable Staging 4423 | guiName = Disable Staging 4424 | category = Disable Staging 4425 | guiActiveUnfocused = False 4426 | unfocusedRange = 2 4427 | externalToEVAOnly = True 4428 | } 4429 | } 4430 | ACTIONS 4431 | { 4432 | } 4433 | } 4434 | } 4435 | --------------------------------------------------------------------------------