Jump to content

[DEV HALTED][0.90] ActiveStruts - Create & Remove Struts in Flight [v1.1.1 2014-12-31]


marce

Recommended Posts

Dev halted like stated here

Updated for 0.90!

Ever wanted to create struts outside of the VAB?

Had the need to reduce the wobble of a big ship assembled in orbit from docked parts?

Ship was so big that a lot of struts were required to fight the wobble and no Kerbal was available or it just took too much time to do it with KAS?

Worry no more, Caelum Ire Technologies has finally released ActiveStruts!

Here’s what you can do with this mod:

  • Create struts in editor
  • Create struts in flight
  • 3 different strut strengths (weak, normal, maximum) based on the parts you use
  • Destroy & recreate them any time
  • Choose different targets, you don’t have to restore always the same strut
  • Create “FreeAttached†connections which don’t need a counterpart but cling to almost any part [Disabled by default in the editor because the removal of the “TargetCube†is unstable and has to be done by the user him/herself. However, if you don’t care about the pink cubes in the editor, they will be automatically cleaned after launch. You can enable the feature in the config.]
  • Create “StraightOut†connections which work like QuantumStruts
  • Create flexible joints (like a rubberband)
  • Tie your Kerbals to vessels so that they don’t float away (or can pull your rover)
  • dock vessels via struts [optional feature, see warning below]

