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

Also, is the high first flight failure rate for the first flight of a particular part, or the first generation of a part? Is there a difference between safety rating and safety threshold? Sorry for all the questions

Edited by dlrk
Link to comment
Share on other sites

11 hours ago, dlrk said:

OK, so basically procedural parts will all be treated as new? (Also, is this still being developed? This is a query, not a request)

 

2 hours ago, dlrk said:

Also, is the high first flight failure rate for the first flight of a particular part, or the first generation of a part? Is there a difference between safety rating and safety threshold? Sorry for all the questions

First question: yes I think so, but I've not explicitly tested it. I see no reason that PP would change the modules, so Oh Scrap will probably work fine, but ScrapYard will treat them as new.

Second: Both. You get a higher failure rate for 1st use parts, but that higher failure rate is lowered for each generation. Parts that are intended to go to space and not come back (Reaction Wheels etc) will have the failure rate drop off quicker with each generation than parts that are meant to be reused (parachutes etc).

Third: Safety Rating is "how likely is this part to fail" the safety threshold is "if a part is more likely to fail than this don't recover it" - this setting is deprecated anyway I think and doesn't do anything.

Edited by severedsolo
Link to comment
Share on other sites

6 hours ago, dlrk said:

Thanks for the answers! Is safety rating on a scale from like 1-10?

It's 1-5

1 hour ago, dlrk said:

Oh, one quick question: Does attempting to repair in EVA always succeed?

50% chance for a remote repair (if allowed) - 75% on EVA, 85% if the kerbal is an engineer.

Link to comment
Share on other sites

Coming over from the ScrapYard thread... Could we get a couple of things in a config file? Or let me know how to change/fix these?

1) Right now, it appears from the code that Generations is maxed out at 10? (in terms of reducing the chance of failure) For larger vessels going on long missions, it seems like the failure rate is too high.

2) Also from the code, it appears that an engineers level only offsets the repair chance by their level?  So a level 5 engineer is %85 + 5 = %90 (with a max of %90).  Can this be configured via a config file? Both max and the bonus from the levels?

 

Some new feature requests... What do you think of these?

3) Could parts be upgraded (for a cost) to the latest generation of the part?  Maybe adding build time, and/or chance to do something bad (destroy the part, add uses, etc)?

4) How about a concept of refurbishing parts? With a budget mod, sometimes its better to take some time and refurbish a part (lower the use count).  Mostly just thinking out loud on this one as I thought of it after typing #3.

 

Thanks,

  --Kalpar

Link to comment
Share on other sites

3 hours ago, Kalpar said:

For larger vessels going on long missions, it seems like the failure rate is too high.

One thing to note: the code on github does not reflect the current release version. It's the (pulled) 1.3.6 release. Having said that, I agree with you. The failure rates are way too high. I tried to fix this with 1.3.6 and borked existing saves so had to pull it. This will be addressed in Oh Scrap 2.0 (more details to follow later)

3 hours ago, Kalpar said:

2) Also from the code, it appears that an engineers level only offsets the repair chance by their level?  So a level 5 engineer is %85 + 5 = %90 (with a max of %90).  Can this be configured via a config file? Both max and the bonus from the levels?

It's actually 75% +10% bonus for engineers in 1.3.5 - again will be reworked for 2.0 (and I'll probably make settings configurable).

3 hours ago, Kalpar said:

Some new feature requests... What do you think of these?

Not currently possible (or rather difficult) due to the way scrapyard works, but I'm considering adding a data store to scrapyard, if that happened then these would be possible.

Link to comment
Share on other sites

5 hours ago, severedsolo said:

One thing to note: the code on github does not reflect the current release version. It's the (pulled) 1.3.6 release. Having said that, I agree with you. The failure rates are way too high. I tried to fix this with 1.3.6 and borked existing saves so had to pull it. This will be addressed in Oh Scrap 2.0 (more details to follow later)

Thanks for the quick replies! If you would like someone to beta test changes and such, Das is just starting his Ultra Hard Core play through today or tomorrow or so.

--Kalpar

Link to comment
Share on other sites

10 hours ago, gamerscircle said:

Is there a way to lower or alter the failure sound?

Think you may have the wrong mod - no sounds on this one. Possibly Kerbal Launch Failure

21 hours ago, Kalpar said:

If you would like someone to beta test changes and such, Das is just starting his Ultra Hard Core play through today or tomorrow or so.

Thanks mate, appreciate it. It's pretty close to being done (just squashing some minor bugs relating to highlighting persisting between scene changes and such)

