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

On 11/19/2018 at 3:23 AM, severedsolo said:

Which probably means that ScrapYard needs to handle Generations directly. Which is a feature request for ScrapYard - which means that it's going to have to wait until I get to it.

Couldn't you just add your module as one of the ones that's checked for equivalency? The tracker is name based by default so that shouldn't be affected, but the individual generations should get split out in the UI and would show up within the scrapyard UI if they checked the modules on the part (not as nice as seeing it right away, but better than nothing). Then you can select different generations and scrap old generations that you don't want to use anymore. You should be able to do that entirely through a config added to Oh Scrap without having to physically modify ScrapYard.

Mind you, that's assuming I remember anything correctly after not looking at anything for months :P

Link to comment
Share on other sites

5 hours ago, HaydenTheKing said:

How do I turn it down a little? I get a fail like on every launch?

As Beetlecat said you should test your parts.

If your still finding that too high then:

If you are using 1.3.5 you can turn down the baseFailureChance in the MM Patches.

If you are using 1.4 then please provide a copy of your "Logs" folder (in the OhScrap directory)

Link to comment
Share on other sites

On 11/27/2018 at 7:50 PM, Beetlecat said:

Gotta break some eggs to make an omelette... ;)

But seriously -- are you reverting or launching new craft? Once you start testing components and improving the generations of parts, failures should go way down. I always make sure to make simple test rigs of engines and boosters before launching craft with them. --and don't use the old engines/boosters if they have a low rating in scrapyard. Dump 'em! :D

Not sure what you mean testing parts. Am I able to improve the reliability of the early parts?  I have been building a plane and expecting it to work since its the first time the parts were used.

On 11/28/2018 at 12:26 AM, severedsolo said:

As Beetlecat said you should test your parts.

If your still finding that too high then:

If you are using 1.3.5 you can turn down the baseFailureChance in the MM Patches.

If you are using 1.4 then please provide a copy of your "Logs" folder (in the OhScrap directory)

Not sure what you mean testing parts. I'm using 1.4.5. I thought parts all start out max reliability and degrade over uses no?

Link to comment
Share on other sites

59 minutes ago, HaydenTheKing said:

Not sure what you mean testing parts. Am I able to improve the reliability of the early parts?  I have been building a plane and expecting it to work since its the first time the parts were used.

Not sure what you mean testing parts. I'm using 1.4.5. I thought parts all start out max reliability and degrade over uses no?

It's the bathtub curve. Parts will be less reliable/proven the newer they are.

It's spelled out better in the OP, but in brief: flying and recovering individual parts will result in improved reliability of those specific parts. Brand new engines are prone to failure on first activation, so setting up a simple frame of struts and a fuel tank connected to a tower will allow you to "pre fly" an individual engine and get those high failure rolls out of the way before recovering and integrating it into an actual rocket.

Link to comment
Share on other sites

On 5/20/2017 at 1:57 PM, severedsolo said:
  • Failures follow the bathtub curve - brand new untested parts are more likely to fail than pre-tested models. If you re-use a part too many times though, it will reach the end of it's shelf-life and be more prone to failure.
  • Subsequent "new models" of parts become more reliable than their earlier counterparts. Ie, a part you've just researched is more likely to fail than a part that has been tried and tested many times - even if it's brand new.

@HaydenTheKing - quoted from the OP.

For simplicity I'm going to change the definitions a little, because I'm using parts in two contexts here, and that doesn't help.

So here's some new definitions:

Part: As definied by KSP, a component that you add to your vessel from the VAB.

Individual Component: A specific part (as definied by ScrapYard) - the part that is on your vessel right now with an individual Part ID. (In RL terms, think of this as the difference between A sofa, and YOUR sofa. A sofa in general would be a part but YOUR sofa would be an individual component)

Let's assume that you start a new game, and build a plane. When that plane rolls out, all of the individual components of that plane are fresh off the assembly line. Those parts have never been built by your engineers before. As in any manufacturing process, there are probably going to be manufacturing defects. This means that those parts are very likely to fail on the first use. So you take the plane for a shakedown cruise (for the purposes of Oh Scrap! a shakedown cruise means that the vessel must reach a speed of greater than 1m/s to be recorded as such).

You then recover that vessel. Those individual components are added to your ScrapYard inventory. If you then rebuilt those parts, but applied the inventory to them, the same individual components would be put on the plane. This time though, as they have been tested (and initial bugs have been ironed out) they are much more reliable. They are still generation 1, but much more reliable.

