From 8a1560bdec6033f97f338b72355334a1f4dd8e88 Mon Sep 17 00:00:00 2001
From: Jean Delgado
Date: Tue, 16 Mar 2021 22:52:15 -0700
Subject: [PATCH 1/3] Orbiting improvements
---
ButtonHUD.conf | 4 +--
ChangeLog.md | 4 +++
src/ButtonHUD.lua | 79 ++++++++++++++++++++++++++++++++---------------
3 files changed, 60 insertions(+), 27 deletions(-)
diff --git a/ButtonHUD.conf b/ButtonHUD.conf
index cbef003..c942f3a 100644
--- a/ButtonHUD.conf
+++ b/ButtonHUD.conf
@@ -1,4 +1,4 @@
-name: ButtonsHud - Dimencia and Archaegeo v5.44 (Minified)
+name: ButtonsHud - Dimencia and Archaegeo v5.441 (Minified)
slots:
core:
class: CoreUnit
@@ -385,7 +385,7 @@ handlers:
Keyboard Scheme must be selected]],ConvertResolutionX(960),ConvertResolutionY(600))ct[#ct+1]=e([[
Set your preferred scheme in Lua Parameters instead]],ConvertResolutionX(960),ConvertResolutionY(650))end;local f7=ConvertResolutionX(960)local f8=ConvertResolutionY(860)local f9=ConvertResolutionY(880)local fa=ConvertResolutionY(900)local fb=ConvertResolutionY(960)local fc=ConvertResolutionY(200)local fd=ConvertResolutionY(150)local fe=ConvertResolutionY(960)if o()==1 and not RemoteHud then f8=ConvertResolutionY(135)f9=ConvertResolutionY(155)fa=ConvertResolutionY(175)fc=ConvertResolutionY(115)fd=ConvertResolutionY(95)end;if BrakeIsOn then ct[#ct+1]=e([[Brake Engaged]],f7,f8)elseif A>0 then ct[#ct+1]=e([[Auto-Brake Engaged]],f7,f8,A)end;if am and bi and hoverDetectGround()==-1 then ct[#ct+1]=e([[** STALL WARNING **]],f7,fc+50)end;if aq then ct[#ct+1]=e([[Gyro Enabled]],f7,fe)end;if GearExtended then if M then ct[#ct+1]=e([[Gear Extended]],f7,f9)else ct[#ct+1]=e([[Landed (G: Takeoff)]],f7,f9)end;local dy,dz=getDistanceDisplayString(Nav:getTargetGroundAltitude())ct[#ct+1]=e([[Hover Height: %s]],f7,fa,dy..dz)end;if Z then ct[#ct+1]=e([[ROCKET BOOST ENABLED]],f7,fb+20)end;if antigrav and not ExternalAGG and antigrav.getState()==1 and AntigravTargetAltitude~=nil then if math.abs(an-antigrav.getBaseAltitude())<501 then ct[#ct+1]=e([[AGG On - Target Altitude: %d Singluarity Altitude: %d]],f7,fc+20,d(AntigravTargetAltitude),d(antigrav.getBaseAltitude()))else ct[#ct+1]=e([[AGG On - Target Altitude: %d Singluarity Altitude: %d]],f7,fc+20,d(AntigravTargetAltitude),d(antigrav.getBaseAltitude()))end elseif Autopilot and AutopilotTargetName~="None"then ct[#ct+1]=e([[Autopilot %s]],f7,fc+20,AutopilotStatus)elseif LockPitch~=nil then ct[#ct+1]=e([[LockedPitch: %d]],f7,fc+20,d(LockPitch))elseif U then ct[#ct+1]=e([[Follow Mode Engaged]],f7,fc+20)elseif Reentry then ct[#ct+1]=e([[Re-entry in Progress]],f7,fc+20)end;local ff,fg,fh=b6:getPlanetarySystem(0):castIntersections(vec3(core.getConstructWorldPos()),bd:normalize(),function(fi)if fi.noAtmosphericDensityAltitude>0 then return fi.radius+fi.noAtmosphericDensityAltitude else return fi.radius+fi.surfaceMaxAltitude*1.5 end end)local fj=fg;if fh~=nil and fg~=nil then fj=math.min(fh,fg)end;if AltitudeHold then if AutoTakeoff and not IntoOrbit then local dy,dz=getDistanceDisplayString(HoldAltitude)ct[#ct+1]=e([[Ascent to %s]],f7,fc,dy..dz)if BrakeIsOn then ct[#ct+1]=e([[Throttle Up and Disengage Brake For Takeoff]],f7,fc+50)end else local dy,dz=getDistanceDisplayString2(HoldAltitude)ct[#ct+1]=e([[Altitude Hold: %s]],f7,fc,dy..dz)end end;if VertTakeOff and(antigrav~=nil and antigrav)then if j()>0.1 then ct[#ct+1]=e([[Beginning ascent]],f7,fc)elseif j()<0.09 and j()>0.05 then ct[#ct+1]=e([[Aligning trajectory]],f7,fc)elseif j()<0.05 then ct[#ct+1]=e([[Leaving atmosphere]],f7,fc)end end;if IntoOrbit then if bo~=nil then ct[#ct+1]=e([[%s]],f7,fc,bo)end end;if BrakeLanding then if StrongBrakes then ct[#ct+1]=e([[Brake-Landing]],f7,fc)else ct[#ct+1]=e([[Coast-Landing]],f7,fc)end end;if ProgradeIsOn then ct[#ct+1]=e([[Prograde Alignment]],f7,fc)end;if RetrogradeIsOn then ct[#ct+1]=e([[Retrograde Alignment]],f7,fc)end;if TurnBurn then ct[#ct+1]=e([[Turn & Burn Braking]],f7,fd)elseif fj~=nil and j()==0 then local dy,dz=getDistanceDisplayString(fj)local travelTime=b7.computeTravelTime(be,0,fj)local fk="Collision"if ff.noAtmosphericDensityAltitude>0 then fk="Atmosphere"end;ct[#ct+1]=e([[%s %s In %s (%s)]],f7,fd,ff.name,fk,FormatTimeString(travelTime),dy..dz)end;if VectorToTarget and not IntoOrbit then ct[#ct+1]=e([[%s]],f7,fc+30,VectorStatus)end;ct[#ct+1]=""end;function DisplayOrbitScreen(ct)if orbit~=nil and j()<0.2 and planet~=nil and orbit.apoapsis~=nil and orbit.periapsis~=nil and orbit.period~=nil and orbit.apoapsis.speed>5 and DisplayOrbit then local fl=OrbitMapX;local fm=OrbitMapY;local fn=OrbitMapSize;local fo=4;fm=fm+fo;local fp=15;local bY=fl+fn+fl/2+fo;local bZ=fm+fn/2+5+fo;local fq,fr,fs,ft;fq=fn/4;ft=0;ct[#ct+1]=[[]]ct[#ct+1]=e('',fn+fl*2,fn+fm,fo,fo)if orbit.periapsis~=nil and orbit.apoapsis~=nil then fs=(orbit.apoapsis.altitude+orbit.periapsis.altitude+planet.radius*2)/(fq*2)fr=(planet.radius+orbit.periapsis.altitude+(orbit.apoapsis.altitude-orbit.periapsis.altitude)/2)/fs*(1-orbit.eccentricity)ft=fq-orbit.periapsis.altitude/fs-planet.radius/fs;local fu=""if orbit.periapsis.altitude<=0 then fu='redout'end;ct[#ct+1]=e([[]],fu,fl+fn/2+ft+fo,fm+fn/2+fo,fq,fr)ct[#ct+1]=e('',fl+fn/2+fo,fm+fn/2+fo,planet.radius/fs)end;if orbit.apoapsis~=nil and orbit.apoapsis.speed1 then ct[#ct+1]=e([[]],bY-35,bZ-5,fl+fn/2+fq+ft,bZ-5)ct[#ct+1]=e([[Apoapsis]],bY,bZ)bZ=bZ+fp;local dy,dz=getDistanceDisplayString(orbit.apoapsis.altitude)ct[#ct+1]=e([[%s]],bY,bZ,dy..dz)bZ=bZ+fp;ct[#ct+1]=e([[%s]],bY,bZ,FormatTimeString(orbit.timeToApoapsis))bZ=bZ+fp;ct[#ct+1]=e([[%s]],bY,bZ,getSpeedDisplayString(orbit.apoapsis.speed))end;bZ=fm+fn/2+5+fo;bY=fl-fl/2+10+fo;if orbit.periapsis~=nil and orbit.periapsis.speed1 then ct[#ct+1]=e([[]],bY+35,bZ-5,fl+fn/2-fq+ft,bZ-5)ct[#ct+1]=e([[Periapsis]],bY,bZ)bZ=bZ+fp;local dy,dz=getDistanceDisplayString(orbit.periapsis.altitude)ct[#ct+1]=e([[%s]],bY,bZ,dy..dz)bZ=bZ+fp;ct[#ct+1]=e([[%s]],bY,bZ,FormatTimeString(orbit.timeToPeriapsis))bZ=bZ+fp;ct[#ct+1]=e([[%s]],bY,bZ,getSpeedDisplayString(orbit.periapsis.speed))end;ct[#ct+1]=e([[%s]],fl+fn/2+fo,20+fo,planet.name)if orbit.period~=nil and orbit.periapsis~=nil and orbit.apoapsis~=nil and orbit.apoapsis.speed>1 then local fv=orbit.timeToApoapsis/orbit.period*2*math.pi;local fw=fq*math.cos(fv)local fx=fr*math.sin(fv)ct[#ct+1]=e('',fl+fn/2+fw+ft+fo,fm+fn/2+fx+fo)end;ct[#ct+1]=[[]]end end;function getDistanceDisplayString(ac)local fy=ac>100000;local bD,dz=""if fy then bD,dz=round(ac/1000/200,1),"SU"elseif ac<1000 then bD,dz=round(ac,1),"m"else bD,dz=round(ac/1000,1),"Km"end;return bD,dz end;function getDistanceDisplayString2(ac)local fy=ac>100000;local bD,dz=""if fy then bD,dz=round(ac/1000/200,2)," SU"elseif ac<1000 then bD,dz=round(ac,2)," M"else bD,dz=round(ac/1000,2)," KM"end;return bD,dz end;function getSpeedDisplayString(bS)return d(round(bS*3.6,0)+0.5).." km/h"end;function FormatTimeString(fz)local fA=0;local fB=0;local fC=0;if fz<60 then fz=d(fz)elseif fz<3600 then fA=d(fz/60)fz=d(fz%60)elseif fz<86400 then fB=d(fz/3600)fA=d(fz%3600/60)else fC=d(fz/86400)fB=d(fz%86400/3600)end;if fC>0 then return fC.."d "..fB.."h "elseif fB>0 then return fB.."h "..fA.."m "elseif fA>0 then return fA.."m "..fz.."s"elseif fz>0 then return fz.."s"else return"0s"end end;function getMagnitudeInDirection(dr,fD)dr=vec3(dr)fD=vec3(fD):normalize()local bD=dr*fD;return bD.x+bD.y+bD.z end;function UpdateAutopilotTarget()if AutopilotTargetIndex==0 then AutopilotTargetName="None"a4=nil;CustomTarget=nil;return true end;local fE=AtlasOrdered[AutopilotTargetIndex].index;local fF=b0[0][fE]if fF.center then AutopilotTargetName=fF.name;a4=b6[0][fE]if CustomTarget~=nil then if j()==0 then if system.updateData(widgetMaxBrakeTimeText,widgetMaxBrakeTime)~=1 then system.addDataToWidget(widgetMaxBrakeTimeText,widgetMaxBrakeTime)end;if system.updateData(widgetMaxBrakeDistanceText,widgetMaxBrakeDistance)~=1 then system.addDataToWidget(widgetMaxBrakeDistanceText,widgetMaxBrakeDistance)end;if system.updateData(widgetCurBrakeTimeText,widgetCurBrakeTime)~=1 then system.addDataToWidget(widgetCurBrakeTimeText,widgetCurBrakeTime)end;if system.updateData(widgetCurBrakeDistanceText,widgetCurBrakeDistance)~=1 then system.addDataToWidget(widgetCurBrakeDistanceText,widgetCurBrakeDistance)end;if system.updateData(widgetTrajectoryAltitudeText,widgetTrajectoryAltitude)~=1 then system.addDataToWidget(widgetTrajectoryAltitudeText,widgetTrajectoryAltitude)end end;if system.updateData(widgetMaxMassText,widgetMaxMass)~=1 then system.addDataToWidget(widgetMaxMassText,widgetMaxMass)end;if system.updateData(widgetTravelTimeText,widgetTravelTime)~=1 then system.addDataToWidget(widgetTravelTimeText,widgetTravelTime)end;if system.updateData(widgetTargetOrbitText,widgetTargetOrbit)~=1 then system.addDataToWidget(widgetTargetOrbitText,widgetTargetOrbit)end end;CustomTarget=nil else CustomTarget=fF;for _,bC in pairs(b6[0])do if bC.name==CustomTarget.planetname then a4=bC;AutopilotTargetName=CustomTarget.name;break end end;if system.updateData(widgetMaxMassText,widgetMaxMass)~=1 then system.addDataToWidget(widgetMaxMassText,widgetMaxMass)end;if system.updateData(widgetTravelTimeText,widgetTravelTime)~=1 then system.addDataToWidget(widgetTravelTimeText,widgetTravelTime)end end;if CustomTarget==nil then AutopilotTargetCoords=vec3(a4.center)else AutopilotTargetCoords=CustomTarget.position end;if a4.planetname~="Space"then if a4.hasAtmosphere then AutopilotTargetOrbit=math.floor(a4.radius*(TargetOrbitRadius-1)+a4.noAtmosphericDensityAltitude)else AutopilotTargetOrbit=math.floor(a4.radius*(TargetOrbitRadius-1)+a4.surfaceMaxAltitude)end else AutopilotTargetOrbit=1000 end;if CustomTarget~=nil and CustomTarget.planetname=="Space"then AutopilotEndSpeed=0 else _,AutopilotEndSpeed=b9(a4):escapeAndOrbitalSpeed(AutopilotTargetOrbit)end;AutopilotPlanetGravity=0;AutopilotAccelerating=false;AutopilotBraking=false;AutopilotCruising=false;Autopilot=false;AutopilotRealigned=false;AutopilotStatus="Aligning"return true end;function IncrementAutopilotTargetIndex()AutopilotTargetIndex=AutopilotTargetIndex+1;if AutopilotTargetIndex>#AtlasOrdered then AutopilotTargetIndex=0 end;if AutopilotTargetIndex==0 then UpdateAutopilotTarget()else local fE=AtlasOrdered[AutopilotTargetIndex].index;local fF=b0[0][fE]if fF.name=="Space"then IncrementAutopilotTargetIndex()else UpdateAutopilotTarget()end end end;function DecrementAutopilotTargetIndex()AutopilotTargetIndex=AutopilotTargetIndex-1;if AutopilotTargetIndex<0 then AutopilotTargetIndex=#AtlasOrdered end;if AutopilotTargetIndex==0 then UpdateAutopilotTarget()else local fE=AtlasOrdered[AutopilotTargetIndex].index;local fF=b0[0][fE]if fF.name=="Space"then DecrementAutopilotTargetIndex()else UpdateAutopilotTarget()end end end;function GetAutopilotMaxMass()local fG=LastMaxBrakeInAtmo/a4:getGravity(a4.center+vec3(0,0,1)*a4.radius):len()return fG end;function GetAutopilotTravelTime()if not Autopilot then if CustomTarget==nil or CustomTarget.planetname~=planet.name then AutopilotDistance=(a4.center-vec3(core.getConstructWorldPos())):len()else AutopilotDistance=(CustomTarget.position-vec3(core.getConstructWorldPos())):len()end end;local bd=core.getWorldVelocity()local bS=vec3(bd):len()local fH=unit.getThrottle()/100;if AtmoSpeedAssist then fH=z end;local fI,fJ=b7.computeDistanceAndTime(vec3(bd):len(),MaxGameVelocity,n(),Nav:maxForceForward()*fH,warmup,0)local a0,a1;if not TurnBurn then a0,a1=GetAutopilotBrakeDistanceAndTime(MaxGameVelocity)else a0,a1=GetAutopilotTBBrakeDistanceAndTime(MaxGameVelocity)end;local _,fK;if not TurnBurn and bS>0 then _,fK=GetAutopilotBrakeDistanceAndTime(bS)else _,fK=GetAutopilotTBBrakeDistanceAndTime(bS)end;local fL=0;local fM=0;if AutopilotCruising or not Autopilot and bS>5 then fM=b7.computeTravelTime(bS,0,AutopilotDistance)elseif a0+fI0 then return b7.computeDistanceAndTime(bS,AutopilotEndSpeed,n(),0,0,LastMaxBrakeInAtmo-AutopilotPlanetGravity*n())else return 0,0 end end end;function GetAutopilotTBBrakeDistanceAndTime(bS)RefreshLastMaxBrake()return b7.computeDistanceAndTime(bS,AutopilotEndSpeed,n(),Nav:maxForceForward(),warmup,LastMaxBrake-AutopilotPlanetGravity*n())end;function hoverDetectGround()local fO=-1;local fP=-1;if vBooster then fO=vBooster.distance()end;if hover then fP=hover.distance()end;if fO~=-1 and fP~=-1 then if fOProfileTimeMax then ProfileTimeMax=fV end;if fV0 then local g4=g1:find('identifiedConstructs":%[%]')if g4==nil and perisPanelID==nil then af=1;ToggleRadarPanel()end;if g4~=nil and perisPanelID~=nil then ToggleRadarPanel()end;if radarPanelID==nil then ToggleRadarPanel()end;ad=e([[Radar: %i contacts]],g2,g3,#g0)local g5={}for bB,bC in pairs(g0)do if radar_1.hasMatchingTransponder(bC)==1 then table.insert(g5,bC)end end;if#g5>0 then local bZ=ConvertResolutionY(15)local bY=ConvertResolutionX(1370)ad=e([[%sFriendlies In Range]],ad,bY,bZ)for bB,bC in pairs(g5)do bZ=bZ+20;ad=e([[%s%s]],ad,bY,bZ,radar_1.getConstructName(bC))end end else local g6;g6=g1:find('worksInEnvironment":false')if g6 then ad=e([[
Radar: Jammed]],g2,g3)else ad=e([[
- Radar: No Contacts]],g2,g3)end;if radarPanelID~=nil then af=0;ToggleRadarPanel()end end end end;function DisplayMessage(ct,dy)if dy~="empty"then ct[#ct+1]=[[]]for g7 in string.gmatch(dy,"([^\n]+)")do ct[#ct+1]=e([[%s]],g7)end;ct[#ct+1]=[[]]end;if ab~=0 then unit.setTimer("msgTick",ab)ab=0 end end;function updateDistance()local bL=system.getTime()local bd=vec3(core.getWorldVelocity())local dU=vec3(bd):len()local g8=bL-ap;if dU>1.38889 then dU=dU/1000;local g9=dU*(bL-ap)TotalDistanceTravelled=TotalDistanceTravelled+g9;a5=a5+g9 end;a6=a6+g8;TotalFlightTime=TotalFlightTime+g8;ap=bL end;function composeAxisAccelerationFromTargetSpeedV(ga,gb)local gc=vec3()local gd=vec3()if ga==axisCommandId.longitudinal then gc=vec3(core.getConstructOrientationForward())gd=vec3(core.getConstructWorldOrientationForward())elseif ga==axisCommandId.vertical then gc=vec3(core.getConstructOrientationUp())gd=vec3(core.getConstructWorldOrientationUp())elseif ga==axisCommandId.lateral then gc=vec3(core.getConstructOrientationRight())gd=vec3(core.getConstructWorldOrientationRight())else return vec3()end;local ge=vec3(core.getWorldGravity())local gf=ge:dot(gd)local gg=vec3(core.getWorldAirFrictionAcceleration())local gh=gg:dot(gd)local gi=vec3(core.getVelocity())local gj=gi:dot(gc)local gk=gb*constants.kph2m;if targetSpeedPID2==nil then targetSpeedPID2=pid.new(10,0,10.0)end;targetSpeedPID2:inject(gk-gj)local gl=targetSpeedPID2:get()local gm=(gl-gh-gf)*gd;return gm end;function composeAxisAccelerationFromTargetSpeed(ga,gb)local gc=vec3()local gd=vec3()if ga==axisCommandId.longitudinal then gc=vec3(core.getConstructOrientationForward())gd=vec3(core.getConstructWorldOrientationForward())elseif ga==axisCommandId.vertical then gc=vec3(core.getConstructOrientationUp())gd=vec3(core.getConstructWorldOrientationUp())elseif ga==axisCommandId.lateral then gc=vec3(core.getConstructOrientationRight())gd=vec3(core.getConstructWorldOrientationRight())else return vec3()end;local ge=vec3(core.getWorldGravity())local gf=ge:dot(gd)local gg=vec3(core.getWorldAirFrictionAcceleration())local gh=gg:dot(gd)local gi=vec3(core.getVelocity())local gj=gi:dot(gc)local gk=gb*constants.kph2m;if targetSpeedPID==nil then targetSpeedPID=pid.new(10,0,10.0)end;targetSpeedPID:inject(gk-gj)local gl=targetSpeedPID:get()local gm=(gl-gh-gf)*gd;return gm end;function Atlas()return{[0]={[0]={GM=0,bodyId=0,center={x=0,y=0,z=0},name='Space',planetarySystemId=0,radius=0,hasAtmosphere=false,gravity=0,noAtmosphericDensityAltitude=0,surfaceMaxAltitude=0},[2]={name="Alioth",description="Alioth is the planet selected by the arkship for landfall; it is a typical goldilocks planet where humanity may rebuild in the coming decades. The arkship geological survey reports mountainous regions alongside deep seas and lush forests. This is where it all starts.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9401,atmosphericEngineMaxAltitude=5580,biosphere="Forest",classification="Mesoplanet",bodyId=2,GM=157470826617,gravity=1.0082568597356114,fullAtmosphericDensityMaxAltitude=-10,habitability="High",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=6272,numSatellites=2,positionFromSun=2,center={x=-8,y=-8,z=-126303},radius=126067.8984375,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=3410,surfaceArea=199718780928,surfaceAverageAltitude=200,surfaceMaxAltitude=1100,surfaceMinAltitude=-330,systemZone="High",territories=259472,type="Planet",waterLevel=0,planetarySystemId=0},[21]={name="Alioth Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=21,GM=2118960000,gravity=0.24006116402380084,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=457933,y=-1509011,z=115524},radius=30000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=0,surfaceArea=11309733888,surfaceAverageAltitude=140,surfaceMaxAltitude=200,surfaceMinAltitude=10,systemZone=nil,territories=14522,type="",waterLevel=nil,planetarySystemId=0},[22]={name="Alioth Moon 4",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=22,GM=2165833514,gravity=0.2427018259886451,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=-1692694,y=729681,z=-411464},radius=30330,safeAreaEdgeAltitude=500000,size="L",spaceEngineMinAltitude=0,surfaceArea=11559916544,surfaceAverageAltitude=-15,surfaceMaxAltitude=-5,surfaceMinAltitude=-50,systemZone=nil,territories=14522,type="",waterLevel=nil,planetarySystemId=0},[5]={name="Feli",description="Feli is easily identified by its massive and deep crater. Outside of the crater, the arkship geological survey reports a fairly bland and uniform planet, it also cannot explain the existence of the crater. Feli is particular for having an extremely small atmosphere, allowing life to develop in the deeper areas of its crater but limiting it drastically on the actual surface.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.5488,atmosphericEngineMaxAltitude=66725,biosphere="Barren",classification="Mesoplanet",bodyId=5,GM=16951680000,gravity=0.4801223280476017,fullAtmosphericDensityMaxAltitude=30,habitability="Low",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=78500,numSatellites=1,positionFromSun=5,center={x=-43534464,y=22565536,z=-48934464},radius=41800,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=42800,surfaceArea=21956466688,surfaceAverageAltitude=18300,surfaceMaxAltitude=18500,surfaceMinAltitude=46,systemZone="Low",territories=27002,type="Planet",waterLevel=nil,planetarySystemId=0},[50]={name="Feli Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=50,GM=499917600,gravity=0.11202853997062348,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=-43902841.78,y=22261034.7,z=-48862386},radius=14000,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=0,surfaceArea=2463008768,surfaceAverageAltitude=800,surfaceMaxAltitude=900,surfaceMinAltitude=0,systemZone=nil,territories=3002,type="",waterLevel=nil,planetarySystemId=0},[120]={name="Ion",description="Ion is nothing more than an oversized ice cube frozen through and through. It is a largely inhospitable planet due to its extremely low temperatures. The arkship geological survey reports extremely rough mountainous terrain with little habitable land.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9522,atmosphericEngineMaxAltitude=10480,biosphere="Ice",classification="Hypopsychroplanet",bodyId=120,GM=7135606629,gravity=0.36009174603570127,fullAtmosphericDensityMaxAltitude=-30,habitability="Average",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=17700,numSatellites=2,positionFromSun=12,center={x=2865536.7,y=-99034464,z=-934462.02},radius=44950,safeAreaEdgeAltitude=500000,size="XS",spaceEngineMinAltitude=6410,surfaceArea=25390383104,surfaceAverageAltitude=500,surfaceMaxAltitude=1300,surfaceMinAltitude=250,systemZone="Average",territories=32672,type="Planet",waterLevel=nil,planetarySystemId=0},[121]={name="Ion Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=121,GM=106830900,gravity=0.08802242599860607,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=2472916.8,y=-99133747,z=-1133582.8},radius=11000,safeAreaEdgeAltitude=500000,size="XS",spaceEngineMinAltitude=0,surfaceArea=1520530944,surfaceAverageAltitude=100,surfaceMaxAltitude=200,surfaceMinAltitude=3,systemZone=nil,territories=1922,type="",waterLevel=nil,planetarySystemId=0},[122]={name="Ion Moon 2",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=122,GM=176580000,gravity=0.12003058201190042,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=2995424.5,y=-99275010,z=-1378480.7},radius=15000,safeAreaEdgeAltitude=500000,size="XS",spaceEngineMinAltitude=0,surfaceArea=2827433472,surfaceAverageAltitude=-1900,surfaceMaxAltitude=-1400,surfaceMinAltitude=-2100,systemZone=nil,territories=3632,type="",waterLevel=nil,planetarySystemId=0},[9]={name="Jago",description="Jago is a water planet. The large majority of the planet's surface is covered by large oceans dotted by small areas of landmass across the planet. The arkship geological survey reports deep seas across the majority of the planet with sub 15 percent coverage of solid ground.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9835,atmosphericEngineMaxAltitude=9695,biosphere="Water",classification="Mesoplanet",bodyId=9,GM=18606274330,gravity=0.5041284298678057,fullAtmosphericDensityMaxAltitude=-90,habitability="Very High",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=10900,numSatellites=0,positionFromSun=9,center={x=-94134462,y=12765534,z=-3634464},radius=61590,safeAreaEdgeAltitude=500000,size="XL",spaceEngineMinAltitude=5900,surfaceArea=47668367360,surfaceAverageAltitude=0,surfaceMaxAltitude=1200,surfaceMinAltitude=-500,systemZone="Very High",territories=60752,type="Planet",waterLevel=0,planetarySystemId=0},[100]={name="Lacobus",description="Lacobus is an ice planet that also features large bodies of water. The arkship geological survey reports deep oceans alongside a frozen and rough mountainous environment. Lacobus seems to feature regional geothermal activity allowing for the presence of water on the surface.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.7571,atmosphericEngineMaxAltitude=11120,biosphere="Ice",classification="Psychroplanet",bodyId=100,GM=13975172474,gravity=0.45611622622739767,fullAtmosphericDensityMaxAltitude=-20,habitability="Average",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=12510,numSatellites=3,positionFromSun=10,center={x=98865536,y=-13534464,z=-934461.99},radius=55650,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=6790,surfaceArea=38917074944,surfaceAverageAltitude=800,surfaceMaxAltitude=1660,surfaceMinAltitude=250,systemZone="Average",territories=50432,type="Planet",waterLevel=0,planetarySystemId=0},[102]={name="Lacobus Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=102,GM=444981600,gravity=0.14403669598391783,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=99180968,y=-13783862,z=-926156.4},radius=18000,safeAreaEdgeAltitude=500000,size="XL",spaceEngineMinAltitude=0,surfaceArea=4071504128,surfaceAverageAltitude=150,surfaceMaxAltitude=300,surfaceMinAltitude=10,systemZone=nil,territories=5072,type="",waterLevel=nil,planetarySystemId=0},[103]={name="Lacobus Moon 2",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=103,GM=211503600,gravity=0.11202853997062348,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=99250052,y=-13629215,z=-1059341.4},radius=14000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=0,surfaceArea=2463008768,surfaceAverageAltitude=-1380,surfaceMaxAltitude=-1280,surfaceMinAltitude=-1880,systemZone=nil,territories=3002,type="",waterLevel=nil,planetarySystemId=0},[101]={name="Lacobus Moon 3",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=101,GM=264870000,gravity=0.12003058201190042,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=98905288.17,y=-13950921.1,z=-647589.53},radius=15000,safeAreaEdgeAltitude=500000,size="L",spaceEngineMinAltitude=0,surfaceArea=2827433472,surfaceAverageAltitude=500,surfaceMaxAltitude=820,surfaceMinAltitude=3,systemZone=nil,territories=3632,type="",waterLevel=nil,planetarySystemId=0},[1]={name="Madis",description="Madis is a barren wasteland of a rock; it sits closest to the sun and temperatures reach extreme highs during the day. The arkship geological survey reports long rocky valleys intermittently separated by small ravines.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.8629,atmosphericEngineMaxAltitude=7165,biosphere="Barren",classification="hyperthermoplanet",bodyId=1,GM=6930729684,gravity=0.36009174603570127,fullAtmosphericDensityMaxAltitude=220,habitability="Low",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=8050,numSatellites=3,positionFromSun=1,center={x=17465536,y=22665536,z=-34464},radius=44300,safeAreaEdgeAltitude=500000,size="XS",spaceEngineMinAltitude=4480,surfaceArea=24661377024,surfaceAverageAltitude=750,surfaceMaxAltitude=850,surfaceMinAltitude=670,systemZone="Low",territories=30722,type="Planet",waterLevel=nil,planetarySystemId=0},[10]={name="Madis Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=10,GM=78480000,gravity=0.08002039003323584,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=17448118.224,y=22966846.286,z=143078.82},radius=10000,safeAreaEdgeAltitude=500000,size="XL",spaceEngineMinAltitude=0,surfaceArea=1256637056,surfaceAverageAltitude=210,surfaceMaxAltitude=420,surfaceMinAltitude=0,systemZone=nil,territories=1472,type="",waterLevel=nil,planetarySystemId=0},[11]={name="Madis Moon 2",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=11,GM=237402000,gravity=0.09602446196397631,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=17194626,y=22243633.88,z=-214962.81},radius=12000,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=0,surfaceArea=1809557376,surfaceAverageAltitude=-700,surfaceMaxAltitude=300,surfaceMinAltitude=-2900,systemZone=nil,territories=1922,type="",waterLevel=nil,planetarySystemId=0},[12]={name="Madis Moon 3",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=12,GM=265046609,gravity=0.12003058201190042,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=17520614,y=22184730,z=-309989.99},radius=15000,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=0,surfaceArea=2827433472,surfaceAverageAltitude=700,surfaceMaxAltitude=1100,surfaceMinAltitude=0,systemZone=nil,territories=3632,type="",waterLevel=nil,planetarySystemId=0},[26]={name="Sanctuary",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9666,atmosphericEngineMaxAltitude=6935,biosphere="",classification="",bodyId=26,GM=68234043600,gravity=1.0000000427743831,fullAtmosphericDensityMaxAltitude=-30,habitability="",hasAtmosphere=true,isSanctuary=true,noAtmosphericDensityAltitude=7800,numSatellites=0,positionFromSun=0,center={x=-1404835,y=562655,z=-285074},radius=83400,safeAreaEdgeAltitude=0,size="L",spaceEngineMinAltitude=4230,surfaceArea=87406149632,surfaceAverageAltitude=80,surfaceMaxAltitude=500,surfaceMinAltitude=-60,systemZone=nil,territories=111632,type="",waterLevel=0,planetarySystemId=0},[6]={name="Sicari",description="Sicari is a typical desert planet; it has survived for millenniums and will continue to endure. While not the most habitable of environments it remains a relatively untouched and livable planet of the Alioth sector. The arkship geological survey reports large flatlands alongside steep plateaus.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.897,atmosphericEngineMaxAltitude=7725,biosphere="Desert",classification="Mesoplanet",bodyId=6,GM=10502547741,gravity=0.4081039739797361,fullAtmosphericDensityMaxAltitude=-625,habitability="Average",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=8770,numSatellites=0,positionFromSun=6,center={x=52765536,y=27165538,z=52065535},radius=51100,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=4480,surfaceArea=32813432832,surfaceAverageAltitude=130,surfaceMaxAltitude=220,surfaceMinAltitude=50,systemZone="Average",territories=41072,type="Planet",waterLevel=nil,planetarySystemId=0},[7]={name="Sinnen",description="Sinnen is a an empty and rocky hell. With no atmosphere to speak of it is one of the least hospitable planets in the sector. The arkship geological survey reports mostly flatlands alongside deep ravines which look to have once been riverbeds. This planet simply looks to have dried up and died, likely from solar winds.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9226,atmosphericEngineMaxAltitude=10335,biosphere="Desert",classification="Mesoplanet",bodyId=7,GM=13033380591,gravity=0.4401121421448438,fullAtmosphericDensityMaxAltitude=-120,habitability="Average",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=11620,numSatellites=1,positionFromSun=7,center={x=58665538,y=29665535,z=58165535},radius=54950,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=6270,surfaceArea=37944188928,surfaceAverageAltitude=317,surfaceMaxAltitude=360,surfaceMinAltitude=23,systemZone="Average",territories=48002,type="Planet",waterLevel=nil,planetarySystemId=0},[70]={name="Sinnen Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=70,GM=396912600,gravity=0.1360346539426409,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=58969616,y=29797945,z=57969449},radius=17000,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=0,surfaceArea=3631681280,surfaceAverageAltitude=-2050,surfaceMaxAltitude=-1950,surfaceMinAltitude=-2150,systemZone=nil,territories=4322,type="",waterLevel=nil,planetarySystemId=0},[110]={name="Symeon",description="Symeon is an ice planet mysteriously split at the equator by a band of solid desert. Exactly how this phenomenon is possible is unclear but some sort of weather anomaly may be responsible. The arkship geological survey reports a fairly diverse mix of flat-lands alongside mountainous formations.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.9559,atmosphericEngineMaxAltitude=6920,biosphere="Ice, Desert",classification="Hybrid",bodyId=110,GM=9204742375,gravity=0.3920998898971822,fullAtmosphericDensityMaxAltitude=-30,habitability="High",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=7800,numSatellites=0,positionFromSun=11,center={x=14165536,y=-85634465,z=-934464.3},radius=49050,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=4230,surfaceArea=30233462784,surfaceAverageAltitude=39,surfaceMaxAltitude=450,surfaceMinAltitude=126,systemZone="High",territories=38882,type="Planet",waterLevel=nil,planetarySystemId=0},[4]={name="Talemai",description="Talemai is a planet in the final stages of an Ice Age. It seems likely that the planet was thrown into tumult by a cataclysmic volcanic event which resulted in its current state. The arkship geological survey reports large mountainous regions across the entire planet.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.8776,atmosphericEngineMaxAltitude=9685,biosphere="Barren",classification="Psychroplanet",bodyId=4,GM=14893847582,gravity=0.4641182439650478,fullAtmosphericDensityMaxAltitude=-78,habitability="Average",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=10890,numSatellites=3,positionFromSun=4,center={x=-13234464,y=55765536,z=465536},radius=57500,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=5890,surfaceArea=41547563008,surfaceAverageAltitude=580,surfaceMaxAltitude=610,surfaceMinAltitude=520,systemZone="Average",territories=52922,type="Planet",waterLevel=nil,planetarySystemId=0},[42]={name="Talemai Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=42,GM=264870000,gravity=0.12003058201190042,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=-13058408,y=55781856,z=740177.76},radius=15000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=0,surfaceArea=2827433472,surfaceAverageAltitude=720,surfaceMaxAltitude=850,surfaceMinAltitude=0,systemZone=nil,territories=3632,type="",waterLevel=nil,planetarySystemId=0},[40]={name="Talemai Moon 2",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=40,GM=141264000,gravity=0.09602446196397631,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=-13503090,y=55594325,z=769838.64},radius=12000,safeAreaEdgeAltitude=500000,size="S",spaceEngineMinAltitude=0,surfaceArea=1809557376,surfaceAverageAltitude=250,surfaceMaxAltitude=450,surfaceMinAltitude=0,systemZone=nil,territories=1922,type="",waterLevel=nil,planetarySystemId=0},[41]={name="Talemai Moon 3",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=41,GM=106830900,gravity=0.08802242599860607,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=-12800515,y=55700259,z=325207.84},radius=11000,safeAreaEdgeAltitude=500000,size="XS",spaceEngineMinAltitude=0,surfaceArea=1520530944,surfaceAverageAltitude=190,surfaceMaxAltitude=400,surfaceMinAltitude=0,systemZone=nil,territories=1922,type="",waterLevel=nil,planetarySystemId=0},[8]={name="Teoma",description="[REDACTED] The arkship geological survey [REDACTED]. This planet should not be here.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.7834,atmosphericEngineMaxAltitude=5580,biosphere="Forest",classification="Mesoplanet",bodyId=8,GM=18477723600,gravity=0.48812434578525177,fullAtmosphericDensityMaxAltitude=15,habitability="High",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=6280,numSatellites=0,positionFromSun=8,center={x=80865538,y=54665536,z=-934463.94},radius=62000,safeAreaEdgeAltitude=500000,size="L",spaceEngineMinAltitude=3420,surfaceArea=48305131520,surfaceAverageAltitude=700,surfaceMaxAltitude=1100,surfaceMinAltitude=-200,systemZone="High",territories=60752,type="Planet",waterLevel=0,planetarySystemId=0},[3]={name="Thades",description="Thades is a scorched desert planet. Perhaps it was once teaming with life but now all that remains is ash and dust. The arkship geological survey reports a rocky mountainous planet bisected by a massive unnatural ravine; something happened to this planet.",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0.03552,atmosphericEngineMaxAltitude=32180,biosphere="Desert",classification="Thermoplanet",bodyId=3,GM=11776905000,gravity=0.49612641213015557,fullAtmosphericDensityMaxAltitude=150,habitability="Low",hasAtmosphere=true,isSanctuary=false,noAtmosphericDensityAltitude=32800,numSatellites=2,positionFromSun=3,center={x=29165536,y=10865536,z=65536},radius=49000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=21400,surfaceArea=30171856896,surfaceAverageAltitude=13640,surfaceMaxAltitude=13690,surfaceMinAltitude=370,systemZone="Low",territories=38882,type="Planet",waterLevel=nil,planetarySystemId=0},[30]={name="Thades Moon 1",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=30,GM=211564034,gravity=0.11202853997062348,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=29214402,y=10907080.695,z=433858.2},radius=14000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=0,surfaceArea=2463008768,surfaceAverageAltitude=60,surfaceMaxAltitude=300,surfaceMinAltitude=0,systemZone=nil,territories=3002,type="",waterLevel=nil,planetarySystemId=0},[31]={name="Thades Moon 2",description="",antiGravMinAltitude=1000,atmosphericDensityAboveSurface=0,atmosphericEngineMaxAltitude=0,biosphere="",classification="",bodyId=31,GM=264870000,gravity=0.12003058201190042,fullAtmosphericDensityMaxAltitude=0,habitability="",hasAtmosphere=false,isSanctuary=false,noAtmosphericDensityAltitude=0,numSatellites=0,positionFromSun=0,center={x=29404193,y=10432768,z=19554.131},radius=15000,safeAreaEdgeAltitude=500000,size="M",spaceEngineMinAltitude=0,surfaceArea=2827433472,surfaceAverageAltitude=70,surfaceMaxAltitude=350,surfaceMinAltitude=0,systemZone=nil,territories=3632,type="",waterLevel=nil,planetarySystemId=0}}}end;function SetupAtlas()b0=Atlas()for bB,bC in pairs(b0[0])do if aE==nil or bC.center.xaF then aF=bC.center.x end;if aG==nil or bC.center.yaH then aH=bC.center.y end end;b1=""local gn=1.1*(aF-aE)/1920;local go=1.4*(aH-aG)/1080;for bB,bC in pairs(b0[0])do local bY=960+bC.center.x/gn;local bZ=540+bC.center.y/go;b1=b1 ..''if not string.match(bC.name,"Moon")and not string.match(bC.name,"Sanctuary")and not string.match(bC.name,"Space")then b1=b1 ..""..bC.name..""end end;local cg=vec3(core.getConstructWorldPos())local bY=960+cg.x/gn;local bZ=540+cg.y/go;b1=b1 ..''b1=b1 .."You Are Here"b1=b1 ..[[]]b2=gn;b3=go;if screen_2 then screen_2.setHTML('