Coder Social home page Coder Social logo

ksp-ro / kerbal-joint-reinforcement-continued Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ferram4/kerbal-joint-reinforcement

35.0 12.0 14.0 1.9 MB

Physics stabilizer plugin for Kerbal Space Program

License: GNU General Public License v3.0

C# 100.00%

kerbal-joint-reinforcement-continued's Introduction

Kerbal Joint Reinforcement, v3.7.5

Physics stabilizer plugin for Kerbal Space Program

Source available at: https://github.com/KSP-RO/Kerbal-Joint-Reinforcement-Continued Based on the original work of ferram4: https://github.com/ferram4/Kerbal-Joint-Reinforcement


****** INSTALLING KERBAL JOINT REINFORCEMENT ******


Merge the GameData folder with the existing one in your KSP directory. KSP will then load it as an add-on. The source folder simply contains the source code (in C#) for the plugin. If you didn't already know what it was, you don't need to worry about it; don't copy it over.


****** EXCITING FEATURES! ******


-- 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

-- 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 overconstrained (far too many lanuch clamps; their connections will fight each other and give rise to phantom forces)

-- 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

-- Option to make connection strengths weaker to counteract increases in stiffness

-- Joint Stiffness parameters can be tweaked in included config.xml file

- config value documentation:

General Values

Type	Name					Default Value		Action

bool	reinforceAttachNodes			1			--Toggles stiffening of all vessel joints
bool	multiPartAttachNodeReinforcement	1			--Toggles additional stiffening by connecting parts in a stack one part further, but at a weaker strength
bool	reinforceDecouplersFurther		1			--Toggles stiffening of interstage connections
bool	reinforceLaunchClampsFurther		1			--Toggles stiffening of launch clamp connections
bool	clampJointHasInfiniteStrength		0			--Toggles clamp joints that are completely rigid
bool	useVolumeNotArea			1			--Switches to calculating connection area based on volume, not area; not technically correct, but allows a better approximation of very large rockets
bool	debug					0			--Toggles debug output to log; please activate and provide log if making a bug report
float	massForAdjustment			0.01			--Parts below this mass will not be stiffened
float	stiffeningExtensionMassRatioThreshold	5			--Sets mass ratio needed between parts to extend Decoupler Stiffening one part further than it normally would have gone; essentially, if the code would have stopped at part A, but part B that it is connected to is >5 times as massive as part A, include part B
float	decouplerAndClampJointStrength		-1			--Sets breaking strength for joints involved in decoupler and clamp additional strengthening; -1 makes them unbreakable

Angular "Drive" Values (universally scales angular strength of connections)

Type	Name				Default Value		Action

float	angularDriveSpring		5e12			--Factor used to scale stiffness of angular connections
float	angularDriveDamper		25			--Factor used to scale damping of motion in angular connections
float	angularMaxForceFactor		-1			--Factor used to scale maximum force that can be applied before connection "gives out"; does not control joint strength; -1 makes this value infinite

Joint Strength Values

Type	Name				Default Value		Action

float	breakForceMultiplier		1			--Factor scales the failure strength (for forces) of joint connections; 1 gives stock strength
float	breakTorqueMultiplier		1			--Factor scales the failure strength (for torque) of joint connections; 1 gives stock strength
float	breakStrengthPerArea		1500			--Overrides above values if not equal to 1; joint strength is based on the area of the part and failure strength is equal to this value times connection area
float	breakTorquePerMOI		6000			--Same as above value, but for torques rather than forces and is based on the moment of inertia, not area

Part and Module Exemptions

Type	Name				Default Value		Action

string	exemptModuleType0		WingManipulator		--Part stiffening not applied to parts with this type of PartModule; exemption to prevent problems with pWings
string	exemptModuleType1		SingleGroupMan		--Part stiffening not applied to parts with this type of PartModule; exemption to prevent problems with procedural adapter included with pWings
string	exemptModuleType2		KerbalEVA		--Part stiffening not applied to parts with this type of PartModule; exemption to prevent problems with Kerbals in command seats
string	exemptModuleType3		MuMechToggle		--Part stiffening not applied to parts with this type of PartModule; exemption to prevent problems with Kerbals in command seats
string	exemptModuleType4		WingProcedural		--Part stiffening not applied to parts with this type of PartModule; exemption to prevent problems with Kerbals in command seats

Further part and module exemptions can be added using the same formating and changing the number

Decoupler Stiffening Extension Types

Type	Name					Default Value		Action

string	decouplerStiffeningExtensionType0	ModuleEngines		--Decoupler stiffening will look for parts beyond this part type to add to stiffening
string	decouplerStiffeningExtensionType1	ModuleEnginesFX		--Decoupler stiffening will look for parts beyond this part type to add to stiffening
string	decouplerStiffeningExtensionType2	ModuleHybridEngine	--Decoupler stiffening will look for parts beyond this part type to add to stiffening
string	decouplerStiffeningExtensionType3	ModuleHybridEngines	--Decoupler stiffening will look for parts beyond this part type to add to stiffening
string	decouplerStiffeningExtensionType4	ModuleEngineConfigs	--Decoupler stiffening will look for parts beyond this part type to add to stiffening

****** CHANGELOG ******


v3.7.5

--Fix another case of inter-vessel joints getting created on decoupling
--Remove exemptPartTypes logic since derived part types aren't used in practice
--Some code and config cleanup

v3.7.4

--Fix inter-vessel joints getting created on decoupling

v3.7.3

--Use physicsMass instead of constantly calculating part plus resource mass
--Remove excess DLLs from release zip

v3.7.2

--Clean up joints when vessels go on-rails, decreasing chance of phantom forces
--Do not override spring and damper settings on joints, potentially improving stability

v3.7.1

--Fix extra joints getting created too early in the lifecycle
--Add toggle to debug GUI for temporarily disabling all joints

v3.7.0

--Fix bug that caused the stock EVA construction feature to actually not be supported
--Rework the interstage connection stiffening feature
--Fix a couple of GameEvents leaks
--Add option to debug UI for toggling what kind of joints to show
--Unify tags in log messages
--Various code cleanup and refactoring

v3.6.1

--Enable the DockingPortLockedEvents patch in KSPCommunityFixes to properly support the rotation feature on stock docking ports

v3.6.0

--Add support for the stock EVA construction feature
--Improve robotics support. Note however that since the new KSP1.12 docking port doesn't fire onRoboticPartLockChanged event, it will stay locked forever.
--Enabling the Debug setting now lists all extra joints KJR created and draws them onscreen
--Fix typo that caused duplicate joints to be created to root part
--Make CheckMultiJointBetweenParts() check existence of a joint in both directions

v3.5.2

--Disable Rigid clamp option by default
--Further improve Rigid clamp behavior

v3.5.1

Bugfixes
--Improve Rigid clamp behavior

v3.5.0

Features
--Integrated settings into stock UI

v3.4.1

Features
--Added basic support for robotic parts

v3.4.0

Features
--Recompile for use in KSP 1.3.x through 1.7.x
--Launch Clamps can now be set to completely rigid (siimav)
--Removed compatibility checker

v3.3.4

Features
--Bouncing ships no longer think they are in flight. If there is a clamp attach, it is reset to PREFLIGHT status (Starwaster)
--Recompile against KSP 1.4.5

v3.3.3

Features
--Recompile against KSP 1.3, ensure CompatChecker compatibility with 1.3  

v3.3.2

Bugfixes
--Fix multijoints breaking IR joints and any other exempted parts from moving  

v3.3.1

Bugfixes
--Fix a critical bug involving unphysical forces applied to vessels on load / unload of other vessels and SOI switches  

v3.3.0

Features
--Recompile to fix for KSP 1.2  
--Update method of handling multi-part-joints to ensure compatibility with Konstruction mod  
--Removal of old symmetry-based multi-part stabilization due to ineffectiveness in all situations to reduce overhead  
--Implementation of new vessel-part-tree leaf-based stabilization for greater stability on space stations and other convoluted shapes  

v3.2.0

Features
--Recompile to ensure KSP 1.1.3 compatibility  
--Change multi-part-joint system to stabilize space stations and similar vehicles with very large masses connected by very flexy parts  

v3.1.7

Features
--Recompile to ensure KSP 1.1.2 compatibility, especially within CompatibilityChecker utility  

v3.1.6

Features
--Update to ensure KSP 1.1.1 compatibility  
--Minor optimization in joint setups  
--Remove B9 pWings from stiffening exemption, as it is unnecessary  

v3.1.5

Features
--Updated to be compatible with KSP 1.1  
--Very minor efficiency improvements in physics easing and stiffening of joints  
--Fully exempt EVAs from all KJR effects  
--Update config parameters to function with stock fixing of never-breakable joints bug  

v3.1.4

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

v3.1.3

Features
--Updated compatibility 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

Features
--KSP 0.24.2 compatibility

v2.4.2

Features
--KSP 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

v2.4

Features
--KSP 0.24 compatibility

Bugfixes
--Fixed some interference with infernal robotics

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
--Joints during physics easing strengthened

v2.0x2

Features
--Elaborated physics easing: joints' flexion range is initially great and decreases, and gravitational + rotating ref frame forces are cancelled out to resolve internal joint stresses ere loading the rocket
--Greatly tightened default joint settings

Bugfixes
--Non-zero angular limits no longer wrongly reorient parts.

v2.0x1

Features
--Fixed part inertia tensors: heavy, large objects should now "feel" more massive, and their connections should better behave. Thanks to a.g. for finding this one.
--Slightly stiffened Launch Clamps
--Removed v1.7's improper stiffening for stretchy tanks, which the ability to stretch stretchy tanks makes unnecessary

Bugfixes
--Non-zero angular limits no longer wrongly reorient parts.

v1.7

Features
--Connection area can be from volume instead of connection area calculated; for very, very large vehicles that the standard settings cannot handle
--Default joint parameters stiffened
--Stretchy tanks stiffened--a better solution is being developed while this one helps RSS

Bugfixes
--Decoupling no longer further stiffens joints being deleted from non-staged decouplers during decoupling / partial crashing

v1.6

Features
--BreakStrengthPerUnitArea will not override large breakForces, easing I-beams and structural elements' use

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

v1.5

Features
--Updated to KSP 0.23
--Joint breaking strength can be set to increase with connection area so that 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, reducing initialization jitters.

Bugfixes:
--Launch clamps after staging remain clamped to the ground.
--Kraken no longer throws launchpads at orbiting craft

v1.4.2

Bugfixes
--Wobble reduced
--General tweaks to reduce wobbling further

v1.4.1

Bugfixes
--Maximum joint forces correctly calculated
--Docking no longer causes exceptions to be thrown and cause lag

v1.4

Features
--Increased calculation of surface-attached connection area's accuracy

Bugfixes
--Wobble between stack-attached parts of very different sizes greatly reduced

v1.3

Features
--Better solution for failure to apply decoupler ejection forces
--Will not stiffen parts below a given mass, which can be changed in config
--Properly updates on docking

Bugfixes
--Launch clamps no longer to the surface lock ships

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
--Struts properly disconnect
--Decouplers properly function

v1.1

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

BugFixes
--Further decoupler stiffening affects radial decouplers
--Decoupler further stiffening no longer causes Nulls to be thrown when attached to physics-disabled parts
--Procedural fairings no longer locked to rockets
--Infernal Robotics parts function
--Temporary stopgap measure: stiffening not applied to pWings to prevent ultra-flexy wings

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

v1.0

Release

kerbal-joint-reinforcement-continued's People

Contributors

ferram4 avatar meirumeiru avatar nathankell avatar pap1723 avatar raidernick avatar siimav avatar skymarshal avatar starwaster avatar tyrope avatar vosechu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kerbal-joint-reinforcement-continued's Issues

Potential memory leaks identified by KSPCommunityFixes

Latest version of KSPCommunityFixes reports on some potential memory leaks on scene changes. A quick look in the log after scene change to Flight Scene shows 2 potential locations in Kerbal-Joint-Reinforcement-Continued where a leak might exist:

[LOG 21:14:59.010] [KSPCF:MemoryLeaks] Removed a onVesselCreate GameEvents callback owned by a destroyed KerbalJointReinforcement:KJRDecouplerReinforcementModule instance
[LOG 21:14:59.013] [KSPCF:MemoryLeaks] Removed a onVesselWasModified GameEvents callback owned by a destroyed KerbalJointReinforcement:KJRLaunchClampReinforcementModule instance

Main Menu Soft Lock bug

As of 8/7/21 KJRC is soft locking the menu? I've tried it as a stand alone on stock and with other mods, but after testing seems to the the source of the issue
To recreate; install v3.5.2 Kerbal-Joint-Reinforcement-Continued, then launch game.

Game Version 1.12.2.3167

Using EVA Construction causes crafts to explode

When using the EVA construction feature that was added in 1.11 to remove a part from a craft with this mod enabled, the craft will usually explode. I believe this is because the part is not properly detached.

Is there something like this for motors?

Is there something like this for motors?
I have the problem that I cant get things to work like they should cause the motorjoints jiggle like crazy.
especially in the wing areas where high forces apply

Main Menu buttons locked.

I saw that there was one closed issue about this but no fix posted, plus its back with the latest release of KJRC. Game loads fine, no errors detected, just cant click any main menu UI, altF12 menu works fine but clearing input locks doesn't fix it. Log attached. I'll be happy to write up my modlist if needed but its long and since the problem only goes away when KJRC is removed its a good place to start.
KSP.log

EVA construction still doesn't work properly

To quote a post on the forum page (and I've experienced this issue myself):

Interestingly this mod still breaks EVA construction completely for me. While using the default settings, as per the difficulty menu, as soon as I place a part on a ship in orbit my Kerbal essentially gets invisibly "connected" to the ship and the ship gets dragged around as the Kerbal attempts to move around while in EVA. If the kerbal is able to board the ship (such as being on a ladder while in construction mode) then there will be a phantom force that will push on the ship forever.

If I disable all the settings in the difficulty menu, then all the problems go away. So if anyone else runs across this, just disable the settings in the difficulty menu in the KJR tab before doing EVA construction.

The exact culprit seems to be the "Additional stiffening" option, at least in my testing

REQUEST, Make compatible with Infernal robotics next

I want to use infernal robotics in rp1 but all of them are out of date/glitched except for Infernal Robotics Next. The problem though is that it uses Kerbal Joint Reinforcement - Next not Kerbal Joint Reinforcement Continued and according to CKAN they are incompatible. I've tried running with out Kerbal Joint Reinforcement Continued but then it refuses to keep Realism.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.