If you built that plane again, but didn't apply the inventory, those parts would be brand new individual components. This is what increments the "generation" counter. This time the individual component is slightly less likely to fail, because the engineers have learnt lessons from the last time they built that part. After another shakedown cruise, those individual components are even less likely to fail than their Generation 1 counterparts.

Note that applying the inventory does not count as a "new build" of that part because your engineers have not built a new part - they have used the one they already built the first time. If you continued to build new parts every time, the "first time failure" chance would decrease each time, until you had built that part ten times, in which case they are basically as reliable as they are going to be anyway.

TLDR: Individual Components are much more likely to fail without a shakedown cruise, until you have built alot of them.

Edited by severedsolo
Link to comment
Share on other sites

2 hours ago, severedsolo said:

@HaydenTheKing - quoted from the OP.

For simplicity I'm going to change the definitions a little, because I'm using parts in two contexts here, and that doesn't help.

So here's some new definitions:

Part: As definied by KSP, a component that you add to your vessel from the VAB.

Individual Component: A specific part (as definied by ScrapYard) - the part that is on your vessel right now with an individual Part ID. (In RL terms, think of this as the difference between A sofa, and YOUR sofa. A sofa in general would be a part but YOUR sofa would be an individual component)

Let's assume that you start a new game, and build a plane. When that plane rolls out, all of the individual components of that plane are fresh off the assembly line. Those parts have never been built by your engineers before. As in any manufacturing process, there are probably going to be manufacturing defects. This means that those parts are very likely to fail on the first use. So you take the plane for a shakedown cruise (for the purposes of Oh Scrap! a shakedown cruise means that the vessel must reach a speed of greater than 1m/s to be recorded as such).

You then recover that vessel. Those individual components are added to your ScrapYard inventory. If you then rebuilt those parts, but applied the inventory to them, the same individual components would be put on the plane. This time though, as they have been tested (and initial bugs have been ironed out) they are much more reliable. They are still generation 1, but much more reliable.

If you built that plane again, but didn't apply the inventory, those parts would be brand new individual components. This is what increments the "generation" counter. This time the individual component is slightly less likely to fail, because the engineers have learnt lessons from the last time they built that part. After another shakedown cruise, those individual components are even less likely to fail than their Generation 1 counterparts.

Note that applying the inventory does not count as a "new build" of that part because your engineers have not built a new part - they have used the one they already built the first time. If you continued to build new parts every time, the "first time failure" chance would decrease each time, until you had built that part ten times, in which case they are basically as reliable as they are going to be anyway.

TLDR: Individual Components are much more likely to fail without a shakedown cruise, until you have built alot of them.

Cool, very helpful! Didn't know that was simulated. Just thought generation one meant a early tech part.

The 1m/s thing is interesting. I guess that means you cant build a test frame and launch all engines on the pad.

Link to comment
Share on other sites

5 hours ago, MarcAFK said:

Is there any chance of 1.4 being backported to KSP 1.4.x ?

Sorry but no. It may work in 1.4.x as is, as 1.5 didn't seem to break many mods, but officially I will only support the latest version of KSP.

 

Link to comment
Share on other sites

On 12/2/2018 at 12:37 AM, severedsolo said:

...for the purposes of Oh Scrap! a shakedown cruise means that the vessel must reach a speed of greater than 1m/s to be recorded as such.

 

On 12/2/2018 at 3:25 AM, HaydenTheKing said:

The 1m/s thing is interesting. I guess that means you cant build a test frame and launch all engines on the pad.

Okay--now i'm beginning to doubt my sanity/memory, does this not allow testing engines on the pad? Will they not get their failure check, or tested flag set if just launched on a static mount?

Link to comment
Share on other sites

8 hours ago, Beetlecat said:

Okay--now i'm beginning to doubt my sanity/memory, does this not allow testing engines on the pad? Will they not get their failure check, or tested flag set if just launched on a static mount?

