This is one of the scripts I'm trying to run and I'm almost certain that I did not change anything before it stopped working. But something significant must have been changed, why would it stop working then?: declare parameter apo. set var to altitude. lock throttle to 1. SAS ON. STAGE. wait until altitude > var. PRINT "GET:"+round(missiontime)+" LIFTOFF". log "GET:"+round(missiontime)+" LIFTOFF" to shiplog. wait until altitude > 10000. print "GET:"+round(missiontime)+" INITIATE PITCH PROGRAMME". log "GET:"+round(missiontime)+" INITIATE PITCH PROGRAMME" to shiplog. SAS OFF. lock steering to heading 90 by 45. print "GET:"+round(missiontime)+" PITCH TO 45". log "GET:"+round(missiontime)+" PITCH TO 45" to shiplog. wait until apoapsis > 70000. lock steering to heading 90 by 0. print "GET:"+round(missiontime)+" PITCH TO 90". log "GET:"+round(missiontime)+" PITCH TO 90" to shiplog. until apoapsis > apo { if stage:liquidfuel < 1 { break. }. }. lock throttle to 0. print "GET:"+round(missiontime)+" MECO". log "GET:"+round(missiontime)+" MECO" to shiplog. log "GET:"+round(missiontime)+" "+ FLOOR(STAGE:LIQUIDFUEL) + "/" + FLOOR(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING" to shiplog. wait 1. STAGE. print "GET:"+round(missiontime)+" STAGE 1 SEPARATION". log "GET:"+round(missiontime)+" STAGE 1 SEPARATION" to shiplog. lock steering to PROGRADE. wait until eta:apoapsis < 60. set r to 600000. set os to r*sqrt(9.807/(r+apoapsis)). set vel to velocity:orbit. set dv to sqrt(vel:x^2 + vel:y^2 + vel:z^2). set dv to os - dv. set bt to dv/(maxthrust/mass). print "GET:"+round(missiontime)+" ORBIT INSERTION BURN. BT " + round(bt,2) + "s". log "GET:"+round(missiontime)+" ORBIT INSERTION BURN. BT " + round(bt,2) + "s" to shiplog. wait until eta:apoapsis < bt/2 + 1. lock throttle to 1. wait until periapsis > 70000. until periapsis > 70000 { if stage:liquidfuel < 1 { break. }. }. set ecc to ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). until ecc < 0.1 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0.5. until ecc < 0.05 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0.3. until ecc < 0.005 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0. TOGGLE AG2. PRINT "GET:"+round(missiontime)+" INSERTION BURN COMPLETE". log "GET:"+round(missiontime)+" INSERTION BURN COMPLETE" to shiplog. set ecc to ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). print "GET:"+round(missiontime)+" ECCENTRICITY " + round(ecc, 4). log "GET:"+round(missiontime)+" ECCENTRICITY " + round(ecc, 4) to shiplog. log "GET:"+round(missiontime)+" "+floor(STAGE:LIQUIDFUEL) + "/" + floor(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING" to shiplog. STAGE. print "GET:"+round(missiontime)+" "PAYLOAD RELEASED". log "GET:"+round(missiontime)+" "PAYLOAD RELEASED" to shiplog. I have other scripts which cause the game to freeze as well when run from the launchpad. It doesn't matter if the script is run from the archive or copied to the vehicle's volume and run from there - both cases cause a freeze. Edit: this is the previous version of the script which still works on the launchpad: I checked it with Tortoise Merge and there are some changes of whitespaces in a couple of lines and I removed some print statements which were paired with log statements. I didn't have the time to investigate it more thoroughly yet. declare parameter apo. set var to altitude. lock throttle to 1. SAS ON. STAGE. wait until altitude > var. PRINT "GET:"+round(missiontime)+" LIFTOFF". log "GET:"+round(missiontime)+" LIFTOFF" to shiplog. wait until altitude > 10000. print "GET:"+round(missiontime)+" INITIATE PITCH PROGRAMME". log "GET:"+round(missiontime)+" INITIATE PITCH PROGRAMME" to shiplog. SAS OFF. lock steering to heading 90 by 45. print "GET:"+round(missiontime)+" PITCH TO 45". log "GET:"+round(missiontime)+" PITCH TO 45" to shiplog. wait until apoapsis > 70000. lock steering to heading 90 by 0. print "GET:"+round(missiontime)+" PITCH TO 90". log "GET:"+round(missiontime)+" PITCH TO 90" to shiplog. until apoapsis > apo { if stage:liquidfuel < 1 { print "GET:"+round(missiontime)+" TARGET APOAPSIS NOT REACHED". log "GET:"+round(missiontime)+" TARGET APOAPSIS NOT REACHED" to shiplog. break. }. }. lock throttle to 0. print "GET:"+round(missiontime)+" MECO". log "GET:"+round(missiontime)+" MECO" to shiplog. print "GET:"+round(missiontime)+" "+ FLOOR(STAGE:LIQUIDFUEL) + "/" + FLOOR(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING". log "GET:"+round(missiontime)+" "+ FLOOR(STAGE:LIQUIDFUEL) + "/" + FLOOR(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING" to shiplog. wait 1. STAGE. print "GET:"+round(missiontime)+" STAGE 1 SEPARATION". log "GET:"+round(missiontime)+" STAGE 1 SEPARATION" to shiplog. lock steering to PROGRADE. wait until eta:apoapsis < 60. set r to 600000. set os to r*sqrt(9.807/(r+apoapsis)). set vel to velocity:orbit. set dv to sqrt(vel:x^2 + vel:y^2 + vel:z^2). set dv to os - dv. set bt to dv/(maxthrust/mass). print "GET:"+round(missiontime)+" ORBIT INSERTION BURN. BT " + round(bt,2) + "s". log "GET:"+round(missiontime)+" ORBIT INSERTION BURN. BT " + round(bt,2) + "s" to shiplog. wait until eta:apoapsis < bt/2 + 1. lock throttle to 1. wait until periapsis > 70000. until periapsis > 70000 { if stage:liquidfuel < 1 { break. }. }. set ecc to ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). until ecc < 0.1 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0.5. until ecc < 0.05 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0.3. until ecc < 0.005 { set ecc TO ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). if ecc < ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)) { break. }. }. lock throttle to 0. TOGGLE AG2. PRINT "GET:"+round(missiontime)+" CIRCULARIZATION BURN COMPLETE". log "GET:"+round(missiontime)+" CIRCULARIZATION BURN COMPLETE" to shiplog. set ecc to ((r+apoapsis) - (r+periapsis))/((r+apoapsis) + (r+periapsis)). print "GET:"+round(missiontime)+" ECCENTRICITY " + round(ecc, 4). log "GET:"+round(missiontime)+" ECCENTRICITY " + round(ecc, 4) to shiplog. print "GET:"+round(missiontime)+" "+floor(STAGE:LIQUIDFUEL) + "/" + floor(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING". log "GET:"+round(missiontime)+" "+floor(STAGE:LIQUIDFUEL) + "/" + floor(STAGE:OXIDIZER) + " PROPELLANT/OXIDIZER REMAINING" to shiplog. print "GET:"+round(missiontime)+" ANTENNA DEPLOYED". log "GET:"+round(missiontime)+" ANTENNA DEPLOYED" to shiplog.