I started creating parts about a week ago to have something to bundle with the plugin, so the quality of my parts isn’t that great – sorry, I’m trying but still have a lot to learn and there is a reason why I originally wanted to do only coding (no talent :( for models). ZodiusInfuser created a few ones as well and although they are unfinished they look already quite nice and you can get them here.

There are a lot of config options for you to play with. I started polls and gathered feedback from testers, but given two choices we sometimes came out with equally distributed preferences. So I decided to ship a default config I feel works well, but give the user as much freedom as possible to tweak the mod to his/her personal needs. If the following section is overwhelming for you it’s safe to just use the default values!

The two most important options are:

  • GlobalJointEnforcement: set to true all struts (of this mod!) are as strong as possible, no matter how you create them
  • AutoStrutterConnectToOwnGroup: set to true the group logic of the Autostrutter is inversed (see below for details)

[TABLE=class: grid, width: 800, align: center]

[TR]

[TD]

Property[/TD]

[TD]Function[/TD]

[TD]Default value[/TD]

[/TR]

[TR]

[TD]MaxDistance[/TD]

[TD]Max length of a strut[/TD]

[TD]15[/TD]

[/TR]

[TR]

[TD]MaxAngle[/TD]

[TD]Max angle between strut origin (plane) and target[/TD]

[TD]95[/TD]

[/TR]

[TR]

[TD]WeakJointStrength[/TD]

[TD]Break force of the joint when “free attached†to any part of the vessel[/TD]

[TD]1[/TD]

[/TR]

[TR]

[TD]NormalJointStrength[/TD]

[TD]Break force of the joint when attached to a Grapple[/TD]

[TD]5[/TD]

[/TR]

[TR]

[TD]MaximalJointStrength[/TD]

[TD]Break force of the joint when attached to a Grappler (inactive by default)[/TD]

[TD]50[/TD]

[/TR]

[TR]

[TD]ConnectorDimension[/TD]

[TD]Thickness of the “guidance†beam[/TD]

[TD]0.5[/TD]

[/TR]

[TR]

[TD]ColorTransparency[/TD]

[TD]Transparency of the “guidance†beam[/TD]

[TD]0.25[/TD]

[/TR]

[TR]

[TD]FreeAttachDistanceTolerance[/TD]

[TD]Currently not in use, just leave it alone[/TD]

[TD]0.1[/TD]

[/TR]

[TR]

[TD]FreeAttachStrutExtension[/TD]

[TD]Currently not in use, just leave it alone[/TD]

[TD]-0.02[/TD]

[/TR]

[TR]

[TD]StartDelay[/TD]

[TD]Frames to wait after a scene load before performing any relevant operation (like automatic reattachment)[/TD]

[TD]60[/TD]

[/TR]

[TR]

[TD]StrutRealignInterval[/TD]

[TD]Every X frame the visual strut representation is realigned to fit with a possibly new position of the target[/TD]

[TD]2[/TD]

[/TR]

[TR]

[TD]SoundAttachFile[/TD]

[TD]The sound you hear when you attach a strut[/TD]

[TD]CIT/ActiveStruts/Sounds/AS_Attach[/TD]

[/TR]

[TR]

[TD]SoundDetachFile[/TD]

[TD]The sound you hear when you unlink[/TD]

[TD]CIT/ActiveStruts/Sounds/AS_Detach[/TD]

[/TR]

[TR]

[TD]SoundBreakFile[/TD]

[TD]The sound you hear when a joint breaks[/TD]

[TD]CIT/ActiveStruts/Sounds/AS_Break[/TD]

[/TR]

[TR]

[TD]GlobalJointEnforcement[/TD]

[TD]If set to true AttachJoints will be used for everything instead for Grappler-Grappler links only[/TD]

[TD]False[/TD]

[/TR]

[TR]

[TD]GlobalJointWeakness[/TD]

[TD]If set to true ConfigurableJoints will be used for everything including Grappler-Grappler links[/TD]

[TD]False[/TD]

[/TR]

[TR]

[TD]StrutRealignDistanceTolerance[/TD]

[TD]The position offset of the target position since the last check (see StrutRealignInterval). If lower than this value strut will not be realigned.[/TD]

[TD]0.02[/TD]

[/TR]

[TR]

[TD]EnableDocking[/TD]

[TD]If set to true Grapplers which are linked to another vessel will get the option to perform a docking operation. It kind of works but is considered a cheaty emergency measure. Undocking is possible too.

Attention: there are no safeguards, if you dock multiple vehicles or do something else except the simplest prepare for pure chaos.[/TD]

[TD]False[/TD]

[/TR]

[TR]

[TD]ShowHelpTexts[/TD]

[TD]If set to false the how-to-use-hints when using "Link" or "FreeAttach" are not shown.[/TD]

[TD]True[/TD]

[/TR]

[TR]

[TD]ShowStraightOutHint[/TD]

[TD]Shows a beam where the strut would hit when using "Straight Out" action[/TD]

[TD]True[/TD]

[/TR]

[TR]

[TD]StraightOutHintDuration[/TD]

[TD]The duration (in seconds) the beam is shown if active[/TD]

[TD]1[/TD]

[/TR]

[TR]

[TD]TargetHighlightDuration[/TD]

[TD]The duration the target of a Grappler is highlighted (in seconds)[/TD]

[TD]3[/TD]

[/TR]

[TR]

[TD]KerbalTetherSpringForce[/TD]

[TD]Spring force of the Kerbal tether[/TD]

[TD]5000[/TD]

[/TR]

[TR]

[TD]KerbalTetherDamper[/TD]

[TD]Spring dampening force for the Kerbal tether[/TD]

[TD]500[/TD]

[/TR]

[TR]

[TD]AllowFreeAttachInEditor[/TD]

[TD]Set to true you can use FreeAttach in the editor, it’s a bit unstable and cumbersome so be careful[/TD]

[TD]False[/TD]

[/TR]

[TR]

[TD]MaxAngleAutostrutter[/TD]

[TD]The maxmimum angle the autostrutter can use (to avoid having struts through the part)[/TD]

[TD]120[/TD]

[/TR]

[TR]

[TD]AutoStrutterConnectToOwnGroup[/TD]

[TD]If set to false Autostrutters only connect to a different group. Set to true they only connect to their own group[/TD]

[TD]False[/TD]

[/TR]

[/TABLE]

Known Issues:

  • My Targeter part looks into the wrong direction in the part list – wasn’t able to fix this without breaking something else, please live with it for the moment
  • FreeAttach links sometimes connect to the wrong part (like the strut-gun itself, it looks like nothing happened), that’s due to some difficulties translating the mouse position to something I can work with, please just unlink and try again
  • TargetCube visible in the start node of the tech tree, still no idea how to hide it there without disabling ships which have this part on them, open for suggestions

Balancing: I’m not very experienced wrt part costs, science nodes, entry costs etc. Feedback is very welcome!

Autostrutter Rules:

  • search for the nearest (distance) target in range (so yes, you can get different struts after reloads if distances change)
  • only connect to targets on the same vessel (to avoid catching others on a fly-by)
  • only connect to targets with a different parent part (because jointing a part with itself doesn't have any benefit but wastes resources)
  • only connect to targets in a different group (there is a simple group system with +/- actions, the group can be set in the editor and changed any time for each one individually). This is required to prevent those with a different parent to connect to each – you can invert this behavior via the config file
  • only connect to enabled targets (each single one can be disabled and enable any time, useful if you want to temporarily unlock (I tried to add status lights: green = linked, yellow = standby & ready to connect, red = disabled))
  • unlink if target vessel changes (so if you undock, the struts are gone automagically and are back when you dock again)

Kerbal Tether: The physics of Kerbals is a bit weird, so sometimes strange things can happen, especially while the Kerbal is walking on the ground (it’s much better in space). Sadly there isn’t much I can do about it, so please be aware of that and be careful.

Docking: The feature to dock two vessels connected with ActiveStruts is built in. However, I consider it to be a “cheaty emergency featureâ€Â. There are no safeguards, you should be fine if you dock two vessels and undock again, but don’t try to dock multiple vessels! Due to a bit unsafe nature of this feature it is disabled by default, you can switch a flag in the config to turn it on (also temporarily) if you need it.

General notice regarding joints: Struts are basically joints in the background. Unity joints are a bit weird and that’s even truer in KSP. Normal behavior (like joints on the same vessel) is usually fine. But if you link together two different vessel (which you can) and then apply strong forces (like burning full power) strange things can happen, I even got one report where rotating two vessels very fast around each other summoned the Kraken. I also suggest unlinking before saving/leaving if you linked two different vessel (this is NOT require don the same vessel of course). Think about what you don’t do with KAS because you know it can lead to explosions and worse, then you are on the safe side (since this mod and KAS suffer from the same problem we can’t do anything about).

What is the difference between enforced and non-enforced connections?

Well, I had quite a hard time to decide which type of Joint to use. There are as far as I know two types:

  1. ConfigurableJoints: Work as expected, break when too much force is applied. But they wobble and I wasn’t able to prevent that.
  2. AttachJoints: Super stable. Those are used by the stock strut module as well. Problem: those ignore whatever breakforce I set resulting in having the whole universe break before these joints do. A lot less wobble, but one tester reported that he got a kraken visit when linking two vessels and having them rotate fast. And it renders the different types (strengths) of links useless.

Default config:

  • Weak Link (Grappler -> “free attached†to any part): uses ConfigJoint, breaks and wobbles. Can be enforced temporarily to use an AttachJoint.
  • Normal Link (Grappler -> Grapple): uses stronger ConfigJoint, breaks and wobbles. Can be enforced temporarily to use an AttachJoint.
  • Maximal Link (Grappler -> Grappler): uses AttachJoint, less wobble, won’t hardly every break. I’m using the super strong joint here to reward that two of the expensive Grapplers are used for this connection. Can be weakened temporarily to use a ConfigJoint.
  • Temporarily means exactly that, it will be gone after a reload (since it’s a bit cheaty I think).
  • Be careful that a change of the enforcement requires a reconnection at the moment => don’t use while parts are moving
  • As seen above this behavior can be changed through the config file to the user’s liking.

What is this “Straight out attach†action?

It kind of reflects the functionality of QuantumStruts “firing†a strut straight out of the Grappler connecting to anything in reach. However, especially by default that’s not exactly true since QS uses Infinity strength connections while I use weak links (see above) which break easily. You can use this function with an ActionGroup.

I talked to K3|Chris who told me that he’s not planning to actively maintain QS and that I could take over if I want to which I don’t, but I suppose what I did here is ok for everyone under this circumstances.

As suggested by DavidHunter here's the difference to KAS in a nutshell:

KAS is all about EVA, while this mod simulates "automated/robotic connectors" (it started as part of the IR model rework after all). So you do not have to be on EVA or even have a Kerbal on board to create struts. And you can create links in the editor as well.

It's not fully realistic but the massive wobble we are fighting isn't as well.

I’d also like to point out that I do not want to compete with KAS! Actually KospY was so nice to borrow me a piece of the KAS code and Majiir did the same with a piece of the Kethane code. Thanks to them!

  • v1.1.1: CKAN enabled
  • v1.1: 0.90 compatibility, several bugfixes, FreeAttach disabled by default for the moment
  • v1.0.7.1: fixed struts being misaligned in orbit around bodies without atmosphere
  • v1.0.7: fixed strut jitter, fixed AutoStrutter Group not shown in editor
  • v1.0.6: abort operation with 'ESC', improved targeting reliability by moving it to phys. frame
  • v1.0.5: hotfix upload now with the correct files
  • v1.0.4: added actions to autostrutter, added KAS grab module to Target & Targeter
  • v1.0.2: fix to prevent a coroutine from running indefinitely under certain circumstances.
  • v1.0.1: fixed Kerbal tether realignment while Kerbal is not the active vessel and improved the attachment of the "Target" part on big parts
  • v1.0: initial release

Download area

Mod Download, License and Source

Installation: Do not change the folder structure! The plugin expects exactly this order and will break if you change it! The CitUtil.dll is required, the mod doesn’t work at all without it.

- GameData

-- CIT

--- ActiveStruts

---- Plugins

----- ActiveStruts.dll

----- ActiveStruts.cfg

I ship a .version file, but no copy of mini-avc, I suggest you install the full KSP-AVC, it’s great, but I won’t force you in any way to do anything.

There is a lot of info in the dev thread, if I missed something here please look there first.

Although I don’t see any obvious bugs and there are no open issues reported by the testers at the moment, the complexity of the mod dictates a few hidden problems. So please report all bugs you encounter - I need your output log or I can’t help you! Winx64 is of course not supported, if you have problems using it please don’t even post here but tell SQUAD to remove the unstable build from the download options, I really can’t help you (it doesn’t even start for me any more, not even without mods).

Have fun!

Edited by marce
Link to comment
Share on other sites

I've found a few tiny problems which don't seem to be in the known issues list:

Is there a way to cancel a link? I find that the UI gets 'stuck' in link mode if I chose 'link' but then don't have a valid anchor to link to. This is particularly noticeable in the VAB.

The part anchors sit correctly on 1.25m parts, but seem to 'sink in' to larger parts:

JsTVNu9.png?1

Tethers clearly work (I can see Jeb being pulled back to the ship) but they only render correctly when the kerbal is focused.

ZvPXUuZ.png?1

ZStNl7n.png?1

But still, marvelous! I look forward to lots of struts in the future.

The output log is here

https://drive.google.com/file/d/0B-8cKOlqLStFS1dzaGo3WDNPNWM/view?usp=sharing

in case it'll have anything useful in it.

EDIT #2 Oh yeah, you press X to cancel! I was staring so hard at the anchor's context menu the first few times that the information message had vanished from the screen by the time I looked up. :) Sorry for the false alarm.

EDIT #3: I suspect this is nothing you have any power over, but it's possible to timewarp when a kerbal is on a tether. While in timewarp the length restrictions are ignored, and then suddenly enforced again when timewarp ends. Poor Jeb, I think I broke his neck! :)

Edited by Noio
Link to comment
Share on other sites

Wow. Spectacular! Nice work.

Thanks! :)

I've found a few tiny problems which don't seem to be in the known issues list:

Is there a way to cancel a link? I find that the UI gets 'stuck' in link mode if I chose 'link' but then don't have a valid anchor to link to. This is particularly noticeable in the VAB.

The part anchors sit correctly on 1.25m parts, but seem to 'sink in' to larger parts:

http://i.imgur.com/JsTVNu9.png?1

Tethers clearly work (I can see Jeb being pulled back to the ship) but they only render correctly when the kerbal is focused.

http://i.imgur.com/ZvPXUuZ.png?1

http://i.imgur.com/ZStNl7n.png?1

But still, marvelous! I look forward to lots of struts in the future.

The output log is here

https://drive.google.com/file/d/0B-8cKOlqLStFS1dzaGo3WDNPNWM/view?usp=sharing

in case it'll have anything useful in it.

EDIT #2 Oh yeah, you press X to cancel! I was staring so hard at the anchor's context menu the first few times that the information message had vanished from the screen by the time I looked up. Sorry for the false alarm.

EDIT #3: I suspect this is nothing you have any power over, but it's possible to timewarp when a kerbal is on a tether. While in timewarp the length restrictions are ignored, and then suddenly enforced again when timewarp ends. Poor Jeb, I think I broke his neck!

Thanks for reporting!

1) You figured out the 'x' key already, that's the correct way. I'm locking a lot of input while "targeting" due to some dark and ugly reasons, I know it's a bit wonky, sorry.

