Jump to content

[1.3.0] Kerbalism v1.2.9


ShotgunNinja

Recommended Posts

@MisterFister I started making this mod without any plan about how it interacted or interfaced with other mods, in fact I didn't even plan on releasing it in the early stages. But when I finally did, what emerged was that the real problem to solve wasn't to provide an experience, but a framework to build experiences. So, given that essentially I enjoy coding a lot, and I enjoy solving problems even more, I simply switched to a different problem to code a solution for. This started as something unflexible and it just became the opposite, go figure that now it is a framework that run arbitrary life-support/environment rules. In fact you could now emulate TAC-LS using this mod.

This doesn't mean I'm going to support every other possible mod out there, not at all. In fact, if there is something I enjoy more than solving problems is to make them obsoleve (because I'm lazy at the core). So me transforming this into a framework can be interpreted as me trying to do less work in the long run.

The signal mechanic is enabled explicitly in a 'profile' now (essentially, a glorified .cfg file). And even if explicitly enabled (as it is in the case of the default profile), it disable itself automatically if RemoteTech/AntennaRange are detected. It turned out to be simpler than expected, as all interactions with the signal mechanics went through a single function. It did required quite a bit of MM-fu however.

These are the mods with explicit support, updated to the version 0.9.9.5 that's going to be released tomorrow:

  • SCANsat
  • ConnectedLivingSpace
  • DeepFreeze
  • NearFutureSolar
  • NearFutureElectrical
  • PlanetaryBaseSystem
  • VenStockRevamp

These are the mods that disable the signal mechanic:

  • AntennaRange
  • RemoteTech

and these the ones that disable the malfunction mechanic instead:

  • DangIt

Most other mods will just simply work (tm).

Link to comment
Share on other sites

23 minutes ago, Nansuchao said:

Beautiful news about the release and great to hear your plans. Can I suggest as another mod to support (in the future) Interstellar Extended?

NearFuture would be a nice mod to support as well.  This looks awesome, @ShotgunNinja, and thank you for your answer.  It answered my question completely.

Link to comment
Share on other sites

@ShotgunNinja Did you decide to move forward with your idea of quadrupling your EC production/consumption/storage numbers? That would certainly improve out-of-the-box compatibility with various mods, since you could generally assume that most EC-producing/consuming mod parts don't need modification, and the few that do (e.g., solar panels and batteries) could potentially be accounted for with catch-all patches.

Link to comment
Share on other sites

5 hours ago, MisterFister said:

Also -- does anyone else have advice on how I can split a quote-box when I reply?

select a bunch of text in a post and you'll see a popup asking you if you want to quote it. So create a bunch of quotes in the reply box then go in and reply to them

Link to comment
Share on other sites

Perhaps an idea for the malfunction issue would be to add a tweakable that'd increase the lifespan of a part for a cost. You could even allow the player to shorten the lifespan from default to save money too. My opinion is that it shouldn't be a 1:1 scaling however. Like 3x the cost increases the lifespan 2x, and 1/2 the cost reduces the lifespan to 1/3. It'd be nice to allow short life probes and missions to cost less, but allow longer missions to avoid malfunctions for a cost.

Link to comment
Share on other sites

@Fraz86 Definitely, but it is postponed to 0.9.9.6. The good thing is that I could scale existing vessel batteries the same way I scale food/oxygen, for old savegames. I still have to investigate if some consumer/producer rates are serialized, as that would mean that I have to scale that too. I'm thinking of adding per-vessel versioning, at time of launch, to solve this if necessary.

 

@Razorfang That is a very interesting idea, I'll keep that in mind. I wanted to add something similar to TestFlight but I recon its beyond the scope of the tiny, simple malfunction mechanic so this could be an alternative to that. My only objection to it would be that if only money is necessary, then the player can just 'buy away' the mechanic. Maybe I can make them pay a small amount of research instead.

Link to comment
Share on other sites

4 minutes ago, ShotgunNinja said:

@Razorfang That is a very interesting idea, I'll keep that in mind. I wanted to add something similar to TestFlight but I recon its beyond the scope of the tiny, simple malfunction mechanic so this could be an alternative to that. My only objection to it would be that if only money is necessary, then the player can just 'buy away' the mechanic. Maybe I can make them pay a small amount of research instead.

Hmm.  I like costing research and funds, plus impose the prerequisite requirement that the editor building being used has been upgraded, or a specific tech node unlocked, for this ability to be accessible?  Or both?  Or imposing that it can only be done if the vehicle is launched empty of all resources, requiring the player to have a vehicle ready to fuel it at the Launchpad (klaw, or kas.winch)?

Link to comment
Share on other sites

6 hours ago, ShotgunNinja said:

@MisterFister I started making this mod without any plan about how it interacted or interfaced with other mods, in fact I didn't even plan on releasing it in the early stages. But when I finally did, what emerged was that the real problem to solve wasn't to provide an experience, but a framework to build experiences. So, given that essentially I enjoy coding a lot, and I enjoy solving problems even more, I simply switched to a different problem to code a solution for. This started as something unflexible and it just became the opposite, go figure that now it is a framework that run arbitrary life-support/environment rules. In fact you could now emulate TAC-LS using this mod.

And this is why we love you! Seriously fantastic attitude! TAC-LS is/was great and I've used it for ages, but it's so nice to be able to build a life support system that's PERFECT for me. I had a lot of fun yesterday tweaking the stress system to be just the way I like it. (I thought a single kerbal stuck in a coffin-sized box without company or outside communication would go crazy long before the 60 day mark, and you know what? That's cool, because I can just change it to suit me!)

