ferram4

[1.0.5] Kerbal Joint Reinforcement v3.1.4 6/22/15

1608 posts in this topic

Tired of rockets collapsing when physics initializes, but it would be fine if physics didn't start with a jerk?

Irritated launch clamps can twist your rocket apart when physics starts for no apparent reason?

Need more joint stiffness because you're playing Real Solar System and the stock joints just don't cut it?

Then you need KERBAL JOINT REINFORCEMENT!

Lessen the effects of physics glitches and get back to designing rockets to handle flight, not to handle the forces applied when the game loads.

EXCITING FEATURES!

  1. Physics Easing
    • Slowly dials up external forces (gravity, centrifugal, coriolis) when on the surface of a planet, reducing the initial stress during loading
    • All parts and joints are strengthened heavily during physics loading (coming off of rails) to prevent Kraken attacks on ships

[*]Launch Clamp Easing

  • Prevents launch clamps from shifting on load, which could destroy the vehicle on the pad

[*]Increase stiffness and strengths of connections

  • Larger parts will have stiffer connections to balance their larger masses / sizes
  • Sequential parts in a stack will be connected with a stiff, but weak connection to add even more stiffness and counteract wobble

[*]Stiffen interstage connections

  • Parts connected to a decoupler will be connected to each other, reducing flex at the connection to reasonable levels

[*]Stiffen launch clamp connections

  • Less vehicle movement on vessel initialization
  • Warning: may cause spontaneous rocket disintegration if rocket is too large and over-constrained (far too many launch clamps; their connections will fight each other and give rise to phantom forces)

[*]Option to make connections fail at lower forces to maintain difficulty in launching

More documentation and changelog available in the README file.

Note: To avoid possibly exacerbating any of the win64 KSP build's instability inherent issues, this mod will disable itself if run on a win64 build of KSP.

Changelog:

v3.1.4  
Misc
--Fixed issue with .version file and compatible KSP versions

v3.1.3
Features
--Update for KSP 1.0

v3.1.2
Features
--Added code to slightly stiffen connections between symmetrically-connected parts attached to a central part; should reduce some physics weirdness

BugFixes
--Fixed issue where undocking was impossible.

v3.1.1
BugFixes
--Fixed a serious lock-to-worldspace issue involving multipart joints and physicsless parts

v3.1
Features
--Set multipart joints to account for large mass ratios in choosing which parts to join
--Set Decoupler Stiffenning to require the connection of immediate decoupler children to stiffen things even further

BugFixes
--Fixed a decoupling issues with multipart joints
--Fixed multipart joint lock-to-worldspace issues
--Fixed some issues on loading very large, heavy parts

v3.0.1
BugFixes
--Fix some issues involving multipart joints
--More null checking for situations that shouldn't happen, but might

v3.0
Features
--MultiPart joints: weak, but stiff connections along a stack that will add even more stiffness without making the connection cheatingly strong
--Proper, guaranteed application of stiffened properties, regardless of stock joint parameters
--Updated default config values for greater sanity
--Refactoring of code for sanity

BugFixes
--Longstanding issue with radially-attached parts that were larger than their parent are now fixed
--Many NREs from bad events or bad states now avoided

v2.4.5
Features
--KSP 0.90 compatibility
--Include some extra checks to prevent errors from occurring

v2.4.4
Features
--KSP 0.25 compatibility
--Update CompatibilityChecker
--Shutdown functionality if CompatibilityChecker returns warnings

v2.4.3
--0.24.2 compatibility

v2.4.2
--0.24.1 compatibility

v2.4.1
Bugfixes:
--Included JsonFx.dll, which is required by ModStats
--Relabeled ModStatistics.dll to allow simple overwriting for ModStats updates
--Fixed buttons being added to toolbar after each flight

v2.4
Features
--Ensured compatibility with KSP v0.24

v2.3
Features
--Updated attach node reinforcement to use properties closer to stock joint performance, but stiffer.
--Decoupler and clamp stiffening increased in strength for use in Real Solar System
--Removed unused config values

