zer0Kerbal

[1.9.x] OhScrap!- A ScrapYard based Part Failure and Reliability Mod (2.1.0.0)[2020 Mar 13]

Recommended Posts

Posted (edited)

 

Download on SpaceDock, Github or Curseforge
Available on CKAN.

Oy!Scrap! (formerly UPFM)

Mod Version KSP version KSP-AVC License: MIT MIT-17x17.png
Spacedock CKAN Github Curseforge

Validate AVC .version files

Poor Val, she's not having a good day.
There she was on her way back from orbit, and this happened:

A bad day for Val

You see, I forgot to take her shiny new ship for a test flight before sending it to space, so the reaction wheels failed. Then her oxygen started venting into space. So she quickly burned retrograde and started her re-entry. Except that as she came into land, the parachute failed too. Like I said, not a good day.

Sound exciting? Then why don't you install Oh Scrap! today.

Features

  • Part Failures: Parachutes, Engines, Gimbals, Resources, Batteries, Reaction Wheels, Control Surfaces - all these failures can make your day turn out like Vals. (all can be disabled or enabled through the difficulty settings menu)
  • 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.
  • Repairs - some parts can be repaired remotely, some need an EVA. You always have a better chance of repairing a part on EVA

Eye candy of a really awesome Static Test that someone set up on facebook
(used with permission):

Spoiler

68747470733a2f2f692e696d6775722e636f6d2f 68747470733a2f2f692e696d6775722e636f6d2f

Special Thanks

  • @magico13 both for ScrapYard, and helping me with all my questions issues while making this.
  • @severedsolo
  • The maintainers/authors of DangIt - most of this would never have happened without looking at your code to figure out how to make stuff work.

Installation Directions:

  • Use CKAN

A note to CKAN USERS:

  • Kerbal Changelog is not a hard dependency, in that "Oh Scrap will load just fine without it".
  • However, on CKAN it is a dependency.
  • When I make a serious save / mod breaking change, CKAN will happily update you without you ever seeing a changelog. This means you could happily load your save, not notice the major version number has changed, and seriously break something. I do not like this. So CKAN users must use Kerbal Changelog, because that way nobody can say they weren't warned :).

Changelog Summary

See ChangeLog for full details of mod changes

Requires:

Depends:

  • ScrapYard to keep track of how many times a part has been built/recovered so that is a hard dependency. (obtained separately)
  • Module Manager is required if you want the mod to actually do anything. (obtained separately)

Recomends:

Suggests:

zer0Kerbal's Stuff

Supports:

Conflicts:

Replaces:

68747470733a2f2f692e696d6775722e636f6d2f5964596653744e2e6a7067

License
aka Legal Mumbo Jumbo

Source: GitHub
License: License: MIT MIT-17x17.png

  • All bundled mods are distributed under their own licenses
  • All art assets (textures, models, animations) are distributed under their own licenses

Original

Download Here
Source: GitHub
License: License: MIT MIT-17x17.png


68747470733a2f2f692e696d6775722e636f6d2f524534507072392e706e67 68747470733a2f2f692e696d6775722e636f6d2f6d306137746e322e706e67 68747470733a2f2f692e706f7374696d672e63632f525a4e79423576502f446f776e6c6f61642d4f6e2d43757273652e706e67

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

 
v2.0.1.0 original: 01 Oct 2019 zed'K | updated: 12 Mar 2020 zed'K

 

Edited by zer0Kerbal

Share this post


Link to post
Share on other sites
Posted (edited)

Reserved for Changelog:

REMOVE PREVIOUS VERSION!

OhScrap%20version-1.2.0.0-orange.svg?sty KSP version KSP-AVC License: MIT MIT-17x17.png


Version 2.1.0.0 - new maintainer, same great taste!

  • >>-- Adoption by zer0Kerbal --<<
  • recompiled for KSP 1.9.1
  • recompiled against .NET 4.8
  • updated file structure
  • updated .csproj to zer0Kerbal's
  • updated to zer0Kerbal's automated build process
  • added Logger.cs
  • use Version.Number from tt processes
  • adjusted log path from /severedsolo/OhScrap/Logs/ to /OhScrap/Logs/

Kerbal Space Program 1.9.1
Unity 2019.2.2f1
.NET Framework 4.8

Edited by zer0Kerbal

Share this post


Link to post
Share on other sites

Reserved for Changelog:

 

Spoiler

 

OhScrap%20version-1.2.0.0-orange.svg?sty KSP version KSP-AVC License: MIT MIT-17x17.png