So on to the feedback...

Firstly, you said you wanted to know how well an old save works with the new system. Not surprisingly, not well at all. I had a save with a couple of docked vessels in orbit that used the older Kerbalism. When I loaded it with the new pre-release, the monitor window reported food/water/electricity as all "perpetual", but as has already been reported, my kerbals ran out of oxygen almost immediately. It's not a big deal, though. I wouldn't really expect something like this to be backwards-compatible with already launched ships. It's just the price of progress.

I have some questions about file tweaking. It looks like the profile CFGs must be in the proper "Profiles" folder. Is this correct? Also, to get the stress system working the way I like it, I had to make changes directly to the "settings.cfg" because I don't see a way of changing those values via a separate MM cfg file. Both of these things are workable, but they can get a little messy when you update since I'm having to make changes directly within your mod's file structure. That means every time you update and I replace the Kerbalism folder in GameData, I have to make sure to backup/restore or re-edit all of the files that I've changed. It works, but it's not going to be very convenient in the long run.

On the subject of resource definitions, I take it from your notations that the resource defs MUST be in the Profiles folder at the moment (in the pre-release), and Kerbalism can't yet pull them from Community Resource Pack? So what happens when a profile defines a resource with the same name as a CRP resource? Are they interchangeable then? What if they have the same name but different values, does everything become a mess? Hopefully the final release version (tomorrow!?!) will fully integrate with CRP and make this question moot, but I'm still curious.

One last little question. A bit of math taught me that the "very bad thing" happens (like death from suffocation) when an accumulator reaches 1.0. At what values do you get the other warnings if no warning_threshold / danger_threshold / fatal_threshold is defined in the rule?

Oh, ONE more question... Entertainment. Is it possible somewhere to change the interface name of things like that? It's not a big deal, but I'd prefer for it to be called something like "amenities", because in general I think it encompasses things like beds, kitchens, open spaces, and exercise equipment, while "entertainment" makes me think it refers to things like plasma TVs, radios, and (zero-G?!) ping-pong tables. :)

Link to comment
Share on other sites

@Rhedd A lot of good points and questions!

 

8 minutes ago, Rhedd said:

the monitor window reported food/water/electricity as all "perpetual"

It was an issue in the prerelease, fixed already!

 

9 minutes ago, Rhedd said:

my kerbals ran out of oxygen almost immediately

Wasn't the oxygen amount scaled upon load?

 

10 minutes ago, Rhedd said:

I have some questions about file tweaking. It looks like the profile CFGs must be in the proper "Profiles" folder. Is this correct? Also, to get the stress system working the way I like it, I had to make changes directly to the "settings.cfg" because I don't see a way of changing those values via a separate MM cfg file. Both of these things are workable, but they can get a little messy when you update since I'm having to make changes directly within your mod's file structure. That means every time you update and I replace the Kerbalism folder in GameData, I have to make sure to backup/restore or re-edit all of the files that I've changed. It works, but it's not going to be very convenient in the long run

A profile can be anywhere in GameData, you could write a rule in any other .cfg file.
To change the settings, you can do something like this:

@Settings
{
  @QoL_FirmGround = 0.1
}

This too can be in any .cfg file in GameData.

 

13 minutes ago, Rhedd said:

On the subject of resource definitions, I take it from your notations that the resource defs MUST be in the Profiles folder at the moment (in the pre-release), and Kerbalism can't yet pull them from Community Resource Pack? So what happens when a profile defines a resource with the same name as a CRP resource? Are they interchangeable then? What if they have the same name but different values, does everything become a mess? Hopefully the final release version (tomorrow!?!) will fully integrate with CRP and make this question moot, but I'm still curious