v2.2
Features
--Updated to function with KSP ARM Patch (KSP 0.23.5)
--Removed inertia tensor fix, as it is now stock
--Main stiffening / strengthening is now disabled by default due to stock joint improvements
--Decoupler stiffening is now disabled by default due to stock joint improvements

Bugfixes:
--Vessels can no longer become permanently indestructible

v2.1
Features
--Reduced extent of decoupler stiffening joint creation; this should reduce physics overhead
--Code refactoring for additional performance gains
--Removed physics easing effect on inertia tensors; was unnecessary and added more overhead
--Workaround for the stock "Launch Clamps shift on the pad and overstress your ship" bug that is particularly noticeable with RSS
--Clamp connections are stiffer; now allowed by above workaround

Bugfixes
--KAS struts no longer break on load


v2.0
Features
--Full release of proper inertia tensors! Massive parts will feel more massive.
--Full release of greater physics easing! Landed and pre-launch crafts will have gravitational, centrifugal and coriolis forces slowly added to them, reducing the initial physics jerk tremendously
--Launch clamps are now much stiffer when connected to more-massive-than-stock mod parts
--Tightened up default joint settings more
--Decoupler Stiffening Extension will now extend one part further if it's final part is much less massive than its parent / child part
--Added Majiir's CompatibilityChecker; this will simply warn the user if they are not using a compatible version of KSP

Bugfixes
--Fixed an issue where joints were not strengthened during the physics easing


v2.0x2
Features
--Added more elaborate physics easing; joints are given wide range to flex that are then tightened up and gravitational + rotating ref frame forces are cancelled out to allow internal joint stresses to be resolved prior to loading the rocket
--Tightened up the default joint settings a lot

Bugfixes
--Fixed an issue where non-zero angular limits would force parts to be oriented in the wrong direction.


v2.0x1
Features
--Fixed part inertia tensors; heavy, large objects should now "feel" more massive and their connections should behave better. Thanks to a.g. for finding this one.
--Launch Clamps are slightly stiffer
--Removed improper stiffening for stretchy tanks that was added in v1.7; given the ability to stretch stretchy tanks, this shouldn't be necessary

Bugfixes
--Fixed an issue where non-zero angular limits would force parts to be oriented in the wrong direction.

v1.7
Features
--Added ability to calculate connection area based on volume instead of connection area; intended to handle very, very large vehicles that the standard settings cannot
--Some more tweaks to the default joint parameters to stiffen things
--Extra stiffening for stretchy tanks; a better solution is in the works, but this should help for RSS

Bugfixes
--Fixed an issue where decoupling could lead to extra stiffening joints being deleted from non-staged decouplers during decoupling / partial crashing

v1.6
Features
--BreakStrengthPerUnitArea will not override large breakForces; this is intended for building things using I-beams and structural elements

Bugfixes
--Fixed decoupler-dockingport combination parts from causing strange disassembly when undocking

v1.5
Features
--Updated to KSP 0.23
--Joint breaking strength can now be set to be dependent on connection area, so large part connections can have realistically large strength; on by default
--Vessels are further strengthened for the first 30 physics frames after coming off rails or loading; this helps prevent jitters during intialization from breaking things apart

Bugfixes:
--Fixed launch clamps not being clamped to the ground after staging
--Fixed an issue where the Kraken would throw launchpads at craft in orbit

v1.4.2
Bugfixes
--Fixed an issue that would allow more wobble to exist than it should have
--General tweaks to reduce wobbling further

v1.4.1
Bugfixes
--Fixed an issue where maximum joint forces were calculated incorrectly
--Fixed an issue where docking could cause exceptions to be thrown and cause lag

v1.4
Features
--Changed calculation of surface-attached connection area to be more accurate

Bugfixes
--Fixed an issue where lots of wobble would occur between stack-attached parts of very different sizes