Version 2.1.0.0 - new maintainer, same great taste!

  • >>-- Adoption by zer0Kerbal --<<
  • recompiled for KSP 1.9.1
  • recompiled against .NET 4.8
  • updated file structure
  • updated .csproj to zer0Kerbal's
  • updated to zer0Kerbal's automated build process
  • added Logger.cs
  • use Version.Number from tt processes
  • adjusted log path from /severedsolo/OhScrap/Logs/ to /OhScrap/Logs/

Kerbal Space Program 1.9.1
Unity 2019.2.2f1
.NET Framework 4.8

 

 

 

 

 

Share this post


Link to post
Share on other sites

Thank you! Looking forward to the new release.

This however has me concerned a little, I hope it is disabled by default for release versions:

8 hours ago, zer0Kerbal said:
  • added Logger.cs
  • [...]
  • adjusted log path from /severedsolo/OhScrap/Logs/ to /OhScrap/Logs/

 

There are way too many mods writing way too much stuff into way too many logfiles. It's ok for a debug build, but please (this goes to ALL mod authors), please, keep the logging stuff to a minimum when you publish your mod for wider dissemination. Add a config option somewhere to enable it for diagnostic purposes, but in general use, there should be no output at all. Maybe excepting a line stating the mod was loaded, and what version. Everything else you want to output should go into the game UI. If you don't want it there, usually neither do I : )

Share this post


Link to post
Share on other sites
Posted (edited)
4 hours ago, Corax said:

Thank you! Looking forward to the new release.

This however has me concerned a little, I hope it is disabled by default for release versions:

 

There are way too many mods writing way too much stuff into way too many logfiles. It's ok for a debug build, but please (this goes to ALL mod authors), please, keep the logging stuff to a minimum when you publish your mod for wider dissemination. Add a config option somewhere to enable it for diagnostic purposes, but in general use, there should be no output at all. Maybe excepting a line stating the mod was loaded, and what version. Everything else you want to output should go into the game UI. If you don't want it there, usually neither do I : )

I hear you and will consider; though this mod has always (as far as I know) created a log; I just moved where it was created/stored because I adjusted the install path.

Logger.cs is my debugging boilerplate code; something I add to most code projects and is normally not turned on for releases, just debug builds. In fact, this switch is automatic in my newer builds due to how it is coded (thanks to code snippet from @linuxgurugamer and @Lisias)

If anything, most of the mods I release that include a .dll that I compile come with little to no included debug symbols (the .mdb); I usually turn them off for releases.

Have you looked at this directory when you are playing?

and both ScrapYard and OhScrap! do have those options in settings; did you look?

Spoiler

image.png

image.png

although maybe the settings pages could use a little reorganization... perhaps submit a feature request/issue on github suggesting this.

5 hours ago, derbleifuss said:

What are the Differneces to DangIt?

that I cannot answer. Have never played with Dangit.

Edited by zer0Kerbal

Share this post


Link to post
Share on other sites
3 hours ago, Corax said:

There are way too many mods writing way too much stuff into way too many logfiles.