In fact, I'm ready to share some details of what will either be Oh Scrap! 1.4, or if it breaks saves, 2.0 - just bear in mind that any numbers quoted are how it works right now and are subject to balance testing, so may change before final release. (Feedback is welcome and appreciated - if you don't like it, speak now). If all goes well, I should have a playable Beta up today or tomorrow.

  • Failures will no longer be calculated per part. Instead, we'll take into account the overall reliability of the vessel, and use that to determine failure rates. (Ie, if you stick a bunch of really good parts on your rocket, and one really crappy one, the rocket will still be less prone to fail than one with all crappy parts). A really cool side effect of this, is that if you stage away your bad parts, your vessel will become more reliable overall (ie, you can have a bad launch vehicle, but a tried and tested payload, and once the launch vehicle is gone, the payload will be uber reliable).
  • Failures will be rolled for constantly (but rate limited) instead of just on loading the vessel. At the moment, it's every 10 seconds in atmosphere, and every 10 real time seconds, or 30 kerbal minutes (whichever is the longer) out of the atmosphere - to simulate the fact that things are much more likely to go wrong on launch. No failure can occur less than 10 realtime seconds after the last one.
  • Parts can only fail if they are actually in use (ie engines firing, Reaction wheels turning, etc) - this may have been technically in the last version, but I found a bunch of places where it wasn't actually turned on.
  • Remote Repair has been reduced to a 20% chance of success, EVA to 40% and engineers will give a 10%*their level boost to the repair chance (so a Lv5 Engineer will give you a 90% chance of repair on EVA).
  • MASSIVE code cleanup - handling the failures on a per vessel, rather than per part basis means less garbage, better performance and easier for me to maintain etc. I've also moved a BUNCH of duplicated code into their own common methods.
  • Parts that have not been tested/launched can now be recovered. The tradeoff for this is that those parts will receive NO bonuses for recovery. Ie, it will still have the failure rate of a "fresh off the factory line" part.
  • Randomisation is gone. Parts will have standard failure rates.
  • Probably a bunch of other stuff I'm not remembering right now.
Edited by severedsolo
Link to comment
Share on other sites

6 minutes ago, gamerscircle said:

So, there isn't an audio alert when a part fails in Oh Scrap?

There isn't no, :) tbh I don't even know how to insert audio into my mods (it's probably not difficult, I've just never looked into it)

Link to comment
Share on other sites

1 minute ago, severedsolo said:

There isn't no, :) tbh I don't even know how to insert audio into my mods (it's probably not difficult, I've just never looked into it)

okay.. thanks, well - something is very upset .. and only when a part fails.. I will figure it out.

 

Link to comment
Share on other sites

4 hours ago, gamerscircle said:

okay.. thanks, well - something is very upset .. and only when a part fails.. I will figure it out.

 

Is it a solid rocket motor that's failed?  I've had some of those make a bunch of noise because the ignition and combustion sounds keep looping.

Link to comment
Share on other sites

2 minutes ago, dlrk said:

@severedsolo


Would it be possible for the new version to work with 1.4.5?

I'm going to target 1.5, but it will probably work in 1.4.5 - I base that on the fact that Oh Scrap kept working with 1.5 and I'm not using any new functions of the KSP/ScrapYard API - I've just changed how and when it's called.

Link to comment
Share on other sites

Right you lovely lot - a prerelease is now available for the official KSP 1.5 update (and subsequent big rework) Get it Here

BACK UP ALL SAVES BEFORE TRYING THIS - JUST IN CASE

  • Recompile against KSP 1.5.1
  • Failures will no longer be calculated per part. Instead, we'll take into account the overall reliability of the vessel, and use that to determine failure rates. (Ie, if you stick a bunch of really good parts on your rocket, and one really crappy one, the rocket will still be less prone to fail than one with all crappy parts). A really cool side effect of this, is that if you stage away your bad parts, your vessel will become more reliable overall (ie, you can have a bad launch vehicle, but a tried and tested payload, and once the launch vehicle is gone, the payload will be uber reliable).
  • Failures will be rolled for constantly (but rate limited) instead of just on loading the vessel. At the moment, it's every 10 seconds in atmosphere, and every 10 real time seconds, or 30 kerbal minutes (whichever is the longer) out of the atmosphere - to simulate the fact that things are much more likely to go wrong on launch. No failure can occur less than 10 realtime seconds after the last one.
  • Parts can only fail if they are actually in use (ie engines firing, Reaction wheels turning, etc) - this may have been technically in the last version, but I found a bunch of places where it wasn't actually turned on.
    Remote Repair has been reduced to a 20% chance of success, EVA to 40% and engineers will give a 10%*their level boost to the repair chance (so a Lv5 Engineer will give you a 90% chance of repair on EVA).
  • MASSIVE code cleanup - handling the failures on a per vessel, rather than per part basis means less garbage, better performance and easier for me to maintain etc. I've also moved a BUNCH of duplicated code into their own common methods.
  • Parts that have not been tested/launched can now be recovered. The tradeoff for this is that those parts will receive NO bonuses for recovery. Ie, it will still have the failure rate of a "fresh off the factory line" part.
  • Randomisation is gone. Parts will have standard failure rates.
  • Safety Rating system now runs from 1-10 rather than 1-5
  • Probably a bunch of other stuff I'm not remembering right now.

Please give feedback - good or bad. How do the failure rates feel, any bugs etc. (Logs please for the bugs)

Link to comment
Share on other sites

2 hours ago, Kerbas_ad_astra said:

Is it a solid rocket motor that's failed?  I've had some of those make a bunch of noise because the ignition and combustion sounds keep looping.

Yes... that is where the sounds are failing... I had chutes fail and there was no audio, appreciate you passing that along.

Link to comment
Share on other sites

