Space Engineers

Space Engineers

174 ratings
Star System Generator User Guide
By Patrick
Full length user guide to using Star System Generator
5
2
2
2
2
   
Award
Favorite
Favorited
Unfavorite
Randomly Create Entire Star Systems
This tool creates random star systems for your game. I find having to manually place modded planets in my game takes a lot of the fun out of the discovery of the star system, and no matter where I place planets I feel like I'm either cheesing to make it too easy or too hard. So I built this tool.

Star System Generator (Workshop link)
Features
  • Compatible with modded planets
  • Supports exceptional planet sizes
  • Generate entire star systems randomly
  • Generate bespoke star systems
  • Provides a datapad of GPS points for all celestial bodies
  • Compatible with Economy, Deep Ores
Questions and Suggestions
While I appreciate the feedback and suggestions that arrive via comments here, I prefer to use a platform where I can provide superior communication and interaction. For this, I have created a Discord server where I can troubleshoot, give technical advice, and have discussions. Steam comments get lost to time, but Discord histories can be searched and referenced. So comments have been disabled. Please go to the Discord for questions and technical support.

Discord[discord.gg]
Bug Reports
While I appreciate the feedback and suggestions that arrive via comments here, I prefer to use a platform where I can provide superior communication and interaction. For this, I have created a Discord server where I can troubleshoot, give technical advice, and have discussions. Steam comments get lost to time, but Discord histories can be searched and referenced. So comments have been disabled. Please go to the Discord for questions and technical support.

Discord[discord.gg]
Support the Mod
If you would like to provide support for the continued development of this mod, please feel free to use Patreon[www.patreon.com].

I'm also happy with word-of-mouth advertising, so if you like it, get your friends to use it. :)
Quick Start
  • Start an "Empty Space" game (1) (2)
  • Open the chat and use the command /ssg random to generate a completely random star system
  • Save your game and remove the mod (3)
  • Have fun discovering the star system!

(1) The Economy system must be disabled in your initial game. Use this mod until you are happy, then save the game and enable Economy.

