-
Posts
1,683 -
Joined
-
Last visited
Content Type
Profiles
Forums
Developer Articles
KSP2 Release Notes
Everything posted by The White Guardian
-
Evolution [1.3.1] [Kopernicus]
The White Guardian replied to The White Guardian's topic in KSP1 Mod Development
Alright, it's about time for a way overdue release. Now that I have recompiled INSTANTIATOR myself to work with 1.3, everything is good to go. EVOLUTION testing scheduled for tomorrow.- 169 replies
-
- 3
-
-
- kopernicus
- planets
-
(and 1 more)
Tagged with:
-
HOLD ON TO YOUR SEATBELTS, KERBALS! This is an image I took mere minutes ago, in KSP 1.3 I have decided to update INSTANTIATOR myself in the absence of @Artyomka15, with the following changes: I am going to do some final tests, expect a download link before / during the weekend. Please know that I am in no way, shape or form claiming ownership of INSTANTIATOR, I am merely trying to keep the mod up-to-date and available to the public because it is such a wonderful and powerful tool, while improving it where possible. This weekend, I will release a version of INSTANTIATOR recompiled against 1.3. The legend that is INSTANTIATOR can and will not die!
-
[1.8.1-1] [PLEASE FORK ME] Kopernicus & KittopiaTech
The White Guardian replied to Thomas P.'s topic in KSP1 Mod Releases
Nope, sorry. That'd require a complete rework of the game's mechanics. -
1. The dev does not have to update his mods. It's not like updating his mods is the one and only thing he has to do. 2. Let's give the dev the time to update the mod, shall we? That we are all eager to play with mods such as INSTANTIATOR does not mean that @Artyomka15 has to push aside everything he wants to do in favor of updating mods, which can feel like a chore at times. Especially comments such as this are excellent at wrecking any coding spirit. TLDR: please calm down and respect the fact that the dev may take as long as he wants to update a mod. I'm certain the dev has more to do in a day than updating KSP mods. Thank you.
-
Install KittopiaTech, press CTRL + P in-game, select your planet in the menu at the top of the GUI that appears, go to ScaledSpace Editor, and select 'Update Textures'. You can then find the textures under GameData/KittopiaTech/Textures/[planetname]. Place the color and normal maps in a handy location inside your mod's folder and then, write the following inside your planet's Body{} wrapper: ScaledVersion { Material { texture = X //where X is a filepath linking to your planet's color map normals = Y //where Y is a filepath linking to your planet's normal map } } If you only edit the values you wish to differ from Moho's default ones, the method @Cabbink uses is actually much easier, time-saving, and space saving. You'll be surprised how big of a change you can make with only 24 lines of code.
-
[1.2.1]Arkas: Development Edition
The White Guardian replied to The White Guardian's topic in KSP1 Mod Development
I'm updating Arkas to the latest version of KSP and Kopernicus, I'll add a few lines of code that should stop that behavior. -
A Google Drive folder? I've uploaded files to GD before, but I've never truly used it like a drag-and-drop system similar to Dropbox. Either way, I'll find a way to get you updated versions. Depends entirely on the motherboard. You see, a computer motherboard has a slot for the RAM memory. My computer at home has two slots with the DDR4 format (you can also have DDR3 chips, but DDR4 is better), one of which is used by a Crucial Ballistix Sport 8GB DDR4 RAM chip. There are two ways to update the RAM of your computer. 1: An extra chip. This is the trick I'll be using soon to double the RAM memory of my computer. This method requires an unoccupied RAM slot and a second RAM chip. This RAM chip must be IDENTICAL to the other RAM chip. This procedure will double system memory. 2: A new chip. This is a trick usable for broken RAM chips, or for when you want to go the extra mile. Note that some chips come in 'sets of 2', for example an 8GB chip in a 'set of 2' will actually be 2 chips of 4GB. Keep an eye on the amount of free RAM slots on your motherboard at all times, and remember that, if you purchase a new RAM chip, the DDR type MUST match that of the motherboard or it will not work.
-
This is because some stuff got changed in 1.3.0-5, if @amarius1 gives his go-ahead I'll start working out the problems one by one until the mod works like a charm on the latest version. Thank you for the log files by the way, those are insanely helpful when finding flaws in a planet's code. The log file you provided here, Keelon, for example, shows that KSP has problems loading LandControl.
-
@amarius1 Then I shall take this majestic mod under my wing and keep it up-to-date until you can afford a more powerful system. In the words of Mercy: "Heroes never die!" My computer at home is more than capable of handling anything I throw at it, so keeping Kerbol Origins up to date will be a walk in the park. I believe that old Dropbox folder is still functional - if you're okay with me maintaining the mod in the meantime, should I download the latest public version and send you updated versions through Dropbox, so you can update the downloads?
-
[1.8.1-1] [PLEASE FORK ME] Kopernicus & KittopiaTech
The White Guardian replied to Thomas P.'s topic in KSP1 Mod Releases
Here's an example code for the new rings with as much info as I could find. Rings { // Reference: // <float> -> 'single precision floating point number'. Basically this entry supports the usage of decimals, unlike an integer. // <bool> -> 'boolean'. Like a classic light switch that can only be 'off' or 'on', a boolean can only be 'true' or 'false'. // Booleans are a way for computers to check 'statements'. // Example: 'Timmy stole three cookies from the cookie jar'. // Then if we ask the computer the status of the boolean 'did Timmy steal cookies?' the answer would be 'true'. // A bit more coding-like: we have the boolean 'a', and two floats, 'b' and 'c', and we ask the computer to compare the values of 'b' and 'c' // Then we would write: // if (b == c) //Ergo, if b is equal to c // { // a = true; // } // else //Ergo, if b is not equal to c, execute this code instead. // { // a = false; // } // Booleans can often be defined as statements that can be true or false. (lockRotation = 'rotation is locked') // Or you can think of them as a question that you can answer yes or no to. (yes = true, no = false) (lockRotation = 'lock rotation?') // <int> -> 'integer'. A way for computers to store whole numbers and whole numbers only. // Ergo entering '255.3' would result in an error as an integer can only be a whole number. Entering '255' however, is just fine. // <Texture> -> a texture. Just enter a filepath to a texture here. Ring { // These require a different format than you might think. // Function: R = (l/r)*1000 // Where R is the radius as you would enter it below, // l is the start/end limiter of your ring (start: value for innerRadius, end: value for outerRadius) // And r is the radius of your planet. // Example: // "I want my ring to start at a semi-major axis of 8 million meters (8 000 000 m)" // "I want my ring to end at a semi-major axis of 15 million meters (15 000 000 m)" // "The planet I want it around has a radius of 6 million meters (6 000 000, ergo 1 Jool radii)" // Then the result is: R = (8000000 / 6000000) * 1000 = ~1333. // And: R = (15000000 / 6000000) * 1000 = 2500 // So we enter: // innerRadius = 1333 // outerRadius = 2500 // Since innerRadius and outerRadius expect a 'float', we can also add decimals if we want. innerRadius = <float> outerRadius = <float> // "The distance between the top and bottom faces of the ring in milliradii" thickness = <float> // The inclination of the ring relative to the planet's equator angle = <float> // "Angle between the absolute reference direction and the ascending node." // Layman's terms: use this to offset the ring relative to the planet's surface, the 'longitude'. longitudeOfAscendingNode = <float> // The texture of your ring. texture = <Texture> // The texture is multiplied by this color. // Since it is UnityEngine.Color (Unity's color format), we have three different color formats. // Format 1: UnityEngine. Ergo: color = r,g,b,a with r,g,b and a on a scale of 0-1. // Format 2: Image Editing Software. Ergo: color = RGBA(r,g,b,a) with r,g,b and a on a scale of 0-255. // Format 3: Hexadecimals. Ergo: color = #rrggbb using hexadecimals for each color. Alpha is automatically set to 1. // Example: we want the color to be pure white. // Format 1: color = 1,1,1,1 // Format 2: color = RGBA(255,255,255,255) // Format 3: color = #ffffff color = <UnityEngine.Color> // Whether the rotation of the ring is locked. Ergo: should the ring rotate? // 'Yes' -> enter 'false' // 'No' -> enter 'true' // Example: we want a ring that does NOT rotate. Therefore we lock it's rotation. So we enter: // lockRotation = true lockRotation = <bool> // The rotation period of the ring in seconds. // Example: "I want my ring to rotate once every 17 minutes" // Then you would enter: 17 * 60 = 1020 // Result: rotationPeriod = 1020 // Note: // If 'lockRotation' is true: setting the value of rotationPeriod to 0 will stop the ring from moving entirely. // If 'lockRotation' is false: setting the value of rotationPeriod to 0 will make the ring adopt the planet's rotation period. // Example: the planet has a rotation period of four hours, lockRotation is false and rotationPeriod is set to zero. // Result: the ring has a rotation period of four hours as well. rotationPeriod = <float> // If true, ring will receive no light-based information. Set to false if you are using the new shaders, otherwise set to true. unlit = <bool> // Whether or not you want to use Blackrack's fancy ring shaders (stuff like planet shadows). // Enter true if you want them, enter false if you don't. useNewShader = <bool> // The penumbra multiplier for the new ring shader. You don't have to specify this if you don't use Blackrack's ring shader. penumbraMultiplier = <float> // The amount of vertices of the ring. // In layman's terms: the greater this number, the higher the quality, but the harder it becomes to render the ring. steps = <float> // "Number of times the texture should be tiled around the cylinder" tiles = <float> } } -
[1.2.X] [Kopernicus] Planet Cyran
The White Guardian replied to The White Guardian's topic in KSP1 Mod Releases
Interesting ideas, and a fair point. I'll include both changes in the next update of Planet Cyran, the second option available through placing a single file in the GameData/PlanetCyran folder. The main idea with Cyran was making a planet that was not too far out - mods like OPM and Kerbol Origins already have that covered. The inner Kerbal solar system does not leave much room for planet placement though, therefore I chose it's current configuration. My main idea was giving Dres some love as it is mostly forgotten when it comes to mission planning in KSP. I figured adding a fire giant and a system of diverse an colourful moons would boost Dres' popularity. Then the idea of changing Dres came along, and Iltan was born. Anyhow, here's what I'm going to do. 1. Update Cyran to 1.3 and give Dres it's place back while adding a new moon ('Driss') to take it's place in Cyran's system 2. Add a configuration that moves Cyran to the position of 'Planet 9', placing it behind Jool, or behind Plock if OPM is detected. 3. Make a brand new mod that gives Dres a not too drastic facelift while adding some new features that should make it a more interesting mission destination. -
[1.8] EnvironmentalVisualEnhancements [1.8.0-2]
The White Guardian replied to Waz's topic in KSP1 Mod Releases
@Avera9eJoe thank you for figuring this out! I kept seeing these odd detail-related cutoffs on the clouds but no clearance as to what was causing it exactly. I personally figured the detail tex would be applied like a standard Unity detail mapper... regardless there is certainly some room for improvement when it comes to detail-enabled cloud layers on densely-clouded worlds. -
The orbit color is off. That has to do with how computers store colors. In KSP colors are stored as the unity 'Color' data type, which is: public Color name = new Color(r,g,b,a); In normal English: "Computer, make a new, easily accessable Color value with the name 'name'. It will store a new Color value, which has the values r for red, g, for green, b for blue, and a for alpha." The above code will give an error as r,g,b, and a are expected to be 'float values', ergo a value between 0 and 1, whereas you're more used to the digital image software structure of 0-255. There are three ways of storing colors in KSP. One: the default Unity way: r = (R/255) Where r is the color in a float value, and R is the color in the image editing format. Two: the hexadecimal format. Image editing programs often also convert the color into the hexadecimal format, six digits/letters. For example: (1,0,0,1) = 255,0,0,255 = #ff0000, where the first example is in Unity's color format, the second is in Photoshop-like style, and the last one is in hexadecimals. You can enter hexadecimals as color values as long as you add a hashtag to it first so the computer knows it's a hexadecimal value. Examples: #ff0000, #00ff00, #f0f0f0, #bba135, etc. Three: the format you are using here, the image editing format. For this you also need to tell the computer in advance that you're feeding it the color values in an unorthodox (at least to the computer) manner. In this case, write: 'RGBA(r,g,b,a)' with r, g, b, and a being the values of your color in the image editing format. For example: color = RGBA(255,255,255,255) But that isn't what is causing your planet to crash. Let's highlight the problem from the logfile. [LOG 17:33:06]: Parsing Target flyingAltitudeThreshold in (Kopernicus.Configuration.ScienceValuesLoader) as (Kopernicus.NumericParser`1[System.Single]) [LOG 17:33:06]: Exception Was Recorded: Exception has been thrown by the target of an invocation. at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at Kopernicus.NumericParser`1[System.Single].SetFromString (System.String s) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.ProcessValue (System.Type targetType, System.String nodeValue) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectMemberFromConfigurationNode (System.Reflection.MemberInfo member, System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectFromConfigurationNode (System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectMemberFromConfigurationNode (System.Reflection.MemberInfo member, System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectFromConfigurationNode (System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectMemberFromConfigurationNode (System.Reflection.MemberInfo member, System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Parser.LoadObjectFromConfigurationNode (System.Object o, .ConfigNode node, System.String configName, Boolean getChilds) [0x00000] in <filename unknown>:0 at Kopernicus.Configuration.Loader.Kopernicus.IParserEventSubscriber.PostApply (.ConfigNode node) [0x00000] in <filename unknown>:0 [LOG 17:33:06]: Inner Exception Was Recorded: Unknown char at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 As you can see it tries to parse the flyingAltitudeThreshold, and it instantly throws an exception. Next a few lines of code that highlight where in Kopernicus' config parser code it errors (more specifically the function 'LoadObjectFromConfigurationNode). But then it gets interesting. [LOG 17:33:06]: Inner Exception Was Recorded: Unknown char at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 Let's filter out the code vomit to highlight the true problem. [LOG 17:33:06]: Inner Exception Was Recorded: Unknown char This means that you are feeding the computer something that it does not expect. For example, a boolean value (either 'true' or 'false') being assigned the value '16'. I'm not sure due to the way the forums format code, but ensure it's on the same line. Like, instead of flyingAltitudeThreshold = 5000 make it flyingAltitudeThreshold = 5000 I'm sorry, but in this case it's not clear as daylight why exactly it's erroring. Alternatively, try making it 5000.0, to highlight for the computer that it is dealing with a 'double' data type, not an 'integer' (ergo a number with decimal values instead of a whole number). Let me know if it works! Edit: where are the PQSMods? You need to add at least one PQSMod, mate. Otherwise the surface will crash. Since you want a flat plane, try adding this. PQS { Mods { VertexSimplexHeight { deformity = 1 frequency = 1 octaves = 2 persistence = 0.3 seed = 5 enabled = true order = 10 } } } It won't make it perfectly smooth, but make the altitude range from 0-1 very, VERY smoothly. It's nigh perfectly flat.
-
Gene's Star (InDev Version)
The White Guardian replied to NickRoss120's topic in KSP1 Mod Development
@NickRoss120 This pack looks great! If you need any help, let me know!- 29 replies
-
- 1
-
-
- newstar
- planetpack
-
(and 1 more)
Tagged with:
-
[1.8.1-1] [PLEASE FORK ME] Kopernicus & KittopiaTech
The White Guardian replied to Thomas P.'s topic in KSP1 Mod Releases
If you'd read the logfiles you would see that they error right after 'Gradient'. Looking at the Gradient in ScaledVersion shows an error, where you placed a dot instead of a comma, resulting in 112.174 instead of 122,174 for example.