2) I'll look into the target model and see if I can make it thicker or something

3) Uhoh, I somehow thought I limited the Kerbal tether to the currently active Kerbal... Kerbals are handled like vessels in KSP, so all the dangers I wrote in the OP about linking two vessesl apply, but additionally Kerbals have extra strange physics so i wanted to keep the scope and kraken potential low. I'll look into somhow "safely" allowing it while switching vessels in load range, no promises though.

4) Normal Tiewarp practically disables physics and reenables them when you are back to 1x so strange things happen, that's why you saw the joint suddenly kick in heavily. You can use phys. timewarp but that weakens the joints and half breaks the physics so strange things happen again. I'm sorry but I can only advise you not to timewarp while two vessels are linked, and a Kerbal is a vessel. You are absolutley right, I'd love to but can't do anything about it which does not involve docking and docking a Kerbal will make only danny happy since it destroys the universe.

Nice! Glad to see this in releases. Bug free now eh?

~Edit, hit X to cancel a link. It is a wee bit wonky at times.

Thanks Nori!

Well, you tested long enough to know that the last bug in this mod will be killed when KSP hits v1.5 in the year 2873 ;)

Sweet. I've been looking so forward to this mod being officially released.

Hopefully I'll successfully port my save over to 0.25 right as I unlock docking ports and then have a use for these guys

