Welcome to the Advanced Rocketry(AR) advanced configuration readme!
To use manual xml planet configuration, download and modify this template and rename it to "planetDefs.xml" in the config/advancedRocketry folder.
This document will guide you through manually or semi-manually defining planets for your world using the planetDefs.xml file. This file can be located in either the "config/advRocketry" folder or in the "[path to world]/advRocketry" folder.
Advanced Rocketry will prioritize loading the version in the world folder to allow for each world to have its own configuration. If the world is being created for the first time then the file in "config/advRocketry/planetDefs.xml" is copied to "[path to world]/advRocketry/planetDefs.xml" automatically.
IMPORTANT: As of Advanced Rocketry 1.1.3 the overworld is no longer added to the solar system automatically. Instead the overworld must now be dimmapped to a star. This was done to allow for more flexibilty (ability to rename overworld, not require luna, etc).
IMPORTANT:As of Advanced Rocketry 0.2.0, the [path to world]/advRocketry/planetDefs.xml file reflects current state of the galaxy. It is possible to modify this config and reload the server and see changes relfected in the world without using the resetFromXML config setting.
The "galaxy" tag should be at the root of the document, this tells AR you are defining your set of planets in the body of this tag.
Example usage; generates one random planet around a star named Sol with the temperature of the sun at origin:
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> ... </star> </galaxy>
In addition to having single star systems, Advanced rocketry allows Binary, Trinary, and even n-body star systems (As many stars as you want!). It is much like defining a normal star except there's a slightly different set of tags. Namely the 'x', 'y', 'numPlanets', and 'numGasGiants' tags are absent. Additionally, there is a new 'separation' tag. The 'speration' tag determines how far from the host star the sister star is located in solar radii.
Unlike the top level star tag, when defining a binary or trinary system, the star tag must go inside the top level star tag immediately before the planet tags. The name tag is currently unused. Additionally, sister stars CAN be black holes.
Example usage; generates a trinary star system with the planet Jole:
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1" numGasGiants="0" blackHole="false"> <star name="Sol-2" temp="200" separation="10.0" /> <planet name="Jole"> ... </planet> </star> </galaxy>
The "planet" tag surrounds the definition of a planet. If a planet tag is used in the body of another planet tag, the inner planet tag defines a moon of the outer planet. The planet tag can have the attribute "name". The name attribute specifies the name of the planet. If the name attribute is not present then the planet is automatically named "Sol-planet_id".
The "numPlanet" attribute defines how many random (extra planets that are randomly generated in addition to planets specified with the planet tag) rocky planets should be defined in the solar systems, if not specified then AR will default to six. The "numGasGiants" attribute defines how many gas giants are created in the solar system.
The "blackHole" attribute determines whether or not a star is a black hole or not. Space stations can orbit black holes and use the Black Hole Generator to create power from items being thrown into the black hole
Example usage; generates one random planet and one planet with manually specified properties named "Earth" with a moon named "Luna" and another manually specified planet "Mars"
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1" numGasGiants="0" blackHole="false"> <planet name="Earth"> ... <planet name="Luna"> ... </planet> </planet> <planet name="Mars"> ...> </planet> </star> </galaxy>
The "isKnown" tag determines whether or not a planet is visible to the player without being researched in the warp controller. If the tag is not present the default is false. This tag as no effect on moons, if the parent planet is visible the moons are also visible.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1" numGasGiants="0"> <planet name="Earth"> ... <planet name="Luna"> ... </planet> </planet> <planet name="Mars"> <isKnown>True</isKnown> ... </planet> </star> </galaxy>
The "hasRings" tag specifies whether a planet has rings. By default a planet will not have a ring system.
Example usage; Gives Mars rings
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Mars"> <hasRings>true</hasRings> ... </planet> </star> </galaxy>
The "GasGiant" tag specifies whether a planet is a Gas Giant. Gas Giants cannot be landed on but can be used as sources of gasses
Example usage; creates a planet named "Jupiter" and makes it a gas giant
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Jupiter"> <GasGiant>true</GasGiant> ... </planet> </star> </galaxy>
The "gas" tag specifies a gas that is allowed to be mined from the planet. This tag is only effective on Gas Giant planets. Multiple copies of this tag per planet are allowed. The text inside the tag consists of a fluid name from Advanced Rocketry or another mod.
Example usage; creates a planet named "Jupiter" and makes it a gas giant containing only oxygen and nitrogen
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Jupiter"> <GasGiant>true</GasGiant> <gas>nitrogen</gas> <gas>oxygen</gas> ... </planet> </star> </galaxy>
The "genType" tag specifies the type of generation that the planet it is modifying will experience. ALL generation that is not type 0 (standard planets) is in development and may cause problems with your world. Type 1 is a Nether-like cave world though it can be extremely laggy and it\'s not recommended to be used. Type 2 is an asteroid type planet with RCS enabled and chunks of rock and ores scattered throughout a void world.
Example usage; creates a planet with asteroids
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Jupiter"> <genType>2</genType> ... </planet> </star> </galaxy>
The "fogColor" tag specifies the color of the fog on a planet. The body takes three comma separated values corresponding to Red, Green, and Blue respectively. These values can be any decimal number between 0 and 1 inclusive. A 24-bit (6-byte)Hex color can also be specified by prepending the code with "0x".
Example usage; specifies a teal color fog using the RGB format.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <fogColor>0.5,1,1</fogColor> ... </planet> </star> </galaxy>
Example usage; specifies the same teal color fog as the previous example using hex format.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <fogColor>0x7FFFFFF</fogColor> ... </planet> </star> </galaxy>
The "skyColor" tag specifies the color of the sky on a planet. The body takes three comma separated values corresponding to Red, Green, and Blue respectively. These values can be any decimal number between 0 and 1 inclusive. A 24-bit (6-byte) Hex color can also be specified by prepending the code with "0x".
Example usage; specifies a teal color sky using the RGB format.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <skyColor>0.5,1,1</skyColor> ... </planet> </star> </galaxy>
Example usage; specifies the same teal color sky as the previous example using hex format.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <skyColor>0x7FFFFFF</skyColor> ... </planet> </star> </galaxy>
The "atmosphereDensity" tag specifies the density of the atmosphere on a planet. Any value greater than 75 is breathable, 100 is Earth-like, anything higher than 100 has a denser atmosphere than Earth and will have thicker fog. Any value less than 75 is unbreathable and will require a spacesuit and will generate craters. Any value over 200 will cause bad status effects. With default configs, any world with no oxygen will cause nausea.
<hasOxygen> tags allow you to specify whether the atmosphere of this type has oxygen, independent of the pressure. Overly hot atmospheres or overly high pressure ones with no oxygen can kill the player very quickly, be warned!
Atmosphere density also has an impact on the temerature of the planets, planets with thinner will be colder and planets with thicker atmospheres will be warmer.
Max: 1600
Default: 100
Min: 0
Example usage; specifies an atmosphere with the same density as Earth
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <atmosphereDensity>100</atmosphereDensity> ... </planet> </star> </galaxy>
The "gravitationalMultiplier" tag specifies the density of the gravitational pull on a planet. 100 is Earth-like. Any value less than 100 will result in a gravitational pull less than that of Earth. Any value higher than 110 may result in players being UNABLE to jump up blocks without assistance from stairs. Values very close to 0 ( < 10) may result in players being unable to fall. YOU HAVE BEEN WARNED.
Example usage; specifies an atmosphere with the same density as Earth
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <gravitationalMultiplier>100</gravitationalMultiplier> ... </planet> </star> </galaxy>
The "orbitalDistance" tag specifies the distance of the planet from the body it is orbiting.
For planets orbiting the SUN:
100 is defined as an Earth-like and will result in the sun appearing normal in size. 1600 is very far from the sun and will result in the sun appearing very small. 1 is nearly touching the surface of the host star and will result in the host star taking up a majority of the sky. Orbital distance also has an impact on the temperature of the planets, planets far away will be colder and planets closer to the host star will be warmer.
For MOONS orbiting other planets:
The effects are the same as for planets orbiting a star except the observed host star size is determined by the planet orbiting the sun. I.E. the apparent size of the sun as seen from the moon is determined by the distance between the Earth and the sun. The apparent distance of the host planet, however, will be changed by this value. The apparent size of the moon as viewed from the host planet is also the direct result of this value.
For planets orbiting the sun, lower values result in higher temperatures. For moons, this value has no effect on temperatures.
Example usage; specifies a distance from the host star to be the same as Earth
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <orbitalDistance>100</orbitalDistance> ... </planet> </star> </galaxy>
The "orbitalTheta" tag specifies the starting angular displacement relative to the origin in degrees.
Example usage; specifies a planet to start exactly opposite the sun from Earth
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <orbitalTheta>180</orbitalTheta> ... </planet> </star> </galaxy>
The "orbitalPhi" tag specifies the angle of the plane on which the planet rotates around the star or it\'s host planet, 90 will cause the planet or sun to rise and set in the north and south (the planet would orbit such that it would pass over both poles) whereas 0 would cause the sun to rise in the east and set in the west
Example usage; sun rises in the north and sets in the south
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <orbitalPhi>90</orbitalPhi> ... </planet> </star> </galaxy>
The "oreGen" tag allows configuration of ore spawn on a planet-by-planet basis. Exact specifics on how to use the tag are documented in more detail here.
Please note that this is the vanilla veinSize property, this is not the number of ore blocks in a vein. Vanilla coal has a size of 16, while iron has a size of 8. Sizes over 100 can mean veins the size of small villages with 5k+ ore, be wary.
Note: unless the dimid of the planet is explicitly specified with the dimid tag, adding or removing planets to an already existing world in the AR config could result in unpredictable behavior
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Pootis"> <OreGen> ... </OreGen> </planet> </star> </galaxy>
The "rotationalPeriod" tag specifies length of a day night cycle for the planet in ticks. Where 20 ticks = 1 second. 24,000/20 = 1,200 seconds = 20 minutes. I strongly recommend not using values < 400 as I found them to be very disorienting and somewhat motion sickness inducing.
Example usage; specifies a planet named Beebop to have a 10 minute day/night cycle
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Beebop"> <rotationalPeriod>12000</rotationalPeriod> ... </planet> ;</star> </galaxy>
The "fillerBlock" tag specifies the block to be used to fill most of the world. As a note, this may be better used in conjunction with the OreGen config as many ores may only spawn in stone.
This will prevent ALL top blocks and filler blocks (Think grass and dirt respectively) from spawning, use BiomeTweaker to fix this
Example usage; Creates a netherrack world
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <fillerBlock>minecraft:netherrack</fillerBlock> ... </planet> </star> </galaxy>
The "oceanBlock" tag specifies the block that should fill oceans. It is \'Minecraft:water\' by default. It can be any block in the game, however damage values are not accepted at this point in time.
It is also ill advisable to use a block with a tile entity (like a furnace or chest) as an ocean block unless you have a really powerful computer.
Example usage; Lava oceans
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Vulcan"> <oceanBlock>Minecraft:lava</oceanBlock> ... </planet> </star> </galaxy>
The "seaLevel" tag specifies the height at which ocean generates on a world, only works on worlds generated by AR.
Example usage; specifes a planet named WaterWorld and gives it a sealevel of 128
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="WaterWorld"> <seaLevel>128</seaLevel> ... </planet> </star> </galaxy>
The "spawnable" tag tells Advanced Rocketry to attempt to spawn a provided entity on a given planet. You can have more than one tag per planet. The tag has an entity name as the inner data plus three attributes:
Example usage; specifies a planet named Squidville and spawns villagers and sheep in the wild where each group contains between 1 and 5 members.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Squidville"> <spawnable weight="1" groupMin="1" groupMax="5">minecraft:villager</spawnable> <spawnable weight="1" groupMin="1" groupMax="5">minecraft:sheep</spawnable> ... </planet> </star> </galaxy>
The "biomeIds" tag specifies a comma separated list of biome ids to generate on the planet. This list can include both vanilla and modded biome ids. If this tag is not included then the planet will automatically generate a list of biomes from its atmosphere density, gravitationalMultiplier, and distance from the sun.
A list of vanilla biomes can be found here
Example usage; Planet will generate only ocean and ice plains
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth"> <biomeIds>0,12</biomeIds> ... </planet> </star> </galaxy>
The "DIMID" attribute allows a user to specify the exact dimension id that the planet is going to occupy, useful for custom ore gen mods and more control in general
Example usage; Planet will generate with the dimid 99
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth" DIMID="99"> ... </planet> </star> </galaxy>
The "dimMapping" attribute allows a user to specify that the following planet is a dimension from another mod. Note that it must be accompanied by a DIMID tag!!!
Be warned, if another mod does not have a dimension with that ID it will cause a crash if somebody tries to go there!
Example usage; Adding Twilight forests (with default configs) as a planet around Sol
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Earth" DIMID="7" dimMapping=""> ... </planet> </star> </galaxy>
The "customIcon" attribute allows a user to specify the icon used for a planet. You can load your own custom icons with mods like ResourceLoader by specifying the file name in the planetDefs.xml file.
Name | Icon | Name | Icon | Name | Icon | Name | Icon |
---|---|---|---|---|---|---|---|
GasGiantBlue | GasGiantRed | GasGiantBrown | Venusian | ||||
Lava | MarsLike | Moon | CarbonWorld | ||||
EarthLike | WaterWorld | DesertWorld | IceWorld |
Example usage; Makes the overworld have the texture of a red gas giant
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Overworld" DIMID="0" dimMapping="" customIcon="gasgiantred"> ... </planet> </star> </galaxy>
Example usage: If using a resource pack, be sure the texture you want to use, in this case smiley.png
, is in the advancedrocketry/assets/textures/planets
folder. Also be sure that you include a picture for the space station view. This should be saved as smileyLEO.jpg
. Notice the file extensions and naming conventions on the two files.
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> <planet name="Overworld" DIMID="0" dimMapping="" customIcon="smiley"> ... </planet> </star> </galaxy>
The "artifact" attribute allows a user to specify an item requirement for travelling to the planet. The artifacts must all be in the warp controller every time the user wishes to warp to that planet. Also if the "planetsMustBeDiscovered" is set to true then in order for the planet to be discovered in the warp controller the specified artifacts must be placed in the machine.
Each item can be specifed by <modname>:<blockname> <meta>
Example usage; Makes a planet by the of "CoalLand" require charcoal (coal with meta 1) in the warp controller to warp to in a warpship
<galaxy> <star name="Sol" temp="100" x="0" y="0" numPlanets="1"> ... <planet name="CoalLand"> <artifact>minecraft:coal 1</artifact> ... </planet> ... </star> </galaxy>