Nothing wrong with your memory (sanity I can't vouch for :P ) - static tests used to work, I accidentally took it out during the re-write for 1.4 and forgot to put it back in again.

Link to comment
Share on other sites

On 12/3/2018 at 11:11 PM, severedsolo said:

Nothing wrong with your memory (sanity I can't vouch for :P ) - static tests used to work, I accidentally took it out during the re-write for 1.4 and forgot to put it back in again.

XD  --- well, I'll humbly request it's at least re-introduced for engines.

Otherwise, the test rigs are now going to consist of wheeled or clamped vehicles that release for a moment to achieve that coveted 1 m/s before recovery. ;) 

Edited by Beetlecat
Link to comment
Share on other sites

SRBs and some engines make a horrible audio racket when they fail.  Not sure if it's something with KW mod parts, or if it's Linux64 bit issues, or if there's something that can be done in Oh Scrap to stop playing the failure sound after a while (or at least tone down the volume over time).

 

Link to comment
Share on other sites

I can confirm the same audio isssue which WuphonsReach reported.

Furthermore I just want to share my experience with Oh Scrap!:

 

In general I think having failures in KSP can make the game so much more exciting, as you can never be quite sure as to whether this launch is going to go the same way the last one did. Making the best out of a bad situation contributes to a lot of fun in KSP. However, with random failures the line to frustration is very thin.

I tried this mod now twice, because I really liked its idea and the reliability based failure model. There has been some great amount of thought and work put into this mod, hats off.

 

But ingame I found the failures were much, much to frequent and thus instead of providing some exciting, unexpected challenge here and there, I just wasn't having any fun anymore.

Mostly that is because when you start a new career in KSP, you will be going through new parts quickly and each part needs to be tested around 5-6 times before you can do a proper launch.

Even worse, the failure rate for the same type of SRBs seems abnormally high. Every time I had around 4 - 6 SRBs of the same type attached to a rocket, in 9/10 times one would inevitably fail during launch / ignition, even though all of them had a reliability rating of 8 - 9.

And that is where I decided this mod is simply too frustrating in its current state, if you decide to play career.

 

Would it be possible to release a seperate version of this mod, which - similarly to Dang It! - starts off with a high reliability, but then degrades continously. Each part is rated for X safe uses or X safe hours (afterwards the reliability goes down rapidly) and that rating goes up with each generation. That would mean parts for longer missions would still needed to be tested for increased long-term reliabilty, but then you wouldn't need to test every single new part in career dozens of times before you can actually use it for that one single mission which the contract requires.

That would actually be fun and not frustrating in career.

It would allow you to use new parts for contracts, without having to test them a dozens times beforehand.

 

Link to comment
Share on other sites

I'd possibly agree that SRB failure rates might be a bit high, so far the rest feels ok but I'm still in Kerbin's SoI.  Still experimenting (only been using Oh Scrap! for 2 days now).  Took about 10 launches before I felt like SRB XYZ was reliable.

(I run with Scrapyard and KCT.  My KCT is turned up to 11 with 100-300 day build times, 10-20 day roll-outs, takes years and years to research stuff.)

Link to comment
Share on other sites

Another, even better idea would be:

 

Instead of punishing the player randomly for things that were not his fault (i.d. random failures), reward him for improving the parts instead. Generation 1 of parts starts off with 20% worse stats than stock (e.g. worse mass, worse ISP, less movement range on fins, higher tank leakage, more electricity consumption). Each generation improves the stats by e.g. 2% so that at generation 10 you have perfectly working stock designs.

This way it is fun and rewarding to improve the reliability rating and at least you can properly plan for and counteract failure.

Consumes too much fuel / too much fuel leakage on generation 2 still? Maybe bring more than you would typically need.

 

Right now the situation is: Too unreliable generation 2 booster? Just bring spare boosters. Oh look - one of my reliability rated 9 boosters has failed and the rated 9 spare booster have both failed in the same (!) launch. Maybe the tenth generation will finally be able to just launch without failing uncontrollably.

Link to comment
Share on other sites

19 hours ago, WuphonsReach said:

SRBs and some engines make a horrible audio racket when they fail.  Not sure if it's something with KW mod parts, or if it's Linux64 bit issues, or if there's something that can be done in Oh Scrap to stop playing the failure sound after a while (or at least tone down the volume over time).

Nah it's definitely Oh Scrap! - basically, it causes the SRB to shutdown when ignited, which they are not designed to do, and it causes the sound to go cuckoo. Someone suggested a fix a while back, and I just never really got round to looking into it. Consider it a known issue.

17 hours ago, FasterThanFlourite said:

But ingame I found the failures were much, much to frequent and thus instead of providing some exciting, unexpected challenge here and there, I just wasn't having any fun anymore.

Can I assume that you are basing this on the latest version (1.4)? - I will admit there were some HORRENDOUS balance issues in the previous update, but I feel that 1.4 (mostly) addresses this. For my part, playing a career (with no StageRecovery, which makes it slightly harder) I found that my pre-orbital rockets were pretty unreliable, but after that, I rarely get a failure at all on tried and tested parts. I'd be curious to see your Logs folder (assuming that you are running 1.4).

In terms of what you can do to balance it right now (assuming you are running 1.4) - you have two three tools available to you.

The first is the parts cfg files themselves. In each cfg there is a variable called "baseChanceOfFailure" - I'm sure you can figure out what that does. For SRBs this is the only thing that matters.

Your second tool (for everything else) is located at <OhScrapDirectory>/PluginData/DefaultSettings.cfg - in here are things that you can tweak to get failure rates that work for you. The figures should be fairly self explanatory, but any questions let me know. I find that increasing the time between failure checks is very effective.

Your third tool, which I don't like to advertise, because really it's a hacky shortcut that I wrote for myself, is that you can add a blank text file to your OhScrap directory called debug.txt (lower case) - this will then print the theoretical chance of a failure occurring (for that craft, at the time the last check was done) to the UI during flight. It's not 100% accurate (especially for Space) but it gives you a good idea when balancing.

17 hours ago, FasterThanFlourite said:

Would it be possible to release a seperate version of this mod, which - similarly to Dang It! - starts off with a high reliability, but then degrades continously. Each part is rated for X safe uses or X safe hours (afterwards the reliability goes down rapidly) and that rating goes up with each generation. That would mean parts for longer missions would still needed to be tested for increased long-term reliabilty, but then you wouldn't need to test every single new part in career dozens of times before you can actually use it for that one single mission which the contract requires. 

Honestly, this has been going through my own mind in the last week or so as well (I feel like DasValdez put it there, but I can't be sure). I've always shied away from it because otherwise I was basically making a clone of TestFlight - but that mod doesn't seem to have been updated in forever, so I guess it's safe :p It's definitely one of those "yeah that would be cool and definitely want to do it" things, but that doesn't mean it will actually happen (My other mods need some serious attention before I come back to this again).

Quote

Instead of punishing the player randomly for things that were not his fault (i.d. random failures), reward him for improving the parts instead. Generation 1 of parts starts off with 20% worse stats than stock (e.g. worse mass, worse ISP, less movement range on fins, higher tank leakage, more electricity consumption). Each generation improves the stats by e.g. 2% so that at generation 10 you have perfectly working stock designs.

Eh, it's a good idea, but this is really a different ScrapYard based mod. OhScrap is primarily, and always will be a random part failure mod.

Link to comment
Share on other sites

Thanks.

How many failure modes are there for SRBs?  So far, all of my failures have been complete loss of thrust.  Wonder if there are ways besides reducing the thrust to zero to represent a failure:

  • Crack in casing causes the casing to heat up (possibly causing nearby parts to overheat).
  • Thrust gets offset +/- 30 degrees
  • Represent loss of total dV performance by a "fuel leak" type mechanic so the fuel runs out early (maybe "poor casting of the propellant" as a cause)
  • Make it go boom sometimes
  • Muck with the Isp / thrust total values (-10% to -50%)
Link to comment
Share on other sites

6 hours ago, severedsolo said:
  On 12/7/2018 at 12:18 PM, FasterThanFlourite said:

"Would it be possible to release a seperate version of this mod, which - similarly to Dang It! - starts off with a high reliability, but then degrades continously. Each part is rated for X safe uses or X safe hours (afterwards the reliability goes down rapidly) and that rating goes up with each generation. That would mean parts for longer missions would still needed to be tested for increased long-term reliabilty, but then you wouldn't need to test every single new part in career dozens of times before you can actually use it for that one single mission which the contract requires."

Honestly, this has been going through my own mind in the last week or so as well (I feel like DasValdez put it there, but I can't be sure). I've always shied away from it because otherwise I was basically making a clone of TestFlight - but that mod doesn't seem to have been updated in forever, so I guess it's safe :p It's definitely one of those "yeah that would be cool and definitely want to do it" things, but that doesn't mean it will actually happen (My other mods need some serious attention before I come back to this again).

Eh, it's a good idea, but this is really a different ScrapYard based mod. OhScrap is primarily, and always will be a random part failure mod.

This would essentially be the "other end" of the bathtub curve, and force us to retire vessels & components after a while. Would a new indicator for number of hours/age be introduced for the scrapyard ui?  This ups the complexity for craft building (do I go with an "old, reliable" engine for this next mission? It's cheap, but it may fail after X hours...). Maybe after enough time goes by an "is old" flag gets set, which affects the reliability and pushes it toward failure the next time the chance roll happens...

Link to comment
Share on other sites

I've been having the following error with every version I have tried, in ksp 1.4 or 1.5.
Here is what I get in the log with a fresh install of 1.5.1 without making history, Only mods are: module manager 3.1.1, Scrapyard 1.1.1 and oh scrap 1.4 :

Spoiler

[ERR 22:27:22.765] ADDON BINDER: Cannot resolve assembly: ScrapYard, Culture=neutral, PublicKeyToken=null

[ERR 22:27:22.768] AssemblyLoader: Exception loading 'OhScrap': System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
  at AssemblyLoader.LoadAssemblies () [0x00000] in <filename unknown>:0

Additional information about this exception:

 System.TypeLoadException: Could not load type 'OhScrap.AntennaFailureModule' from assembly 'OhScrap, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

etc.....

 

Edited by MarcAFK
Link to comment
Share on other sites

1 minute ago, MarcAFK said:

Here is what I get in the log with a fresh install of 1.5.1 without making history, Only mods are: module manager 3.1.1, Scrapyard 1.1.1 and oh scrap 1.4 :

Did you move OhScrap out of the Severedsolo directory by any chance?

Link to comment
Share on other sites

On 12/7/2018 at 2:18 PM, FasterThanFlourite said:

Even worse, the failure rate for the same type of SRBs seems abnormally high. Every time I had around 4 - 6 SRBs of the same type attached to a rocket, in 9/10 times one would inevitably fail during launch / ignition, even though all of them had a reliability rating of 8 - 9.

I believe that this was fixed in the most recent version, so if you're not using that one then upgrading will fix that issue. If you are using the most recent one, then it may not have been fixed actually.

And if you want to turn down the failure rate, you can follow what @severedsolo said and turn down the base chance of failure (using some ModuleManager tricks you can probably do a universal tone-down of failures for all parts).

And I kind of like the current method. It allows failures to be semi-predictable (as in you know when you make a ship the rough chance that it'll fail on launch).

Link to comment
Share on other sites

First, I'd like to apologize for posting on the old thread - I'm not sure how I landed there, actually.  But here I am now, on the correct thread (the wrong thread again, why??), and... I can't get the error to reproduce in "stock," which I assume in this case means no mods other than Scrapyard and its dependencies installed (MagiCore and Module Manager).  I do NOT have Kerbal Construction Time installed, as every search for an up-to-date download seems to lead to a lot of comments about how it's still buggy and "in development" for the 1.5 version of KSP.  If I'm wrong and there's a good, safe download for it, please let me know ;)

For others, I'm referring to this comment here:

The issue was that command pods didn't get recovered, for some reason.  They seem to be working now, when I trimmed my mod list down to just Scrapyard, MagiCore, and Oh Scrap! (with the Kerbal Changelog installed too,because of Oh Scrap!).

At this point I'm going to assume it's a mod conflict (or possibly CKAN being idiotic), but due to a few issues (with CKAN) during the process of stripping my mods out for testing, my mod install/setup got completely wrecked so I can't even give a proper list of the mods present at the time this was happening.  Which also means I'm gonna have to spend the next hour or two trying to rebuild my mod list, whee. 

Edited by Kirona
I'm not sure how I'm so bad at navigating this forum but here we are.
Link to comment
Share on other sites

Spoiler

@PART[*]:HAS[@MODULE[ModuleEngines*]:HAS[@PROPELLANT[SolidFuel]]]
{
	MODULE
	{
		name = SRBFailureModule
		baseChanceOfFailure = 0.6
		expectedLifetime = 5
	}
}

 

I've head a gander (I'm using OS 1.4 release version), and the SRB base chance of failure is 0.6 compared to liquid engines of 0.11.  So a SRB is about 5x-6x more likely to fail.  

Combine that with most SRBs being radially mounted, used at lift-off, in sets of 2-6; and it results in making SRBs noticeably less reliable.  If they were more subtle failures like off-axis thrust, broken/limited gimbal, 5-15% shorter burn time, part heating then that higher failure rate would be less noticeable.

For now, since they don't have those additional failure modes, I've kicked my reliability down to 0.11 and boosted expected life to 8 (should probably be 10-12).

Link to comment
Share on other sites

34 minutes ago, WuphonsReach said:

or now, since they don't have those additional failure modes, I've kicked my reliability down to 0.11 and boosted expected life to 8 (should probably be 10-12

That is a bit higher than I thought it was actually (I thought it was about 40%). 

Just bear in mind that SRBs have one failure event total (others get checked constantly) and the drop off per generation is much higher than liquids (its baseChance/generation for SRBs, other parts drop off more gradually) 

Link to comment
Share on other sites

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