Hydraulic piston

The title pretty much says it all but to break it down I mean a piston that can apply force when extending and retracting that is not simply binary extended/retracted. If you release the key that controls it, it should act like a fixed object. It should be powerful but not very fast moving - real hydraulics break stuff if you do dumb things with them.

This would have a lot of uses for things that are currently very difficult or impossible and not much functional overlap with the current piston (which is more like a 2-position suspension).
I like this idea sounds useful. Would act like an extendable small block that can extend to any point up to the length of large block but would look similar to a piston.
The nicest way would be a piston that you can place from point to point, whatever the lenght (just like a brace or a spring)

What I imagine:

- Ball joint extremities
- Choice between "extended" or "retracted" version before you place it (or better, in build mode, place it and chose the initial state with the flip key "F")
- toggle mode (press once and it extends or retracts automatically)
- speed can be set

Of course, just like a real piston:
- if you place it extended, it can only be shorten of half it's lenght (approx.)
- if you place it retracted, it can only extend to twice it's lenght (approx.)
I thought about ball joint ends but I don't want those if they have to be as sloppy as currently existent ball joints. If this issue can be fixed and it wouldn't cause the pistons to be too large, sure, I agree.

Adjustable (extended/retracted/etc) placement would be nice but I see that as more of a separate game-wide issue.

If we get into changing the operating speed we might as well scrap the current 'piston' and combine the two. That won't hurt my feelings but it again it opens more issues.