Modding:Lua/Tables/Celestial
The celestial table contains functions that relate to the client sky, flying the player ship, system positions for planets, system objects, and the celestial database. It is available in the following contexts:
- script pane
bool
celestial.skyFlying()
Returns whether the client sky is currently flying.
String
celestial.skyFlyingType()
Returns the type of flying the client sky is currently performing.
String
celestial.skyWarpPhase()
Returns the current warp phase of the client sky, if warping.
float
celestial.skyWarpProgress()
Returns a value between 0 and 1 for how far through warping the sky is currently.
bool
celestial.skyInHyperspace()
Returns whether the sky is currently under hyperspace flight.
flyShip
celestial.skyFlying(Vec3I
system, SystemLocation
destination)
Flies the player ship to the specified SystemLocation in the specified system.
SystemLocation is either of the following types: Null, CelestialCoordinate, Object, Vec2F
The locations are specified as a pair of type and value
local system = celestial.currentSystem().location local location = nil -- Null location = {"coordinate", {location = system, planet = 1, satellite = 0}} -- CelestialCoordinate location = {"object", "11112222333344445555666677778888"} -- Object (UUID) location = {0.0, 0.0} -- Vec2F (position in space) celestial.flyShip(system, location)
bool
celestial.flying()
Returns whether the player ship is flying
Vec2F
celestial.shipSystemPosition()
Returns the current position of the ship in the system.
SystemLocation
celestial.shipDestination()
Returns the current destination of the player ship.
SystemLocation
celestial.shipLocation()
Returns the current system location of the player ship.
CelestialCoordinate
celestial.currentSystem()
Returns the CelestialCoordinate for system the ship is currently in.
float
celestial.planetSize(CelestialCoordinate
planet)
Returns the diameter of the specified planet in system space.
Vec2F
celestial.planetPosition(CelestialCoordinate
planet)
Returns the position of the specified planet in system space.
CelestialParameters
celestial.planetParameters(CelestialCoordinate
planet)
Returns the celestial parameters for the specified planet.
VisitableParameters
celestial.visitableParameters(CelestialCoordinate
planet)
Returns the visitable parameters for the specified visitable planet. For unvisitable planets, returns nil.
String
celestial.planetName(CelestialCoordinate
planet)
Returns the name of the specified planet.
uint64_t
celestial.planetSeed(CelestialCoordinate
planet)
Returns the seed for the specified planet.
float
celestial.clusterSize(CelestialCoordinate
planet)
Returns the diameter of the specified planet and its orbiting moons.
List<String>
celestial.planetOres(CelestialCoordinate
planet)
Returns a list of ores available on the specified planet.
Vec2F
celestial.systemPosition(SystemLocation
location)
Returns the position of the specified location in the *current system*.
Vec2F
celestial.orbitPosition(Orbit
orbit)
Returns the calculated position of the provided orbit.
local orbit = { target = planet, -- the orbit target direction = 1, -- orbit direction enterTime = 0, -- time the orbit was entered, universe epoch time enterPosition = {1, 0} -- the position that the orbit was entered at, relative to the target }
List<Uuid>
celestial.systemObjects()
Returns a list of the Uuids for objects in the current system.
String
celestial.objectType(Uuid
uuid)
Returns the type of the specified object.
Json
celestial.objectParameters(Uuid
uuid)
Returns the parameters for the specified object.
Uuid
celestial.systemSpawnObject(String
typeName, Vec2F
position, [Uuid
uuid], [Json
parameters])
Spawns an object of typeName at position. Optionally with the specified UUID and parameters.
Objects are limited to be spawned outside a distance of `/systemworld.config:clientSpawnObjectPadding` from any planet surface (including moons), star surface, planetary orbit (including moons), or permanent objects orbits, and at most within `clientSpawnObjectPadding` from the outermost orbit.
List<Uuid>
celestial.playerShips()
Returns a list of the player ships in the current system.
playerShipPosition
celestial.playerShipPosition(Uuid
uuid)
Returns the position of the specified player ship.
bool
celestial.hasChildren(CelestialCoordinate
coordinate)
Returns whether the specified celestial coordinate has any children.
List<CelestialCoordinate>
celestial.children(CelestialCoordinate
coordinate)
Returns the children for the specified celestial coordinate. For systems, return planets, for planets, return moons.
List<CelestialCoordinate>
celestial.scanSystems(RectI
region)
Returns a list of systems in the given region. This scans for systems asynchronously, meaning it may not return all systems if they have not been generated or sent to the client. Use `scanRegionFullyLoaded` to see if this is the case.
List<pair<Vec2I, Vec2I>>
celestial.scanConstellationLines(RectI
region)
Returns the constellation lines for the specified universe region.
bool
celestial.scanRegionFullyLoaded(RectI
region)
Returns whether the specified universe region has been fully loaded.
List<pair<String, float>>
celestial.centralBodyImages(CelestialCoordinate
system)
Returns the images with scales for the central body (star) for the specified system coordinate.
List<pair<String, float>>
celestial.planetaryObjectImages(CelestialCoordinate
coordinate)
Returns the smallImages with scales for the specified planet or moon.
List<pair<String, float>>
celestial.worldImages(CelestialCoordinate
coordinate)
Returns the generated world images with scales for the specified planet or moon.
List<pair<String, float>>
celestial.starImages(CelestialCoordinate
system, float
twinkleTime)
Returns the star image for the specified system. Requires a twinkle time to provide the correct image frame.
Portal - Basics - JSON - Lua - Assets - Guides
Tables - Hooks - Tips & Tricks - Libraries - All Pages