Thanks! Believe me, I am too :D

I still Wonder what happend to quantumstruts dev.

I think I've recently seen a compatibility update and it worked fine the last time I tried. Still wanted to bundle the functionality since the framework was already there and it removed the need of yet another mod (for me at last). Plus the QS maintainer told me it's fine, so I didn't expect to annoy anyone :wink:

Link to comment
Share on other sites

The part anchors sit correctly on 1.25m parts, but seem to 'sink in' to larger parts:

Should be fixed:

g3cGycG.png

Tethers clearly work (I can see Jeb being pulled back to the ship) but they only render correctly when the kerbal is focused.

Should be fixed as well:

Currently updating files on the server, those of you who use KSP-AVC should get an update notification once ready.

Link to comment
Share on other sites

Im not sure about the purpose of the different struts and settings. What do i have to do to greatly reduce the wobble between two docked parts of a spacestation? Is using the expensive endpoints enough or do i have to change some settings to eliminate wobble?

Link to comment
Share on other sites

Im not sure about the purpose of the different struts and settings. What do i have to do to greatly reduce the wobble between two docked parts of a spacestation? Is using the expensive endpoints enough or do i have to change some settings to eliminate wobble?

If you use two of the expensive ones ("Targeter") you'll get about the same strength as with a stock-strut you added in editor (I'm using the same attachjoint method the stock strut uses). This is the best option possible in KSP (at least as far as I know) at the moment.