v1.3
Features
--Better solution for failure to apply decoupler ejection forces
--Will not apply stiffening to parts below a given mass; mass can be changed in config
--Properly updates on docking

Bugfixes
--Fixed a serious issue where launch clamps would lock the ship to the surface

v1.2
Features
--Workaround for stock KSP bug where struts would prevent decoupler ejection forces from being applied

Tweaks
--Reduced default maxForceFactors to be more reasonable levels

BugFixes
--Fixed serious issue where struts would not properly disconnect
--Fixed serious issue where decouplers would not function properly


v1.1
Features
--Stiffness of joint no longer erroneously dependent on breakForce / breakTorque
--Decoupler stiffening function made more comprehensive

BugFixes
--Fixed an issue where radial decouplers would not be affected by by further decoupler stiffening
--Fixed an issue where decoupler further stiffening would cause Nulls to be thrown when attached to physics-disabled parts
--Fixed an issue where procedural fairings would be locked to the rocket
--Fixed an issue where Infernal Robotics parts would not function
--Temporary stopgap measure: stiffening not applied to pWings to prevent ultra-flexy wings

Known Issues
--Decouplers create no detach force with extra decoupler stiffening enabled
Same issues as strut attachment bug

v1.0
Release

FAQ

I'm using the win64 KSP build and KJR doesn't seem to be functioning. What gives?

Due to the instability of the win64 KSP build, KJR will disable itself on that build. This is to ensure that any issues caused by the win64 build can be definitively traced back to it. KJR is not supported on the win64 build, and you are encouraged to use either the win32 build or to switch over to linux, as both of those builds are much more stable.

Edited by ferram4
41 people like this

Share this post


Link to post
Share on other sites

Whats the catch?

Is interstage support still necessary or can you literally just go tank->engine->decoupler->tank ?

I don't want my rockets to be made too strong, if you know what I mean.

Share this post


Link to post
Share on other sites

You can literally just go tank->engine->decoupler->tank. There is no reason that you should have to add extra struts between connected engines when the interstage fairing and structure is right there, purely intended to support the stage above it.

You can go into the config.xml and universally weaken all connections to add more difficulty if you like; details in the readme.

Share this post


Link to post
Share on other sites

[*]Option to stiffen launch clamp connections

  • Less vehicle movement on vessel initialization
  • Warning: may cause spontaneous rocket disintegration if rocket is too large and over-constrained (far too many launch clamps; their connections will fight each other and give rise to phantom forces)

I imagine rockets will need far fewer launch clamps than we're used to, right? Like, only two or three at the base of a giganto-normous heavy lifter?

Share this post


Link to post
Share on other sites

nice. how bout radial mounted SRBs? are the radial decouplers strong enough with this? or do you still need struts? because when you strut radial mounted things, the decoupler force seems to become zero... and you need to mount sepratons... and there goes the partcount...

Share this post


Link to post
Share on other sites

Ferram, have I mentioned that you are like unto a god? Between you and NathanKell, KSP will be such a wonder to behold. This is added to my "Can't live without" mod list. :)

Share this post


Link to post
Share on other sites

Holy smokes! Yay!

...and I have to wait til tomorrow to try it. Incredibly good work as always, ferram!

Share this post


Link to post
Share on other sites

Holy Moly, you did it!

Is it compatible to any form of joints (respectively interstage adapters from the procedural fairings)?

Share this post


Link to post
Share on other sites

@White Owl: I'd still go with the same number, it's just that The Lurch at physics initialization is greatly reduced; depending on the rocket you might be better off with fewer clamps, since every launch clamp is exerting a force on the rocket and for very large rockets with lots of clamps the constraints can end up at odds with one another.

@Umlüx: Most SRBs seem fine without struts, with the exception of the big Thor SRBs from KW Rocketry, which still don't like it, but they're massive. And before you ask, you should probably use struts with similarly large liquid boosters as well.

