Mr. Kerbin Posted October 5 Share Posted October 5 (edited) Kopernicus Planetary Config Guides ---------------------------------------------------------------- The goal of this thread, is to provide a better understanding of Kopernicus planets. Other tutorials are allowed to be linked/posted here. So you want to make planets? To start, let's make one of the simplest planets: a gas giant. Make sure you have a config. It should be like (name here).cfg Make sure you have a folder with the mod name, inside are 3 more folders, Configs; this is where you will store the, well, configs for the planets. The configs need to end with a .cfg Then a folder called Cache. Then a folder called Textures, with a folder inside called PluginData. For texturing, please reference the Planetary Texturing Guide Repository. Now start with this. @Kopernicus { Body { } } Then we need to add two things, a file path and the internal name. Like so. @Kopernicus { Body { name = GasPlanet2 cacheFile = ModName/Cache/GasPlanet2.bin } } GasPlanet2 is not a necessary name, it is just an example. The cacheFile is the planet in the map view or far away. This is also known as the scaled version. It also tells Kopernicus where to put the model. Then, in the body node, under the cacheFile thing, add this. Template { name = Jool } The Template node gives a stock planet to base your planet off of. In this case, we use only Jool as it is the only gas giant. Any way, now in the body node, below the Template node, add this. Properties { displayName = Selene^N //Name of body in-game. description = Selene is the second gas giant in the solar system. //Description of the body ingame. radius = 5000000 //Radius of body, in meters. geeASL = 0.75 //G force when the altitude meter hits 0. rotates = true //Does the body rotate? rotationPeriod = 46800 //Rotation period, in seconds. Delete this if tidallyLocked is set to True, or rotates is false. tidallyLocked = False //If the body is tidally locked to its parent. This means that it takes as long to rotate as it does to make a full orbit around its parent. timewarpAltitudeLimits = (numbers) // Determines at which altitude above sea level certain timewarp altitudes become available. 0 30000 30000 60000 100000 300000 600000 800000 means that 1x timewarp is available at 0 meters, 5x timewarp at 30000 meters all the way up to the max timewarp starting at 800000 meters. Keep 1x timewarp always at 0. isHomeWorld = false //Determines if this is the body that houses KSC, so for stability's sake it's recommended to keep this at false for any bodies you add. ScienceValues { landedDataValue = (number) //Science multiplier for "landed" science. splashedDataValue = (number) //Science multiplier for "splashed down" science. flyingLowDataValue = (number) //Science multiplier for "flying low" science. flyingHighDataValue = (number) //Science multiplier for "flying high" science. inSpaceLowDataValue = (number) //Science multiplier for "in space low" science. inSpaceHighDataValue = (number) //Science multiplier for "in space high" science. recoveryValue = (number) //The recovery value for this body. Multiplies the funds you get back and science. flyingAltitudeThreshold = (number) //The altitude when "flying low" becomes "flying high." spaceAltitudeThershold = (number) //The altitude when "in space low" becomes "in space high." } } The config in full should look like this. Spoiler @Kopernicus { Body { name = (name of your world) cacheFile = (mod name)/Cache/(name here).bin Template { name = Jool } Properties { displayName = (name here) description = (cool stuff here) radius = (number) geeASL = (number) rotates = (true or false) rotationPeriod = (number) tidallyLocked = (true or false) timewarpAltitudeLimits = (numbers) isHomeWorld = false ScienceValues { landedDataValue = (number) splashedDataValue = (number) flyingLowDataValue = (number) flyingHighDataValue = (number) inSpaceLowDataValue = (number) inSpaceHighDataValue = (number) recoveryValue = (number) flyingAltitudeThreshold = (number) spaceAltitudeThershold = (number) } } } } Okay, now that’s done. But we haven’t specified a orbit! So, like with the Properties node, under Properties, add a orbit node like this one: Orbit { referenceBody = Sun //Body the planet/moon is orbiting. semiMajorAxis = 123792956456 //The average altitude that a body orbits, meters. Kerbin's is 13,599,840,256 meters. eccentricity = 0.062 //Deviation of a orbit from a circle. 0 is a perfect circle, but ONLY USE LESS THAN 1 inclination = 1.125 //Tilt of the orbit. longitudeOfAscendingNode = 54 //Look at Wikipedia, for this and all below, except color. argumentOfPeriapsis = 3 meanAnomalyAtEpoch = 3.01 epoch = 0 //KEEP AS 0 color = (numbers in RGBA) //Color of orbit in tracking station. } Yay! Now you have an orbit set. But, we have no texture set. Like, you know how planets in KSP look in the tracking station? You need a ScaledVersion node. (remember that?) ScaledVersion { type = Atmospheric fadeStart = 0 fadeEnd = 0 Material { color = 1,1,1,1 specColor = 0,0,0,0 shininess = 0 rimPower = 1 rimBlend = 1 Gradient { 0.0 = 0.3, 0.6, 1, 1 0.1 = 0.3, 0.3, 0.1, 1 0.2 = 0.3,0.15,0,1 0.4 = 0,0,0,1 1.0 = 0,0,0,0 } } OnDemand { texture = Example/Textures/PluginData/SeleneColor.dds normals = Example/Textures/PluginData/SeleneNormal.dds } } Edited 15 hours ago by Mr. Kerbin I'm not dead yet! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.