It will never be complete wobble-free since that's a problem of the underlying engine I can't do anything about. However, it should be at least as stable (a bit more even + it won't break usually) as with KAS or QS struts (which can't be wobble-free for the same reason), so I'd say it's your best bet until something on SQUAD's side changes and allows for even sturdier connections.

Link to comment
Share on other sites

Released v1.0.3 which improves the FreeAttach targeting a bit (should be less prone to attach at the wrong place now).

The blue highlighted part is the one currently recognized (most of the time it's the obvious one, but sometimes not so i decided to add this visual feedback).

Link to comment
Share on other sites

Can I use them to make my artillery cannon (used IR to rotate) less wobbly?

Hard to tell without more info, but I'd say if you could use KAS struts then yes, else no.

Anyway, just try it, this mod is as free as any other :wink:

Struts and SAS are my must-haves. I rely heavily on QS but this looks even better, going to try it out!

Hope you'll like it!

Link to comment
Share on other sites

Wow, I'm just imagining AutoStruts and building space stations after watching the video. I know it sort of replaced that feature of KAS but is it compatible with KAS for the other options? Toolbox and adding them after the fact? I mean I read the part about automatic rather than EVA but if you didn't put the part on to begin with... would carrying one up with a KAS toolbox work?

Edited by Alshain
Link to comment
Share on other sites

Wow, I'm just imagining AutoStruts and building space stations after watching the video. I know it sort of replaced that feature of KAS but is it compatible with KAS for the other options? Toolbox and adding them after the fact? I mean I read the part about automatic rather than EVA but if you didn't put the part on to begin with... would carrying one up with a KAS toolbox work?

Hi!

It's actually very KAS friendly. For example I made sure that the kerbals can carry stuff on their back (KAS attached) and still use their tether.

Wrt KAS containers: basically YES! I just realized that I may have forgotten it on my three parts which will be fixed in the next update. You can add it with a simple MM patch as well of course (if you do, please share and I'll put it right into the next version).

Link to comment
Share on other sites

Since I’m now maintaining 8 mods already it gets a bit tedious to update several links spread over the forum (most updates change at least two mods due to them requiring each other).

Therefore I decided to bundle them on a common download page. You’ll find links to the forum post, source, license and of course the download there.

I also took the liberty to add a donate button since I can really use any cent you might have lying around – but that is, of course, fully optional! I talked with one of our cheerful mods so I shouldn’t be violating any forum rules.

I know it’s a bit less convenient than direct download links in the posts, but on the plus side should hopefully reduce the occurrence of dead links since I only update in one place. If you find any problems there is a direct contact option on the side so that I can react asap.

Thanks for bearing with me and I hope you’ll continue to enjoy my mods in the future!

Link to comment
Share on other sites

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