Resources too can be defined anywhere. For the default profile and snacks it was handy to insert them there, and make both self-contained.
The Food/Oxygen definitions in Default.cfg match exactly the CRP ones. I redefine them to cover the case when the user update using Spacedock, but doesn't read the changed requirements. Because if a resource definition is missing the game freeze at the loading screen. Also currently CRP is tagged as conflicting with Kerbalism in CKAN, so I can't just switch to requiring it, else nobody would be able to install it using CKAN (because it depend on CRP, but CRP conflict with it).

 

20 minutes ago, Rhedd said:

One last little question. A bit of math taught me that the "very bad thing" happens (like death from suffocation) when an accumulator reaches 1.0. At what values do you get the other warnings if no warning_threshold / danger_threshold / fatal_threshold is defined in the rule?

I'll write a page on the wiki dedicated to the Rule specs, including all defaults. Meanwhile use these:

Spoiler
  • name: no default
  • resource_name: empty
  • waste_name: empty
  • waste_ratio: 1.0
  • rate: 0.0
  • interval: 0.0
  • degeneration: 0.0
  • variance: 0.0
  • modifier: empty
  • on_pod: 0.0
  • on_eva: 0.0
  • on_resque: 0.0
  • breakdown: false
  • warning_threshold: 0.33
  • danger_threshold: 0.66
  • fatal_threshold: 1.0
  • low_threshold: 0.15
  • *_message: empty

 

23 minutes ago, Rhedd said:

Oh, ONE more question... Entertainment. Is it possible somewhere to change the interface name of things like that? It's not a big deal, but I'd prefer for it to be called something like "amenities", because in general I think it encompasses things like beds, kitchens, open spaces, and exercise equipment, while "entertainment" makes me think it refers to things like plasma TVs, radios, and (zero-G?!) ping-pong tables

This is a good question. Myself I want to rename Entertainment to Comfort, because indeed you are right that it is really meant to encompass all 'comfortable' things. The plan is to create a new Comfort module, identical to Entertainment, and to use it while keeping support for Entertainment for a while. And to change all the reference to Entertainment to Comfort in the UI.

 

Wow this post is long! :) cheers

Link to comment
Share on other sites

17 hours ago, ShotgunNinja said:

@ShotgunNinja
Yes they were missing from the planner. I just took out 0.9.9.4 and put in 0.9.9.4a and just started a new sandbox profile to test it out the mod. The Food and Oxygen resources were showing up in 0.9.9.4 but not when I used 0.9.9.4a

 

Link to comment
Share on other sites

@ShotgunNinja

Thanks for all the quick answers! That helps a lot.

I like the idea of "comfort".

Oh, and no, the O2 didn't seem to be scaled on load. Now, I downloaded the pre-release just as it came out, so if there's been any released changes that means I have an old version, but no, I ended up with a ship with single-digit O2 levels and they didn't last long! I don't have another ship in orbit, but I do still have the blueprint for it, so I can test it again and see exactly what happens.

Got a few more questions for you, mostly about the greenhouse works...

I assume "resource_name = food" is the resource the greenhouse outputs.

I was looking into adding a water resource. I see that the greenhouse has a single resource to use as a "waste bonus". Is it possible to add additional bonus resources, or even better, to add a resource that's mandatory (like water)? How is that "bonus" applied?

Also, what does "waste_rate" do, exactly? Does that define the rate at which the greenhouse uses up the waste resource? It says it's "waste produced by 3 crew members". I assume that means the greenhouse is using waste at the same rate 3 kerbals produce it?

Keep up the FANTASTIC work!

Link to comment
Share on other sites

@Rhedd To add a water input to the greenhouse will require to modify its module, so it'

s not possible right now. But I'm going to add that soon enough. The waste_rate is the amount of waste resource per second required to get the full extent of the waste_bonus. Note that I also made these things configurable per-greenhouse, in the module, but I still didn't update the documentation on the wiki. Here they are:

  • waste_bonus: bonus applied to growth if waste is available, applied in proportion to the amount of waste available, default to 0.2 (+20% growth speed)
  • soil_bonus: bonus applied to growth if the greenhouse is on the surface of a celestial body, default to 0.5 (+50% growth speed)
11 minutes ago, Rhedd said:

I assume that means the greenhouse is using waste at the same rate 3 kerbals produce it

Correct, the greenhouse is configured to require 3 well-fed kerbals worth of waste per-day to get the full waste bonus.

Have fun :)

Link to comment
Share on other sites

@ShotgunNinja This is shaping up nicely. I've been playing ksp for a long time but never actually played through a career. Mostly because I haven't been able to get all the right gameplay elements together  to make for an interesting  challenge. I think thats all about to change. Thanks for the hard work. 