Problem is... It's our best tool for diagnosing problems. Messages on the screen are useless, as they don't have enough information (there's no enough screen!) - we usually issue messages on screen to alert about nasty conditions, but pushing on the screen all the messages needed to diagnose the problem is unfeasible.

Once a problem happens, diagnosing it is not a mere look on the Exception message - it only tell us what happened, not why , and without the why, there's no possible fix without guessing (what, usually, ends up on finger pointing).

So, some logging is needed - otherwise you will not get proper support when things goes badly on this Add'On or even others inducing this one to bork by collateral effect.

You may think logs is bad - but it's way worse without them.

That said, some logging messages are only meaningful on development (we call these "debugging messages" - and I agree that these ones should be suppressed on releases.

Share this post


Link to post
Share on other sites
1 hour ago, zer0Kerbal said:

I hear you and will consider; though this mod has always (as far as I know) created a log; I just moved where it was created/stored because I adjusted the install path.

Logger.cs is my debugging boilerplate code; something I add to most code projects and is normally not turned on for releases, just debug builds. In fact, this switch is automatic in my newer builds due to how it is coded (thanks to code snippet from @linuxgurugamer and @Lisias)

If anything, most of the mods I release that include a .dll that I compile come with little to no included debug symbols (the .mdb); I usually turn them off for releases.

Have you looked at this directory when you are playing?

and both ScrapYard and OhScrap! do have those options in settings; did you look?

although maybe the settings pages could use a little reorganization... perhaps submit a feature request/issue on github suggesting this.

Thanks for your explanations, I've seen the settings and noticed the extra logging option as well, that's how I think things should be handled; however as I said, too many mods simply spam too many messages either into the KSP log itself, or–and I don't know which is worse–spam their own log files all over the place. I hope it is clear wasn't trying to say you or OhScrap does this, just that I am wary of such a situation developing. I highly respect any and all mod authors, whether they spam logs or don't; I just wish some would exercise a little more restraint in that matter : ) and remember to turn their debug logging off when they release.

 

 

1 hour ago, Lisias said:

Problem is... It's our best tool for diagnosing problems. Messages on the screen are useless, as they don't have enough information (there's no enough screen!) - we usually issue messages on screen to alert about nasty conditions, but pushing on the screen all the messages needed to diagnose the problem is unfeasible.

Once a problem happens, diagnosing it is not a mere look on the Exception message - it only tell us what happened, not why , and without the why, there's no possible fix without guessing (what, usually, ends up on finger pointing).

So, some logging is needed - otherwise you will not get proper support when things goes badly on this Add'On or even others inducing this one to bork by collateral effect.

You may think logs is bad - but it's way worse without them.

That said, some logging messages are only meaningful on development (we call these "debugging messages" - and I agree that these ones should be suppressed on releases.

I don't think logs per se are bad, and trust me, I know why logging is needed in case of issues. I have done my share of software development myself.

Call me elitist, but I also get that "the average user" probably wouldn't know (or care, or even need to care) how to go through a few steps to enable them if they weren't from the start–it's just that I'd like a simple way to disable them if and when I am confident that I don't need them at the moment, and re-enable them if and when issues arise. Without having to grep tons of Unity3d documentation, plugin source code, or symlinking to /dev/null if that doesn't help...

Share this post


Link to post
Share on other sites
1 hour ago, zer0Kerbal said:

that I cannot answer. Have never played with Dangit.

Like almost every Part can fail in some Way and the Probability of a Failure increases with both the Time it was in Operation and just the Time in general. They can be fixed by an Engineer using the "Spare Parts" Resource and can be maintained by them or checked by any Kerbal to give a temporary Reliability Boost. What it does not include is the Ability to test and validate Parts in order to increase their Reliabilty.

There also is a similar Mod that allows you adjust the Build Quality of a Part to make Failures less likely at the cost of Funds which I mistook to bei included in DangIt. Seems like I was wrong and it actually is yet another Mod.

Share this post


Link to post
Share on other sites
Posted (edited)
12 minutes ago, derbleifuss said:

There also is a similar Mod that allows you adjust the Build Quality of a Part to make Failures less likely at the cost of Funds which I mistook to bei included in DangIt. Seems like I was wrong and it actually is yet another Mod.

Kerbalism has this functionality; there are, or at least were a few other mods addressing part reliability, testing, and failures. "Test Flight" and "Kerbal Mechanics" IIRC, and I think at least one or two others. I think one of them had a rather wacky name, but other than that I don't remember any more details.

Edited by Corax

Share this post


Link to post
Share on other sites
56 minutes ago, Corax said:

Call me elitist, but I also get that "the average user" probably wouldn't know (or care, or even need to care) how to go through a few steps to enable them if they weren't from the start–it's just that I'd like a simple way to disable them if and when I am confident that I don't need them at the moment, and re-enable them if and when issues arise. Without having to grep tons of Unity3d documentation, plugin source code, or symlinking to /dev/null if that doesn't help...

Yep. But, sir, the logs are not for you. The logs are meant for people that will provide support for the Add'Ons. These logs are the reason we can diagnose the problem by just telling the user to send us the logs, instead of going through a tedious and long series of "please try this, please execute these steps, please do that".

Share this post


Link to post
Share on other sites
39 minutes ago, Corax said:

Kerbalism has this functionality; there are, or at least were a few other mods addressing part reliability, testing, and failures. "Test Flight" and "Kerbal Mechanics" IIRC, and I think at least one or two others. I think one of them had a rather wacky name, but other than that I don't remember any more details.

Oh dear, Kerbalism sounds complex. I do have Life Support but I wanted to keep it "Kerbal" so I chose Snacks.

DangIt is really nice for manned Missions where the Engineer has to EVA a pre-Landing Check (like Engines, Tanks, Control Surfaces and Landing Gear on a Shuttle) but with Probes that fly literally for Decades (OPM installed) they will almost inevitably be bricked by a failed Engine or Reaction Wheel.

 

Yup, I'd build Probes with a higher Quality Standart than manned  Spacecraft. Possibly one of the most Kerbal Things imaginable.

Share this post


Link to post
Share on other sites
Posted (edited)
17 minutes ago, Lisias said:

Yep. But, sir, the logs are not for you. The logs are meant for people that will provide support for the Add'Ons. These logs are the reason we can diagnose the problem by just telling the user to send us the logs, instead of going through a tedious and long series of "please try this, please execute these steps, please do that".

Which is almost exactly what I said. But for those who do not require holding their hands, there should be a quick, simple way to disable those logs, without jumping through hoops. Precisely because they are NOT for me.

 

Edited by Corax
End of discussion. This is getting way off topic.

Share this post


Link to post
Share on other sites
Posted (edited)
13 hours ago, Corax said:

Which is almost exactly what I said. But for those who do not require holding their hands, there should be a quick, simple way to disable those logs, without jumping through hoops. Precisely because they are NOT for me.

The particular logs you are talking about are for balance testing reasons. So basically: I used to get alot of people coming to me saying "the mod fails too much/not enough" - and it's really difficult to quantify that, because people suck at wrapping their head around random numbers. It logs so I (and now zer0kerbal) have hard cold numbers to back it up.

If you have "extra logging" turned off, the actual logging it does is super minimal. It literally just logs that a failure tried to happen, the time it tried to happen at, and whether it was successful. Those logs are deleted after 24 hours. The performance impact is almost zero, because it writes the logs out on a scene change (when the game is doing a bunch of I/O anyway so you won't notice).

Edited by severedsolo

Share this post


Link to post
Share on other sites
Posted (edited)
On 3/14/2020 at 8:30 AM, JebIsDeadBaby said:

Would be nice to have this available via CKAN

it (and OhScrap) are being transitioned to the new GitHub repositories. It is out of our control.

I am working today on finishing the last spit and polish on ScrapYard's new Readme.md, which I use for the initial forum thread posting, the SpaceDock mod page, the Curseforge Mod Description page, and of course for the Github and .zip readme's.

Almost done, got sidetracked on creating/updating a Contributing.md file (which I have been putting off making for quite some time).

I suspect that CKAN is waiting for me to update ScrapYard in SpaceDock ... (more than suspect - know)

so

SOON™er™ish♥

Edited by zer0Kerbal

Share this post


Link to post
Share on other sites

Hey zer0Kerbal,

thanks for providing this mod! I have used DangIt in the past and am now considering to switch to this one.

 

I have noticed that OhScrap has some issues with ModuleManager 4.1.3 (did not test other MM versions):

https://forum.kerbalspaceprogram.com/index.php?/topic/50533-18x-19x-module-manager-413-november-30th-2019-right-to-ludicrous-speed/

 

I have:
KSP 1.9.1

ModuleManager 4.1.3

OhScrap 2.1.1.0 (also tested 2.1.0.0)

Windows 8.1

 

Problem:

The game does not finish loading. Depending on whether Squad DLC are installed it stops at "Verifying <expansion>" or "Loading expansions..."

It also says in the loading screen:

Mod(s) DLL that are not compatible with this version of KSP
OhScrap 2.1.1.0 path/to/OhScrap.dll

 

If you cannot reproduce the issue I can also test it on Linux.

If you need any help in debugging / testing feel free to hit me up!

 

 

Many thanks and best regards

Fulgo

Share this post


Link to post
Share on other sites
42 minutes ago, Fulgora said:

Hey zer0Kerbal,

thanks for providing this mod! I have used DangIt in the past and am now considering to switch to this one.

 

I have noticed that OhScrap has some issues with ModuleManager 4.1.3 (did not test other MM versions):

https://forum.kerbalspaceprogram.com/index.php?/topic/50533-18x-19x-module-manager-413-november-30th-2019-right-to-ludicrous-speed/

 

I have:
KSP 1.9.1

ModuleManager 4.1.3

OhScrap 2.1.1.0 (also tested 2.1.0.0)

Windows 8.1

 

Problem:

The game does not finish loading. Depending on whether Squad DLC are installed it stops at "Verifying <expansion>" or "Loading expansions..."

It also says in the loading screen:


Mod(s) DLL that are not compatible with this version of KSP
OhScrap 2.1.1.0 path/to/OhScrap.dll

 

If you cannot reproduce the issue I can also test it on Linux.

If you need any help in debugging / testing feel free to hit me up!

 

 

Many thanks and best regards

Fulgo

Is it possible you are missing a dependency mod?  If a DLL can't find another DLL it's expecting, it can throw an error like this.

Share this post


Link to post
Share on other sites
3 minutes ago, Pehvbot said:

Is it possible you are missing a dependency mod?  If a DLL can't find another DLL it's expecting, it can throw an error like this.

I do not believe so. I saw this popping up in my install with some 50 mods so I broke it down to a minimal reproducible setup and came up with OhScrap and MM only - neither has any dependencies.

The first time I saw all mods were installed through CKAN but for verification I installed "everything" manually.

Both my minimal setup and my actual install are fixed by simply removing OhScrap (which I have done for now as quite a few other mods depend on MM).

Share this post


Link to post
Share on other sites
1 hour ago, Fulgora said:

Hey zer0Kerbal,

thanks for providing this mod! I have used DangIt in the past and am now considering to switch to this one.

I have:

KSP 1.9.1

ModuleManager 4.1.3

OhScrap 2.1.1.0 (also tested 2.1.0.0)

Windows 8.1

 

Problem:

The game does not finish loading. Depending on whether Squad DLC are installed it stops at "Verifying <expansion>" or "Loading expansions..."

It also says in the loading screen:


Mod(s) DLL that are not compatible with this version of KSP
OhScrap 2.1.1.0 path/to/OhScrap.dll

 

If you cannot reproduce the issue I can also test it on Linux.

If you need any help in debugging / testing feel free to hit me up!

Many thanks and best regards

Fulgo

 

23 minutes ago, Pehvbot said:

Is it possible you are missing a dependency mod?  If a DLL can't find another DLL it's expecting, it can throw an error like this.

 

16 minutes ago, Fulgora said:

I do not believe so. I saw this popping up in my install with some 50 mods so I broke it down to a minimal reproducible setup and came up with OhScrap and MM only - neither has any dependencies.

The first time I saw all mods were installed through CKAN but for verification I installed "everything" manually.

Both my minimal setup and my actual install are fixed by simply removing OhScrap (which I have done for now as quite a few other mods depend on MM).

Thank you.

@severedsolo and @magico13 get all the credit.

With that said: OhScrap! has a hard dependency on ScrapYard. Do yo have that installed?

On 3/13/2020 at 4:27 AM, zer0Kerbal said:

Requires:

  • Kerbal Space Program v1.9.1, may work on earlier versions (YMMV)
  • ScrapYard to keep track of how many times a part has been built/recovered so that is a hard dependency. (obtained separately)

Depends:

  • Module Manager is required if you want the mod to actually do anything. (obtained separately)

I realize now - sort of confusing - but done this way because of the way CKAN operates. Will change for next release moving ScrapYard from Requires to Depends.

Share this post


Link to post
Share on other sites
11 minutes ago, zer0Kerbal said:

 

 

Thank you.

@severedsolo and @magico13 get all the credit.

With that said: OhScrap! has a hard dependency on ScrapYard. Do yo have that installed?

I realize now - sort of confusing - but done this way because of the way CKAN operates. Will change for next release moving ScrapYard from Requires to Depends.

Oh - I have overlooked that. I read 1.9.1 and went to the next section.

Apologies for my inability to read properly.

 

Many thanks - it works now!

Share this post


Link to post
Share on other sites
16 minutes ago, Fulgora said:

Oh - I have overlooked that. I read 1.9.1 and went to the next section.

Apologies for my inability to read properly.

 

Many thanks - it works now!

can't blame you - my posts are often TL;DR - :o:D

Glad to hear that!

PS - also a new version is on its way. Prelease is on GitHub - just waiting for the 'all clear' from the beta tester.

Share this post


Link to post
Share on other sites
On 3/21/2020 at 8:13 PM, Fulgora said:

The first time I saw all mods were installed through CKAN but for verification I installed "everything" manually.

(emphasis mine) If social distancing wasn't a thing I'd be hugging you with gratitude right now :D

Share this post


Link to post
Share on other sites

Thanks for keeping this alive! I like the possibility for parts to fail, but I find testing parts 10 times, then manually throw them away in ScrapYard a bit cumbersome - it's repetitive and costs money. So I was thinking: in career mode you can enable cost for unlocking newly researched parts. Would it be possible to combine this with OhScrap or add a similar option, so that after paying these funds new parts get a reliability of 10 / start with generation 10? Of course this should be optional.

Share this post


Link to post
Share on other sites
18 hours ago, infinite_monkey said:

Thanks for keeping this alive! I like the possibility for parts to fail, but I find testing parts 10 times, then manually throw them away in ScrapYard a bit cumbersome - it's repetitive and costs money. So I was thinking: in career mode you can enable cost for unlocking newly researched parts. Would it be possible to combine this with OhScrap or add a similar option, so that after paying these funds new parts get a reliability of 10 / start with generation 10? Of course this should be optional.

interesting. don't know how much work this would be, but will consider it. suggest putting in a feature request on Github.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.