(2) When adding planets that make use of scripts (such as Rexxar's environmental damage script) you must save and reload the game after generating the planets. This allows the scripts to initialize correctly.

(3) If you want to use the Deep Ores mod, do not install it initially. Use this mod until you are happy, then save the game and install the Deep Ores mod. This goes for any mod that modifies planets, ore, spawn options, etc.

(4) The spawn selection screen will not present the planets as spawn options until you restart the game.

Generating star systems can take several minutes.
During this time your game will appear frozen. It is not frozen.
Be patient. The game is generating the voxel data for all the planets and moons.
Dedicated Servers
This should now work on Dedicated Servers normally. Just connect to the server with your game client like normal and as long as you have admin or owner authority, you can run the mod on the DS.
Chat Commands
Use the following commands in game chat. The prefix is /ssg. This can be changed in the config file to avoid conflicts with other mods. All commands are case-insensitive. There are two steps to advanced star system generation.
  1. Assign things to the "creation queue"
  2. Use Create to have the mod create the indicated things and locate them in space.
Random
Usage
Random {quantity} {R|S|U}

Description
Clears all voxels in the star system and places new randomly selected planets and moons. Shortcut for using ClearVoxels, ClearQueue, AddRandom, and Create.

Wipes the existing star system and creation queue. Generates a random creation queue and uses it to spawn a new star system. All modded planets added to the game will be included, as well as a random selection of vanilla planets.

The planets are spawned using a Radius of (1-10) x 1000 km, and a Distance of 1000 km.

An optional number may be added to specify the number of celestial bodies the new star system will contain. CBs will be selected from all available definitions in the game (vanilla and any loaded mods), with priority given to modded planets.

An optional argument can be provided to calculate each planet and moon's size based on its surface gravity.
  • R (Random) The size will be randomized between a value of 19 and 40 km for moons, and 60 to 120 km for planets. This is the default behavior when no argument is provided.
    /ssg Random 7 R or /ssg Random

  • S (Scaled) The size is proportional to surface gravity, but is bounded between 19 and 40 km. The calculation is designed to produce the smallest vanilla moon (19 km) at the lowest vanilla gravity (0.25 G). Celestial bodies are added as either planets or moons based upon their defined surface gravity.
    /ssg Random 15 S

  • U (Unbounded) The size is calculated as for "Scaled," but there is no upper limit. The lower limit is still 19 km. Celestial bodies are added as either planets or moons based upon their defined surface gravity.
    /ssg Random 22 U

Help
Usage
Help

Description
Shows list of all commands and their parameters. Braces { } surround optional parameters. This convention is followed throughout this guide as well.



There are more commands than can fit in the chat window at once. Use the k hotkey to open your control panel and go to Comms. This shows chat history and allows you to scroll up to see more. Unfortunately, chat commands do not work from this screen.

ListAvailable
Usage
ListAvailable

Description
Shows a list of all celestial bodies (vanilla and modded) that are defined in the game. Use this to find the exact name of a planet or moon you want to add to the creation queue.
ListMod
Usage
ListMod

Description
Shows a list of only the modded celestial bodies that are defined in the game. Use this to find the exact name of a modded planet or moon you want to add to the creation queue.
AddPlanet
Usage
AddPlanet name {km|R|S|U}

Description
Add a planet to the creation queue. Any celestial body can be added as a planet.

You must provide the planet name. Use ListAvailable or ListMod to see the available planets. Multiple planets of the same name can be added.

An optional planet size (in kilometers) can be provided. When the planet size is omitted, a random size will be generated between 60 and 120 kilometers. Exceptional sizes are supported, but will not be generated randomly.

To make planets larger than 120km, or smaller than 19km, simply provide the desired size, e.g., /ssg AddPlanet Overvent 1000

Instead of a planet size, an optional argument can be provided to calculate size based on surface gravity.
  • R (Random) The size will be randomized between a value of 60 and 120 km. This is the default behavior when no size argument is provided.
    /ssg AddPlanet Alien R or /ssg AddPlanet Earthlike

  • S (Scaled) The size is proportional to surface gravity, but is bounded between 60 and 120 km. The calculation is designed to produce the largest vanilla planet (120 km) at the highest vanilla gravity (1.2 G).
    /ssg AddPlanet Aphus S


  • U (Unbounded) The size is calculated as for "Scaled," but there is no upper limit. The lower limit is 19 km.
    /ssg AddPlanet Aphus U
/ssg AddPlanet Overvent 1000
QueuedPlanets
Usage
QueuedPlanets

Description
Shows a list of all the planets you have added to the creation queue.
RemovePlanet
Usage
RemovePlanet name

Description
Remove a planet from the creation queue.

You must provide the planet name. If there are multiple planets of the same name in the queue, this will remove all of them.
AddMoon
Usage
AddMoon name {km|R|S|U} {parent}

Description
Add a moon to the creation queue. Moons are created near their parent planet. You cannot add moons to moons.

You must provide the moon name. Any celestial body can be added as a moon.

An optional moon size (in kilometers) may be provided. When the moon size is omitted, a random size will be generated between 19 and 40 kilometers. Exceptional moon sizes are supported.

Instead of a moon size, an optional argument can be provided to calculate size based on surface gravity.
  • R (Random) The size will be randomized between a value of 19 and 40 km. This is the default behavior when no size argument is provided.
    /ssg AddMoon Europa R Mars or /ssg AddMoon Moon Earthlike

  • S (Scaled) The size is proportional to surface gravity, but is bounded between 19 and 40 km. The calculation is designed to produce the smallest vanilla moon (19 km) at the lowest vanilla gravity (0.25 G).
    /ssg AddMoon Titan S Alien

  • U (Unbounded) The size is calculated as for "Scaled," but there is no upper limit. The lower limit is still 19 km.
    /ssg AddMoon K-139 U Caldera

An optional parent name may also be provided. When there are multiple planets that match the parent name, e.g., your system has 2 Earthlike's, then one will be selected at random during the creation process.

If you want to create a rogue moon, omit the parent name. Rogue moons are positioned in the star system as if they are planets.

QueuedMoons
Usage
QueuedMoons

Description
Shows a list of all the moons (and their parent) you have added to the creation queue. Rogue moons are indicated with a double asterisk (**) next to their names. Rogue moons are moons whose parent does not exist in the creation queue.
QueuedRogue
Usage
QueuedRogue

Description
Shows a list of only the rogue moons in the creation queue. Rogue moons will still be created, but they will not be orbiting a planet.
RemoveMoon
Usage
RemoveMoon name

Description
Remove a moon from the creation queue. You must provide the moon name.
AddNebula
Usage
AddNebula name

Description
Adds a nebula to the creation queue.

A name must be provided. When name is a planet name, the nebula will be created around the named planet. When the name does not match any planet in the creation queue, the nebula will be created near the star system origin (and will be much larger), which will place it roughly in the middle of the distribution of planets.

Requires the Nebula mod to be installed. (See Supported and Related Mods for the link.)

/ssg AddNebula Pertam
QueuedNebulae
Usage
QueuedNebulae

Description
Shows a list of all the nebulae you have added to the creation queue.
RemoveNebula
Usage
RemoveNebula name

Description
Removes a nebula from the creation queue. You must provide the nebula name. Requires the Nebula mod to be installed.
AddBelt
Usage
AddBelt {density} {parent}

Description
Add an asteroid belt to the creation queue. Asteroid belts are created around their parent. You can only add asteroid belts to planets or moons. Asteroids are 500 to 1,500 meters in size. For best results, use this command only after there are planets (or moons) in the creation queue.

An optional belt density may be provided. Density should be between 0 and 1. When density is omitted, a random value is generated from 0 to 1. Values above 1 are supported, but are not recommended, and are not randomly generated.
  • At densities above 1, you may experience unusual behavior, additional delays during star system creation, and players on low- and mid-tier machines will experience severe drops in frame rate when they are within visibility of the asteroid belt.
An optional parent name may also be provided. The asteroid belt will be placed around the provided planet or moon.
  • When there are multiple planets that match the parent name, e.g., your system has 2 Pertams, then one will be selected at random during the creation process.
  • When no parent name is provided, a random parent will be selected from the currently queued planets and moons.
  • When no planets and moons are queued, the selection will be made at creation time.
  • When the parent body is not queued at creation time, the asteroid belt will not be generated.
/ssg AddBelt 0.5 Titan


/ssg AddBelt 2 Alien
Densities above 1 sometimes produce unexpected results
AddChain
Usage
AddChain {km} {parent}

Description
Add a chain of asteroids to the creation queue. Asteroid chains are created near a parent celestial body. You can only add asteroid chains near planets or moons. Asteroids are 500 to 1,500 meters in size. For best results, use this command only after there are planets (or moons) in the creation queue.

An optional chain length may be provided. When length is omitted, a random value is generated from 10 to 20 kilometers. Values above 20 are supported, but will not be generated randomly.

An optional parent name may also be provided. The asteroid chain will be placed near the provided planet or moon.
  • When there are multiple planets that match the parent name, e.g., your system has 2 Pertams, then one will be selected at random during the creation process.
  • When no parent name is provided, a random parent will be selected from the currently queued planets and moons.
  • When no planets and moons are queued, the selection will be made at creation time.
  • When the parent body is not queued at creation time, the asteroid chain will not be generated.
/ssg AddChain 10 Moon


/ssg AddChain 100 Triton
QueuedAsteroids
Usage
QueuedAsteroids

Description
Shows a list of all the asteroid systems (and their parent) you have added to the creation queue.
RemoveBelt
Usage
RemoveBelt parent

Description
Remove an asteroid belt from the creation queue. You must provide the parent name. All asteroid belts will be removed from the parent body.

There is no way to remove an asteroid system with no assigned parent from the creation queue. You must either use ClearQueue to remove everything, or use Create (or Recreate) to assign a random parent. After that, they can be removed normally.
RemoveChain
Usage
RemoveChain parent

Description
Remove an asteroid chain from the creation queue. You must provide the parent name. All asteroid chains will be removed from the parent body.

There is no way to remove an asteroid system with no assigned parent from the creation queue. You must either use ClearQueue to remove everything, or use Create (or Recreate) to assign a random parent. After that, they can be removed normally.
AddStar
Usage
AddStar name {km|R|S|U}

Description
This works exactly like AddPlanet in all respects with the following exceptions.
  1. The object will always be created at (0,0,0)
  2. There can be only 1 star. Subsequent uses will replace the queue entry with the new value.
/ssg AddStar NeutronStar 250
RemoveStar
Usage
RemoveStar name

Description
Removes the star the creation queue. You must provide the name.
AddRandom
Usage
AddRandom {#} {R|S|U}

Description
Adds an entire star system to the creation queue. All mod planets will be included in the star system.

An optional argument can be provided to specify the number of celestial bodies to include in the star system. CBs will be selected from all available definitions in the game (vanilla and any loaded mods), with priority given to modded planets.

An optional argument can be provided to calculate each planet and moon's size based on its surface gravity.
  • R (Random) The size will be randomized between a value of 19 and 40 km for moons, and 60 to 120 km for planets. This is the default behavior when no argument is provided.
    /ssg AddRandom 7 R or /ssg AddRandom

  • S (Scaled) The size is proportional to surface gravity, but is bounded between 19 and 120 km. The calculation is designed to produce the smallest vanilla size (19 km) at the lowest vanilla gravity (0.25 G). Celestial bodies are added as either planets or moons based upon their defined surface gravity.
    /ssg AddRandom 15 S

  • U (Unbounded) The size is calculated as for "Scaled," but there is no upper limit. The lower limit is still 19 km. Celestial bodies are added as either planets or moons based upon their defined surface gravity.

    /ssg AddRandom 11 U
ClearQueue
Usage
ClearQueue

Description
Removes all content from the creation queue.
ClearVoxels
Usage
ClearVoxels

Description
Deletes all voxels in the star system, planets, moons, asteroids, nebula, everything.

NOTE
If you modify a nebula in any way, you may be unable to remove the nebula. The work-around is to move your spectator camera into the nebula and then use the Nebula mod's chat command /nremove to remove it.
Create
Usage
Create

Description
Creates a star system from the creation queue. Planets are distributed around the star system. Moons are placed near their parent planets. Rogue moons are distributed as if they were planets.

Existing planets and asteroids are not removed. Collision avoidance is not guaranteed.



Sectors
The system is divided into sectors. The number of sectors is determined by the total number of planets and rogue moons. Each sector has a single planet.
A system with 6 planets will have 6 sectors.


Sector Subivision
Planets are spawned in the middle 50% of the sector, at a minimum distance of Radius, and a maximum distance of Radius + 1000
The sector's planet will spawn anywhere within the green region.


Moon Spawn
The algorithm ensures planets and moons always have distance between them. This distance is at least 150 km. Moons will appear up to 5x their diameter further away.
The algorithm ensures moons never overlap their parent planet.
Recreate
Usage
Recreate

Description
Shortcut for using ClearVoxels and then Create. Wipes the existing star system voxels and generates a new star system from the creation queue.
ReadDatapad
Usage
ReadDatapad

Description
Will read the first datapad in the player's inventory with the title matching the command prefix (by default, this is "/ssg"). The contents of the datapad are read as if they are commands typed in chat. These commands do not require the command prefix (see image below).



Radius
Usage
Radius km

Description
Set the minimum distance of all planets from the star system origin. You must provide a distance in kilometers. All planets will be placed in a band 1000 km deep beyond the Radius. The default value is 2000 km. The Random command uses a value of (1-10) x 1000 km.

Distance
Usage
Distance km

Description
Minimum distance between adjacent planets. The default value is 1000 km. Most of the time this setting will have no effect. Only systems that have extremely small radii or extreme numbers of planets will be affected by this limit.


Inclination
Usage
Inclination degrees

Description
Maximum angle that planets can spawn from the plane of the ecliptic. The default value is 45 degrees.

Note, since planets in SE don't actually move, "the ecliptic" is a bit notional and is effectively the universe XZ plane (with the Y axis being "up").

GPS
Usage
GPS

Description
Creates a datapad(s) in your inventory with GPS coordinates for every celestial body in the star system. Create, Recreate, and Random automatically provide this datapad. However, this command can be useful if you lose it, or need multiple copies to build starter ship blueprints or something.

The GPS label includes the planet's name, it's size, and the name of it's parent, should it be orbiting something.

Supported and Related Mods