Link to comment
Share on other sites

@ShotgunNinja

Again, thanks for the info.

Please do add the ability to add required/bonus resources to the greenhouse module. It's pretty awesome that that's the only thing I've run into so far that I want to do but can't (but I'll keep trying! :D)

Link to comment
Share on other sites

3 hours ago, Razorfang said:

Perhaps an idea for the malfunction issue would be to add a tweakable that'd increase the lifespan of a part for a cost. You could even allow the player to shorten the lifespan from default to save money too. My opinion is that it shouldn't be a 1:1 scaling however. Like 3x the cost increases the lifespan 2x, and 1/2 the cost reduces the lifespan to 1/3. It'd be nice to allow short life probes and missions to cost less, but allow longer missions to avoid malfunctions for a cost.

There is a mod out there called KRnD (Kerbal Research and Development).

Via an Interface in the VAB/SPH you can improve your parts with research points (higher tank capacity, thrust, energy storage, lower mass etc etc), and the more you upgrade a part, the more it costs.

I guess that's what you had in mind. I would love to see those two mods work together!

Link to comment
Share on other sites

@ShotgunNinja

Next roadblock! :D

I tried to add "modifier = breathable" to the stress rule (because it's not so bad if you can get out, walk around, and take a deep breath). It didn't work. Stress accumulated normally on the surface of Kerbin. I assume that's because a rule can only have one modifier, so stress can't have "modifier = qol" and " modifier = breathable" at the same time? If so, I wish it could.

Link to comment
Share on other sites

Really enjoying the pre-release version of the next build.  Once I recreated some of my older craft so that the food and oxygen would update correctly, I haven't had any problems with dead Kerbals.

What I did have a problem with is trying to add the geiger counter part or the thermometer part to a craft in the VAB.  I have Exception Detector installed, and it started throwing dozens of errors per second with the following message:


[EXC 21:22:46.521] NullReferenceException: Object reference not set to an instance of an object
    KERBALISM.Cache.VesselInfo (.Vessel v)
    KERBALISM.Sensor.Update ()
[EXC 21:22:46.538] NullReferenceException: Object reference not set to an instance of an object
    KERBALISM.Cache.VesselInfo (.Vessel v)
    KERBALISM.Sensor.Update ()
[EXC 21:22:46.556] NullReferenceException: Object reference not set to an instance of an object
    KERBALISM.Cache.VesselInfo (.Vessel v)
    KERBALISM.Sensor.Update ()
[LOG 21:22:46.573] deleting part GeigerCounter

The errors wouldn't stop coming until I had removed and thrown away the part.  Didn't try to launch - I got nervous with so many errors being thrown.

Other than this tiny thing, I'm loving this mod.  Keep up the great work!

Link to comment
Share on other sites

@Norcalplanner Thanks for the report. The sensor was added just before the prerelease and unfortunately I forgot to check if scene was the editor before asking some data for a vessel that doesn't yet exist from the cache... Its harmless if you want to launch the vessel you can without consequences.

Link to comment
Share on other sites

@ShotgunNinja

I'm just playing around to see how things work, and I added this just for fun:

// SUPPLIES
Rule
{
  name = Supplies
  resource_name = Supplies
  rate = 0.25 // 1 per-day
  interval = 5400.0 // 0.25 days
  degeneration = 0.03125 //32 uses, 8 days
  on_pod = 10.0
  breakdown = true // trigger breakdown event instead of death

  warning_message = $ON_VESSEL$KERBAL had to eat $HIS_HER soup with a fork
  danger_message = $ON_VESSEL$KERBAL simply cannot survive without toilet paper
  // no fatal_message because breakdown message is generated automatically
  relax_message = $ON_VESSEL$KERBAL can finally brush $HIS_HER teeth

  low_message = Supplies are getting low on $VESSEL$NEWLINE<i>Important items are being rationed</i>
  empty_message = There are no more supplies on $VESSEL$NEWLINE<i>Life is becoming very uncomfortable</i>
  refill_message = $VESSEL has been resupplied$NEWLINE<i>The crew rejoices</i>
}

It works as intended, but the first thing I noticed is that the planner screen in the VAB gives a "life expectancy" for Supplies instead of a "time to instability" like it does for Quality of Life, even though breakdown = true. I assume that has something to do with the wrong message being applied when there is a resource_name = X in the rule? Very minor, but I thought I should mention it.

I hadn't noticed until just now that in the in-flight ship details screen EVERYTHING says "perpetual". Glad to hear that's fixed already!

I also noticed that your default profile doesn't define waste_ratio for anything. So kerbals are pooping out 100% the mass of the food they take in? Wow! :0.0:

Edited by Rhedd
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...