Jump to content

[1.8.x] Oh Scrap!- A ScrapYard based Part Failure and Reliability Mod 2.0.1 (07/12/2019)


severedsolo

Recommended Posts

43 minutes ago, Kalpar said:

Thoughts on what the problem might be?

Yes logic failure on my part. If we are selecting parts at random, there's no guarantee bad parts will get selected at all - solution will be to sort parts by failure rate then test them in order. Also, SRBs still use the old system (ie they test themselves individually) because they need to fail before we start checking for failures.

18 minutes ago, Kalpar said:

I also think that checking a max of 100 times in that loop might be extreme for small part count rockets...  A rocket with 3 parts would have their parts checked about 33 times each while 200 part rocket will only have half of the parts checked. 

So, 100 times is "don't get stuck in a loop" - in actual fact a solution is usually found within 20 iterations (longest I've seen so far is 14). Having said that, your point about different part numbers is a good one, I'll probably change it so it loops through BaseFailureModule.Count iterations instead (or similar).

Also I noticed on the stream, you said that Safety Ratings are just inverted failure chances - not so. It's (inverted failure chance / 10) (ie 1 is 10% chance or worse, and 10 is 1% or better) - you said that a 10 was a 10% chance to fail.

Edited by severedsolo
Link to comment
Share on other sites

New beta available - get it here:

Once again back up saves just in case.

  • Fixed Repair and Toggle Highlight events not activating when part fails.
  • Fixed inverted repair chances (ie, you'd get a 10% chance of repairing it with a Lv5 engineer rather than 90%)
  • Fixed highlighting not showing on some failed parts
  • Fixed highlighting turning off randomly on some parts
  • Fixed parts with higher failure rates not being given the chance to fail first.
  • Fixed trying to fail parts that have already failed silently aborting the fail process.
Edited by severedsolo
Link to comment
Share on other sites

Loving the work and attention back on this Oh Scrap!

I never knew how much I would enjoy part failure mods, but this one is pretty terrific in a career game + scrapyard. It creates a nice meta-layer of testing and troubleshooting.

Link to comment
Share on other sites

Hey @severedsolo, thanks for this sweet mod. It's become an integral part of our UHC Career playthrough, and so far it's been a blast... ha. I can tell you stories about Gen 0 parts on a space station that existed before the mod was installed... :D

Thanks for adding in the engineer experience code, having higher level engineers gives a buffed chance to repair a part is huge. Had a question, if a lvl 1 engi fails a repair, can a lvl 5 engi sent from the home office try again, or is it one and done? I can see arguments for both... 

I was pretty bummed last night when my gen 15-20 SRBs failed repeatedly (>5 times over 20 launches?) because I added newly unlocked Gen ~2 parts to the craft. In fact, we never saw anything beyond the SRBs fail. I think this is sort of addressed in your new release above, but in no case should lower gen parts decrease the reliability of higher gen parts. I can put an uber reliable SRB on a craft, and mitigate the lower gen parts with built-in redundancy... but my redundancy backfired and the duplicate low gen parts only increased the overall failure rate, which made the SRB more likely to fail. Yikes.  

Also, can you help me understand the current "ultimate" failure rate for a high gen part? We haven't gotten there yet, but we're really concerned about the math on long term missions. The floor for failure chance on a single part should be vanishingly small... once it gets to high generations, we should be looking at .0x% failure rates (which is still amazingly high for IRL spaceflight engineering). We need to be able to carry ultra-high-reliability critical systems on a long-term craft, that aren't in directly affected by non-critical or redundant low-reliability parts. If I have probe mission failure because I only take one antenna and it fails, that's legit... but if the mission fails because the antenna made the uber-tested engine more likely to fail, that puts us in a double jeopardy situation. 

Maybe a config file would be awesome, although I don't know how that would work with your math... Initial Failure Rate, Min Failure Rate, Max Generation. Perhaps start at 50%, and trim down over 10-15 generations... A model which halved failure rate out to 15 gens put us at .003% min rate, which looked pretty good. If we put in the time and testing, we've got to be able to make multi-year missions operate reliably. 

Thanks again! Heading over to the scrapyard thread now! ;)

Link to comment
Share on other sites

18 minutes ago, DasValdez said:

Had a question, if a lvl 1 engi fails a repair, can a lvl 5 engi sent from the home office try again, or is it one and done?

It's one and done just simply because I don't want players spamming the button until they get the result they want. If the check fails, that's it the part is busted forever more (it's not my ideal solution, and I may consider at some point allowing a "one per kerbal" check, but at the moment that's how it is.

18 minutes ago, DasValdez said:

Also, can you help me understand the current "ultimate" failure rate for a high gen part? We haven't gotten there yet, but we're really concerned about the math on long term missions. The floor for failure chance on a single part should be vanishingly small... once it gets to high generations, we should be looking at .0x% failure rates (which is still amazingly high for IRL spaceflight engineering).

It actually currently caps out at 1% (which would be Gen 10 if you aren't recovering anything) - I get your point though, which is why the new release is in beta, you said yourself - you haven't had a single failure other than SRBs (that's a lie, you had an antenna failure on the bit I was watching, but a bug stopped you from seeing it). - my point is, I need more data before I know whether 1% is too high or not.

And now for the SRBs. So, your problem there was not the Gen 2 parts. If that were the case, your other parts would have all been failing too. SRB's don't use the same mechanic as all the other failures, and I am rolling before the generational/recovery bonuses get applied (it's basically a Gen 1, Launch 1 part every time). In other words - it's a bug. One that I'll fix in around an hour.

 

Link to comment
Share on other sites

34 minutes ago, severedsolo said:

It actually currently caps out at 1% (which would be Gen 10 if you aren't recovering anything) - I get your point though, which is why the new release is in beta, you said yourself - you haven't had a single failure other than SRBs (that's a lie, you had an antenna failure on the bit I was watching, but a bug stopped you from seeing it). - my point is, I need more data before I know whether 1% is too high or not.

And now for the SRBs. So, your problem there was not the Gen 2 parts. If that were the case, your other parts would have all been failing too. SRB's don't use the same mechanic as all the other failures, and I am rolling before the generational/recovery bonuses get applied (it's basically a Gen 1, Launch 1 part every time). In other words - it's a bug. One that I'll fix in around an hour.

 

Now that I know the SRB's are using the old way, I think I might see where the failure rate issue is coming from...

https://github.com/severedsolo/OhScrap/blob/master/OhScrap/UPFMUtils.cs#L76

Here you grab the list of BaseFailureModule based parts, which includes SRB's.  Later when you run over that list, you don't filter SRBs out of then either. 

 

Also I think I might have found the issue with the SRB's constantly playing the shutdown sound over and over...

https://github.com/severedsolo/OhScrap/blob/master/OhScrap/SRBFailureModule.cs#L25

Here you loop forever calling FailPart... Within FailPart, you only check if the currentThrottle  is 0, but I'm guessing the throttle never gets reset to 0 when you call engine.Shutdown().  Probably a few ways to prevent shutting down the engine again; maybe just set the throttle to 0 yourself?

 

Thanks,

  --Kalpar

 

Edited by Kalpar
Link to comment
Share on other sites

51 minutes ago, severedsolo said:

It's one and done just simply because I don't want players spamming the button until they get the result they want. If the check fails, that's it the part is busted forever more (it's not my ideal solution, and I may consider at some point allowing a "one per kerbal" check, but at the moment that's how it is.

One attempt per Kerbal, or one attempt per level, would be cool. Not critical with the 90% on a lvl 5 engi o7

52 minutes ago, severedsolo said:

It actually currently caps out at 1% (which would be Gen 10 if you aren't recovering anything) - I get your point though, which is why the new release is in beta, you said yourself - you haven't had a single failure other than SRBs (that's a lie, you had an antenna failure on the bit I was watching, but a bug stopped you from seeing it). - my point is, I need more data before I know whether 1% is too high or not.

Will see what data we can get on the 1% failure rate, napkin math says it's a no-go for even a mun mission right now. 

A buzzer warning sound on failure might be good, to make it less likely to miss the message or highlight (especially on larger vessels).

Cheers, and thanks again!

Link to comment
Share on other sites

37 minutes ago, DasValdez said:

Will see what data we can get on the 1% failure rate, napkin math says it's a no-go for even a mun mission right now. 

I would be amazed if the figures I picked out first time are correct tbh, but I do need data to balance it.

Specifically (and this goes for anyone else testing too) - MET of failures, Vessel Safety Rating (from the UI), number of failures, mission length/anything else you think may be relevant.

I'm inclined to agree with you Das, and raise the baseChance a little, but remove the cap, but let's see what the data provides.

Oh Scrap 1.4 Beta 3 is now available

  • Fixed SRBs never getting their bonuses for generations/recoveries.
  • Fixed SRBs being taken into account when calculating failure rates.
  • Fixed Tanks with no valid resources showing in the flight scene.
  • Fixed Tanks with no valid resources being taken into account when calculating failure rates.

 

 

Link to comment
Share on other sites

3 hours ago, severedsolo said:

I would be amazed if the figures I picked out first time are correct tbh, but I do need data to balance it.

Specifically (and this goes for anyone else testing too) - MET of failures, Vessel Safety Rating (from the UI), number of failures, mission length/anything else you think may be relevant.

I'm inclined to agree with you Das, and raise the baseChance a little, but remove the cap, but let's see what the data provides.

Oh Scrap 1.4 Beta 3 is now available

  • Fixed SRBs never getting their bonuses for generations/recoveries.
  • Fixed SRBs being taken into account when calculating failure rates.
  • Fixed Tanks with no valid resources showing in the flight scene.
  • Fixed Tanks with no valid resources being taken into account when calculating failure rates.

 

 

Will do, grabbing the lastest beta and firing up right meow. o7

Link to comment
Share on other sites

Hi there @severedsolo

Today I got your MM code to help with UMB

 

//moves the revamped command parts to their correct place (they are denoted as"v2" so old patches won't work)
//Mk1 Pod
@PART[mk1pod_v2]:NEEDS[!SETIctt,!SETItechtree,!ETT,!OpenTree,!RP-0]:AFTER[UnmannedBeforeManned]
{
    @TechRequired = advFlightControl
}

//Stayputnik & hex
@PART[probeCoreSphere_v2|probeCoreHex_v2]:NEEDS[!SETIctt,!SETItechtree,!ETT,!OpenTree,!RP-0]:AFTER[UnmannedBeforeManned]
{
    @TechRequired = miniaturization
}

//Octo
@PART[probeCoreOcto_v2]:NEEDS[!SETIctt,!SETItechtree,!ETT,!OpenTree,!RP-0]:AFTER[UnmannedBeforeManned]
{
    @TechRequired = start
}

//Octo2
@PART[probeCoreOcto2_v2]:NEEDS[!SETIctt,!SETItechtree,!ETT,!OpenTree,!RP-0]:AFTER[UnmannedBeforeManned]
{
    @TechRequired = basicScience
}

//roverBody
@PART[roverBody_v2]:NEEDS[!SETIctt,!SETItechtree,!ETT,!OpenTree,!RP-0]:AFTER[UnmannedBeforeManned]
{
    @TechRequired = engineering101
}

 

Thank you!

I started a new career and since adding this, I haven't had one failure.. odd?  Can you suggest anything?


 

Edited by gamerscircle
Link to comment
Share on other sites

No failures all day today, using the Beta 3 version. Was not able to replicate the SRB issues from yesterday (which was good) but also built a few ships with terrible reliability ratings and had zero failures. Does it log the rolls to somewhere we can see if it's actually missing fails?

Link to comment
Share on other sites

11 hours ago, DasValdez said:

Does it log the rolls to somewhere we can see if it's actually missing fails?

It will do shortly :)

11 hours ago, DasValdez said:

also built a few ships with terrible reliability ratings and had zero failures.

 

14 hours ago, gamerscircle said:

I started a new career and since adding this, I haven't had one failure.. odd?  Can you suggest anything?

Bug in the check code meant it was kicking into "space mode" (ie 30 minute checks) if you weren't launching fast enough. FIxed in next release, I've just launched a Gen 1 Kerbal X and got 4 failures (1 mission critical) on a return flight from Mun.

New beta coming soon (just testing gen 10 failure rates to see if any tweaks are needed).

Link to comment
Share on other sites

2 minutes ago, severedsolo said:

Bug in the check code meant it was kicking into "space mode" (ie 30 minute checks) if you weren't launching fast enough. FIxed in next release, I've just launched a Gen 1 Kerbal X and got 4 failures (1 mission critical) on a return flight from Mun.

New beta coming soon (just testing gen 10 failure rates to see if any tweaks are needed).

Well, I tend to talk a lot before launch, so that explains that hahaha.

To confirm, OhScrap doesn't simulate anything for unloaded vessels, right? No chance to get a failure on a relay sat you deployed but never need to switch back to?

Will be standing by, let us know how we can help!

Link to comment
Share on other sites

2 hours ago, DasValdez said:

To confirm, OhScrap doesn't simulate anything for unloaded vessels, right? No chance to get a failure on a relay sat you deployed but never need to switch back to?

Correct :) Actually, it will only ever consider the active vessel as it is right now. I get the points about it would be nice if an inactive vessel occasionally failed, but to me, that's annoying.

Oh Scrap 1.4 Beta 4 now available Get It Here

  • Fixed bug where failure checks would go into "Space Mode" while still in prelaunch.
  • Improved resolution of failure checks
  • Fixed a couple of minor issues with the individual failure modules
  • Removed deprecated safety threshold setting.
  • Added "Enhanced Logging" option (will show every single dice roll)
  • Improved logging when a failure check succeeds.
  • Logs will be written to OhScrap/Logs every time you exit the flight scene (please provide these when talking about balance issues)
  • Safety Ratings are now relative rather than absolute (in laymans terms, if you change the baseChanceOfFailure in the cfg files, the Safety Ratings will adjust the scale accordingly).
  • Failures will no longer be forced if every single part passes it's failure check, instead we'll just abort the failure.

Incidentally @DasValdez - I tested your concerns about the 1% cap on a trip to Eeloo on the Kerbal X with all Gen 10 parts. It took 2 years 37 days for a failure to happen. I think we are good.

 

Edited by severedsolo
Link to comment
Share on other sites

30 minutes ago, severedsolo said:

Correct :) Actually, it will only ever consider the active vessel as it is right now. I get the points about it would be nice if an inactive vessel occasionally failed, but to me, that's annoying.

Totally understood! From a hardcore career standpoint, they need to be rolled very infrequently so I can't just toss up a relay sat and have it live forever. Failures in the relay network are exciting, heh! Maybe even an expected lifetime based on gen that increases failure chance with MET.

Continuing more testing today, you rock!

Link to comment
Share on other sites

2 hours ago, severedsolo said:

Correct :) Actually, it will only ever consider the active vessel as it is right now. I get the points about it would be nice if an inactive vessel occasionally failed, but to me, that's annoying.

Maybe a config option to enable/disable checks on unloaded vessels? Or possibly able to enable/disable based on craft type so you could turn off for probes, but leave on for bases, etc. Another option could be to only check craft in orbit of a body other than the sun. That way craft on long voyages won't bug you, but craft in stable on-going orbit (that are assumed to be doing something sciency) will be prone to failure, as they are technically "in use"?

Link to comment
Share on other sites

Stupid mobile forum. Strudo it won't let me quote you but this is directed at you too.

I will look into this tonight and see what I can do. No promises, because ksp doesn't always like interacting with unloaded part modules.

I'm also going to make the "lower cap" on failure rates configurable.

9 hours ago, DasValdez said:

From a hardcore career standpoint, they need to be rolled very infrequently so I can't just toss up a relay sat and have it live forever. Failures in the relay network are exciting, heh! Maybe

@strudo76

Link to comment
Share on other sites

Wow, you do NOT want to fly a plane with gen 2-3 parts more than 7 flights hahahaha.

I think we had *all* the failures on a mid range flight. Engine power loss, 3/4 fuel tank leaks, probe core reaction wheel, basically everything in the cockpit that could fail... it was baaaad.

I was making pretty heavy use of a plane for short missions... how would higher gen parts affect that reliability? Are all planes going to be 6 uses and done, or if I was using gen 10 parts, could I get 20 flights out of one before I had to basically rebuild it from scratch? Seems like some plane parts will need vast different expected uses than rocket parts. Perhaps higher gens need to buff the expected uses as well. 

Also, the "tested" requirement is a bit tedious... if it works the way we think. If I put a brand new part on the aircraft, it looked to have a really low reliability, until I rolled it out to the runway, ran up the engines, taxied a bit, and then recovered it. On the second use, my tier 3 control surfaces and such jumped from safety 3 to 9. Is that always going to be the case, or once I get to high gen parts can I just roll them out with their full safety on the first use. 

That is really only an issue because it takes up one of your 6 uses before the plane falls apart in the sky, haha. If plane parts lasted longer, the flight line check would be less of an issue (and actually kinda cool and realistic).

One of my moderators also put in a bug report for the time between failure not resetting, it was stuck on 30 minute checks for the plane while in flight, and I think not switching check frequency correctly when situation changed. Details in the report. 

I'm having a blast with this, wooo!

Link to comment
Share on other sites

3 hours ago, DasValdez said:

Is that always going to be the case, or once I get to high gen parts can I just roll them out with their full safety on the first use. 

The difference between a tested and untested part falls off with each generation. When you get to gen 10+ it's at minimum failure whether its been tested or not.

Expected lifetime also indirectly improves with generation, will post the actual math when I get home, but basically you'd have to recover a gen 10 part 12 times before you saw any movement at all on the safety rating system (ie it's below 2% even after exceeding it's 6 uses)

Edited by severedsolo
Link to comment
Share on other sites

10 hours ago, DasValdez said:

Seems like some plane parts will need vast different expected uses than rocket parts.

I'm actually doing the maths on probabilities of failures now, and I think you are right, planes need to be treated differently.

Thing is, no two peoples "ideal" is ever going to be right or the same.

So here's what I'm going to do (in the next 2-3 hours at most hopefully, should be sooner, but can't guarantee)

All the figures that the mod uses to balance the probabilities, time between failures, minimum failure chance, etc I'm going to put in the settings (I'll probably do a cfg file for it, as the sliders will have a fit if I try and scale it between seconds and potentially days). That way, you guys don't have to wait for me to get my figures right and can configure them to your own liking. I'll also post my spreadsheet, so you can plug your own figures into it and see what the chances are going to be, and find your acceptable figures.

Also, Das - I just want to say thanks for your and your viewers patience this last week, it can't have been fun for them waiting for me to get my act together (I'll also fix the bug Muddr posted when I do the release).

Edited by severedsolo
Link to comment
Share on other sites

22 minutes ago, severedsolo said:

Also, Das - I just want to say thanks for your and your viewers patience this last week, it can't have been fun for them waiting for me to get my act together (I'll also fix the bug Muddr posted when I do the release).

No way, you owe us no apology! You've been so responsive and helpful... I can't wait to see how it turns out. I hope our feedback is useful and makes the mod better for everyone... it's like crowdsourcing mod ideas and testing with a few hundred people in real time. 

Cfg files are legit, puts the onus on us to "play around", and if we get far in and determine what worked for early mission can't work for later ones, we can rebalance if need be. Oh Scrap, ScrapYard, KCT, and KRASH with no revert hard mode have made it a totally different game... usually in career it's orbit on the second flight, and we've spent days just creating the infrastructure to safely test an uncrewed orbital flight... including having the communications and recovery infrastructure in place just in case it goes wrong.

Again, you absolutely rock, and this is a great mod o7 

Link to comment
Share on other sites

I had a thought on the unloaded vessel thing:

Could an unloaded vessel be periodically checked against its overall reliability rating and and flagged as having "an issue" if it fails that check? This doesn't do anything, but prompts you to hop back to the vessel where the actual failure is "rolled" and one or more issues can then be dealt with. More of a roll-playing prompt than an actual in-game emergency.

Unloaded vessels are typically just sitting somewhere on the surface, or in orbit, or on long transfers, so those failures would probably be limited to electrical or life-support, etc. It would be fun/harrowing to be able to have that kind of Apollo 13-style part failure while busy elsewhere.

Edited by Beetlecat
Link to comment
Share on other sites

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