Thanks for the update!

1 hour ago, severedsolo said:

Failures will no longer be calculated per part. Instead, we'll take into account the overall reliability of the vessel, and use that to determine failure rates. (Ie, if you stick a bunch of really good parts on your rocket, and one really crappy one, the rocket will still be less prone to fail than one with all crappy parts). A really cool side effect of this, is that if you stage away your bad parts, your vessel will become more reliable overall (ie, you can have a bad launch vehicle, but a tried and tested payload, and once the launch vehicle is gone, the payload will be uber reliable).

I guess we will have to see how this works out in play testing...  Not sure I get the full implications of the change.

 

1 hour ago, severedsolo said:

Failures will be rolled for constantly (but rate limited) instead of just on loading the vessel. At the moment, it's every 10 seconds in atmosphere, and every 10 real time seconds, or 30 kerbal minutes (whichever is the longer) out of the atmosphere - to simulate the fact that things are much more likely to go wrong on launch. No failure can occur less than 10 realtime seconds after the last one.

I like this change myself!

 

1 hour ago, severedsolo said:

Remote Repair has been reduced to a 20% chance of success, EVA to 40% and engineers will give a 10%*their level boost to the repair chance (so a Lv5 Engineer will give you a 90% chance of repair on EVA).

I like this this rebalance.  Makes higher level Engineer's have a really good purpose!  One thought would be that maybe high level Engineers could try multiple times to fix a part? So %90 change to repair and %10 chance to ruin the part? (or something like that)

 

1 hour ago, severedsolo said:

Parts that have not been tested/launched can now be recovered. The tradeoff for this is that those parts will receive NO bonuses for recovery. Ie, it will still have the failure rate of a "fresh off the factory line" part.

Thanks for adding this!

--Kalpar

Link to comment
Share on other sites

7 hours ago, severedsolo said:

Failures will be rolled for constantly (but rate limited) instead of just on loading the vessel. At the moment, it's every 10 seconds in atmosphere, and every 10 real time seconds, or 30 kerbal minutes (whichever is the longer) out of the atmosphere - to simulate the fact that things are much more likely to go wrong on launch. No failure can occur less than 10 realtime seconds after the last one.

Is this just for loaded vessels?

It would be really interesting if you could add a check, maybe every kerbal month, bi-annual, annual, whatever to non loaded vessels, just so there's a chance for something to happen to that old comms satelite that's been working hard for 50 years because I've never needed to look at it again.

Link to comment
Share on other sites

6 hours ago, Kalpar said:

I guess we will have to see how this works out in play testing...  Not sure I get the full implications of the change.

So, the logic behind this is that as you said, previously parts were failing way too often. One of the reasons for this was that every part was handling it's failures individually. While a 5% chance of failure might not seem much, if you've got a 50 part vessel, the chances of something failing quickly balloon.  (if the probability of an event occuring is 5%, and there are 50 possible event points, the chance of an event occuring once is 250%) - ie , roll enough dice and chances are, one of them will be a 6.

With the new system, we have a one time event instead (balanced by the fact that the event is re-rolled every 10 seconds).

Now, with the old system, failure rates were easy to calculate, the part just rolls against it's own chance of failure. When we are rolling once per vessel though, which parts failure rate do you use? You could use the worst part on the vessel, but then for fairness you have to fail that part - which means that the same part fails every time (boring) - so by using the average failure rate of the entire vessel, we make it fair and can then select any part at random to fail.

One thing I didn't mention in the changelog, is that your crappy parts are still more likely to take the hit on the failure. A simplified version of how it works is this:

1) Determine whether a failure will occur, if not, return. Otherwise go to 2.

2) Select a part at random, increment the counter by 1 and roll against it's individual failure rate.

3) if the counter is greater than 100 (ie we've tried to fail 100 parts and they have all passed the test) OR the part has failed the test, fail the part selected in 2. Otherwise, go back to 2.

Link to comment
Share on other sites

10 minutes ago, severedsolo said:

One thing I didn't mention in the changelog, is that your crappy parts are still more likely to take the hit on the failure. A simplified version of how it works is this:

1) Determine whether a failure will occur, if not, return. Otherwise go to 2.

2) Select a part at random, increment the counter by 1 and roll against it's individual failure rate.

3) if the counter is greater than 100 (ie we've tried to fail 100 parts and they have all passed the test) OR the part has failed the test, fail the part selected in 2. Otherwise, go back to 2.

We think there is an issue with this part of the code...  We have Gen 22 SRB's that are failing before Gen 1 and 2 parts... In fact we having seen a Gen 1 part fail yet...

Here is the link to Das's VOD... Probably best to look near the end... Say starting at about the 8:45:00 spot.

 

Thoughts on what the problem might be?

--Kalpar

Link to comment
Share on other sites

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.

Also taking a random part might not be the best thing if your looping through the parts. We tossed around a bunch of ideas on stream but couldn't come up with something that we thought would be good. Only suggestion I can think of is that if you want to use random parts (performance reasons?) would be to base the max checks on the number of parts found that can fail.  Maybe something like NumParts / 3 rounded up?

--Kalpar

Link to comment
Share on other sites

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