@Spanier: Procedural fairings already has stiffening in them of the same method used for the decoupler and launch clamp stiffening. KJR will stiffen a connection between any two parts that have been connected in any way though.

Edited by ferram4
Some clarifications

Share this post


Link to post
Share on other sites
You can literally just go tank->engine->decoupler->tank. There is no reason that you should have to add extra struts between connected engines when the interstage fairing and structure is right there, purely intended to support the stage above it.

You can go into the config.xml and universally weaken all connections to add more difficulty if you like; details in the readme.

Oh I was referring to a case with no interstage fairing, if the fairings are still needed for proper support then I'm all in :D

Even so, the fact that the option exists in a config -> great modding!

Share this post


Link to post
Share on other sites

Eh... it doesn't check for the interstage fairing. It just assumes it's there, since about 99% of the parts that exist already take care of it. Depending on how the math for works out for the engine though, it might make the connection much weaker. I'll make sure that happens for future releases though.

2 people like this

Share this post


Link to post
Share on other sites

ferram you boss you are amazing have all my rep

Share this post


Link to post
Share on other sites

Oh man this is awesome, good job.

Share this post


Link to post
Share on other sites

How does this mod function regarding multi-docking port connections?

Share this post


Link to post
Share on other sites

It should stiffen them equally. To be honest, I haven't tested it myself (I've been more focused on massive launch vehicles, not massive interplanetary vessels), but I don't see why it wouldn't work properly.

Share this post


Link to post
Share on other sites

Very nice, cannot wait to test it with my flying noodles aka long rockets... Using FAR means having long, thin launchers, and that was really a pain to stiffen up.

Share this post


Link to post
Share on other sites

ferram4... you have done it again. Thank you very much for this, we all thought it was impossible!

Share this post


Link to post
Share on other sites
It should stiffen them equally. To be honest, I haven't tested it myself (I've been more focused on massive launch vehicles, not massive interplanetary vessels), but I don't see why it wouldn't work properly.

Alright, I'm in the process of building a very large couple hundred ton interplanetary ship that uses several sets of MDP connections, I'll let you know how it works. Oh, by the way... THANK YOU!!! :D I've been looking for something like this for a while.

Update: So, preliminary testing, where I had RCS enabled on a 10 ton part assembly, and was using it to swing an 80 ton part assembly about madly resulted in no visible deformation of the multi-docking port node. Sorry I can't get more technical than that, Bob accidentally jettisoned the material stress analyzer when he decided to "go outside for a stroll."

Edited by Yaivenov

Share this post


Link to post
Share on other sites

Is this plugin creating joints around the rocket by the assessed radius when a rocket "OnFlightStart" / is docked to another vessel? haven't checked the source codes... just my guess. :)

Share this post


Link to post
Share on other sites

First: Wonderful idea and concept. One of the most annoying things in KSP tackled by the guy who already brought us the indispensable FAR mod.

Will give it a whirl (especially curious about how it affects some of my more delicate planes/SSTOs) and then return with feedback :) .

Share this post


Link to post
Share on other sites

Can't wait to test this little beauty.

Ferram and Nathan rule! Keep it coming guys, we appreciate your hard work.

Share this post


Link to post
Share on other sites

Very good work @ferream4!

I've only found one joint that does not stiffen so far:

Fjm7GXy.png

The joint between the KW Rocketry 3.75m decoupler and the bottom of the Wildcat-XR engine. Otherwise, it works beautifully!

Share this post


Link to post
Share on other sites

I tested this with some short, medium, and long arms made out of girders. They held together impressively well.

zhZ74Ut.png

I was originally going to have orange tanks on the ends, but the launch supports kept breaking off, and I couldn't get a decent screenshot.

Share this post


Link to post
Share on other sites

I was looking forward to using this, but apparently, it also affects joints it shouldn't, namely, joints within Damned/Infernal Robotics parts. With the plugin installed, they lose most of their range of movement, which makes them useless, once I remove the plugin, the normal range of movement is restored.

Could they be considered a special case somehow?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now