# ProjectVesselBuilder for Orbiter

#### Donamy

Donator
Beta Tester
I just made the trunk undock from DM-1, using a keypress event. Could it also trigger an animation on another vessel. Such as retract the umbilical from the trunk, then undock it ?

---------- Post added at 08:15 PM ---------- Previous post was at 06:25 PM ----------

Dock port not loading that it is jettisonable. It seems to save it, but does not load it.

#### jacquesmomo

I also have thought about giving the option of encrypting the cfg and make it password protected for those who are willing to keep the vessel source closed. Would that be an interesting option? I don t like it much because i would have to keep also the encryption alghorithm closed source, but if users think that it s a must i could work on it

I don't like this idea... :nono:

the best option to manage payloads is through docking ports, since docking manages also all the physics. The "issue" I see is that once a docked vessel is released the docking port remains available for further docking and that is unrealistic to me.
So my idea for a solution is to mark a docking port as a "payload port", that will be available for just one docking (when you dock your payload) and once you released the payload the docking port will be automatically deleted. In this way it would be easy also to setup the initial scenario of an addon using the scenario editor. I would also add the mangement of jettison through the usual "J" key instead of having to using CTRL+D to undock.
In this way it would also be possible to have nested payloads, rotated payloads... the whole package...

Do you guys like this option?
Yes ! This is an EXCELLENTE idea. :thumbup:

#### fred18

Donator
Dock port not loading that it is jettisonable. It seems to save it, but does not load it.

Confirmed and (hopefully) solved, check the attached file. Your work in this phase is invaluable Don. The addition of the multiple configuration made me rewrite almost 10.000 lines of code and I made some mistakes here and there and you're finding them all!!! Thank you!!!

I just made the trunk undock from DM-1, using a keypress event. Could it also trigger an animation on another vessel. Such as retract the umbilical from the trunk, then undock it ?
for sure not on another vessel. I am thinking if it is possible with the current options but maybe not.

I should add an "animation level" trigger so if an animation status is above or below a user defined value the event gets triggered. I was a bit reluctant to this because I was afraid of too much intersection works, but it's an option that honestly should be there because the "start animation" event will just trigger the animation and the event is consumed immediately but in general it is an useful option to make something happening when an animation gets to a certain point.

I don't like this idea... :nono:
don't worries, this idea was abandoned and it will not be implemented

#### Attachments

• VesselBuilder1.zip
247.5 KB · Views: 22

#### gattispilot

So Not sure if your program but I tried the Changelander.

when testing the hover

It started to roll. once I apply horizon level it was level

CAn you do this:
Code:
SetSurfaceFrictionCoeff(50, 40);

I let it build the touchdown points also.
Code:
ClassName = VesselBuilder1
Module = VesselBuilder1

;CONFIGURATION FILE FOR lander

NOEDITOR = FALSE

CONFIGURATIONS = 1

;<-------------------------GENERAL SETTINGS - Configuration: 0------------------------->

EMPTY_MASS = 1200
VSIZE = 5
PMI = 20 20 10
CSECTIONS = 20 20 20
GRAVITYGDAMP = 0
ROTDRAG = 0.01 0.01 0.01

;<-------------------------MESHES DEFINITIONS------------------------->

MESH_0_NAME = change4lander3
MESH_0_POS = 0 0 0
MESH_0_DIR = 0 0 1
MESH_0_ROT = 0 1 0
MESH_0_VIS = 1

;<-------------------------DOCKS DEFINITIONS------------------------->

;<-------------------------ATTACHMENTS DEFINITIONS------------------------->

;<-------------------------ANIMATIONS DEFINITIONS------------------------->

;<-------------------------PROPELLANT DEFINITIONS------------------------->

PRP_0_ID = 0
PRP_0_MAXMASS = 1480
PRP_0_EFFICIENCY = 1
PRP_0_PRIMARY = TRUE
PRP_0_NAME = Tank_0

;<-------------------------THRUSTERS DEFINITIONS------------------------->

THR_0_ID = 0
THR_0_NAME = Thruster_0
THR_0_POS = 0 0 0
THR_0_DIR = 0 1 0
THR_0_MAX0 = 10000
THR_0_ISP0 = 1000
THR_0_ISPREF = 0
THR_0_PREF = 101400
THR_0_TANK = 0
THR_0_HASEXHAUST = TRUE
THR_0_EX_0_ID = 0
THR_0_EX_0_LSIZE = 1
THR_0_EX_0_WSIZE = 0.3
THR_0_EX_0_EXTEX = -1
THR_0_EX_0_CUSTOMPOSDIR = TRUE
THR_0_EX_0_POS = 0 -2.8 0
THR_0_EX_0_DIR = 0 -1 0
THR_0_HASPARTICLES = FALSE

THR_1_ID = 1
THR_1_NAME = Pitch_up_1
THR_1_POS = 0 0 10
THR_1_DIR = 0 1 0
THR_1_MAX0 = 62.8319
THR_1_ISP0 = 1e+007
THR_1_ISPREF = 0
THR_1_PREF = 101400
THR_1_TANK = 0
THR_1_HASEXHAUST = FALSE
THR_1_HASPARTICLES = FALSE

THR_2_ID = 2
THR_2_NAME = Pitch_up_2
THR_2_POS = 0 0 -10
THR_2_DIR = 0 -1 0
THR_2_MAX0 = 62.8319
THR_2_ISP0 = 1e+007
THR_2_ISPREF = 0
THR_2_PREF = 101400
THR_2_TANK = 0
THR_2_HASEXHAUST = FALSE
THR_2_HASPARTICLES = FALSE

THR_3_ID = 3
THR_3_NAME = Pitch_dwn_1
THR_3_POS = 0 0 10
THR_3_DIR = 0 -1 0
THR_3_MAX0 = 62.8319
THR_3_ISP0 = 1e+007
THR_3_ISPREF = 0
THR_3_PREF = 101400
THR_3_TANK = 0
THR_3_HASEXHAUST = FALSE
THR_3_HASPARTICLES = FALSE

THR_4_ID = 4
THR_4_NAME = Pitch_dwn_2
THR_4_POS = 0 0 -10
THR_4_DIR = 0 1 0
THR_4_MAX0 = 62.8319
THR_4_ISP0 = 1e+007
THR_4_ISPREF = 0
THR_4_PREF = 101400
THR_4_TANK = 0
THR_4_HASEXHAUST = FALSE
THR_4_HASPARTICLES = FALSE

THR_5_ID = 5
THR_5_NAME = Yaw_left_1
THR_5_POS = 0 0 10
THR_5_DIR = -1 0 0
THR_5_MAX0 = 62.8319
THR_5_ISP0 = 1e+007
THR_5_ISPREF = 0
THR_5_PREF = 101400
THR_5_TANK = 0
THR_5_HASEXHAUST = FALSE
THR_5_HASPARTICLES = FALSE

THR_6_ID = 6
THR_6_NAME = Yaw_left_2
THR_6_POS = 0 0 -10
THR_6_DIR = 1 0 0
THR_6_MAX0 = 62.8319
THR_6_ISP0 = 1e+007
THR_6_ISPREF = 0
THR_6_PREF = 101400
THR_6_TANK = 0
THR_6_HASEXHAUST = FALSE
THR_6_HASPARTICLES = FALSE

THR_7_ID = 7
THR_7_NAME = Yaw_right_1
THR_7_POS = 0 0 10
THR_7_DIR = 1 0 0
THR_7_MAX0 = 62.8319
THR_7_ISP0 = 1e+007
THR_7_ISPREF = 0
THR_7_PREF = 101400
THR_7_TANK = 0
THR_7_HASEXHAUST = FALSE
THR_7_HASPARTICLES = FALSE

THR_8_ID = 8
THR_8_NAME = Yaw_right_2
THR_8_POS = 0 0 -10
THR_8_DIR = -1 0 0
THR_8_MAX0 = 62.8319
THR_8_ISP0 = 1e+007
THR_8_ISPREF = 0
THR_8_PREF = 101400
THR_8_TANK = 0
THR_8_HASEXHAUST = FALSE
THR_8_HASPARTICLES = FALSE

THR_9_ID = 9
THR_9_NAME = Bank_left_1
THR_9_POS = 10 0 0
THR_9_DIR = 0 1 0
THR_9_MAX0 = 31.4159
THR_9_ISP0 = 1e+007
THR_9_ISPREF = 0
THR_9_PREF = 101400
THR_9_TANK = 0
THR_9_HASEXHAUST = FALSE
THR_9_HASPARTICLES = FALSE

THR_10_ID = 10
THR_10_NAME = Bank_left_2
THR_10_POS = -10 0 0
THR_10_DIR = 0 -1 0
THR_10_MAX0 = 31.4159
THR_10_ISP0 = 1e+007
THR_10_ISPREF = 0
THR_10_PREF = 101400
THR_10_TANK = 0
THR_10_HASEXHAUST = FALSE
THR_10_HASPARTICLES = FALSE

THR_11_ID = 11
THR_11_NAME = Bank_right_1
THR_11_POS = 10 0 0
THR_11_DIR = 0 -1 0
THR_11_MAX0 = 31.4159
THR_11_ISP0 = 1e+007
THR_11_ISPREF = 0
THR_11_PREF = 101400
THR_11_TANK = 0
THR_11_HASEXHAUST = FALSE
THR_11_HASPARTICLES = FALSE

THR_12_ID = 12
THR_12_NAME = Bank_right_2
THR_12_POS = -10 0 0
THR_12_DIR = 0 1 0
THR_12_MAX0 = 31.4159
THR_12_ISP0 = 1e+007
THR_12_ISPREF = 0
THR_12_PREF = 101400
THR_12_TANK = 0
THR_12_HASEXHAUST = FALSE
THR_12_HASPARTICLES = FALSE

THR_13_ID = 13
THR_13_NAME = Translate_up
THR_13_POS = 0 0 0
THR_13_DIR = 0 1 0
THR_13_MAX0 = 180
THR_13_ISP0 = 1e+007
THR_13_ISPREF = 0
THR_13_PREF = 101400
THR_13_TANK = 0
THR_13_HASEXHAUST = FALSE
THR_13_HASPARTICLES = FALSE

THR_14_ID = 14
THR_14_NAME = Translate_dwn
THR_14_POS = 0 0 0
THR_14_DIR = 0 -1 0
THR_14_MAX0 = 180
THR_14_ISP0 = 1e+007
THR_14_ISPREF = 0
THR_14_PREF = 101400
THR_14_TANK = 0
THR_14_HASEXHAUST = FALSE
THR_14_HASPARTICLES = FALSE

THR_15_ID = 15
THR_15_NAME = Translate_left
THR_15_POS = 0 0 0
THR_15_DIR = -1 0 0
THR_15_MAX0 = 180
THR_15_ISP0 = 1e+007
THR_15_ISPREF = 0
THR_15_PREF = 101400
THR_15_TANK = 0
THR_15_HASEXHAUST = FALSE
THR_15_HASPARTICLES = FALSE

THR_16_ID = 16
THR_16_NAME = Translate_right
THR_16_POS = 0 0 0
THR_16_DIR = 1 0 0
THR_16_MAX0 = 180
THR_16_ISP0 = 1e+007
THR_16_ISPREF = 0
THR_16_PREF = 101400
THR_16_TANK = 0
THR_16_HASEXHAUST = FALSE
THR_16_HASPARTICLES = FALSE

THR_17_ID = 17
THR_17_NAME = Translate_forward
THR_17_POS = 0 0 0
THR_17_DIR = 0 0 1
THR_17_MAX0 = 180
THR_17_ISP0 = 1e+007
THR_17_ISPREF = 0
THR_17_PREF = 101400
THR_17_TANK = 0
THR_17_HASEXHAUST = FALSE
THR_17_HASPARTICLES = FALSE

THR_18_ID = 18
THR_18_NAME = Translate_backward
THR_18_POS = 0 0 0
THR_18_DIR = 0 0 -1
THR_18_MAX0 = 180
THR_18_ISP0 = 1e+007
THR_18_ISPREF = 0
THR_18_PREF = 101400
THR_18_TANK = 0
THR_18_HASEXHAUST = FALSE
THR_18_HASPARTICLES = FALSE

;<-------------------------THRUSTER GROUPS DEFINITIONS------------------------->

THGROUP_ATT_PITCHUP = TRUE
THGROUP_ATT_PITCHUP_THRUSTERS = 1, 2
THGROUP_ATT_PITCHDOWN = TRUE
THGROUP_ATT_PITCHDOWN_THRUSTERS = 3, 4
THGROUP_ATT_YAWLEFT = TRUE
THGROUP_ATT_YAWLEFT_THRUSTERS = 5, 6
THGROUP_ATT_YAWRIGHT = TRUE
THGROUP_ATT_YAWRIGHT_THRUSTERS = 7, 8
THGROUP_ATT_BANKLEFT = TRUE
THGROUP_ATT_BANKLEFT_THRUSTERS = 9, 10
THGROUP_ATT_BANKRIGHT = TRUE
THGROUP_ATT_BANKRIGHT_THRUSTERS = 11, 12
THGROUP_ATT_RIGHT = TRUE
THGROUP_ATT_RIGHT_THRUSTERS = 16
THGROUP_ATT_LEFT = TRUE
THGROUP_ATT_LEFT_THRUSTERS = 15
THGROUP_ATT_UP = TRUE
THGROUP_ATT_UP_THRUSTERS = 13
THGROUP_ATT_DOWN = TRUE
THGROUP_ATT_DOWN_THRUSTERS = 14
THGROUP_ATT_FORWARD = TRUE
THGROUP_ATT_FORWARD_THRUSTERS = 17
THGROUP_ATT_BACK = TRUE
THGROUP_ATT_BACK_THRUSTERS = 18

;<-------------------------TOUCHDOWNPOINTS DEFINITIONS------------------------->

TDP_1_0_POS = 0 -3.2806 8.8
TDP_1_0_STIFFNESS = 17527.2
TDP_1_0_DAMPING = 12336.6
TDP_1_0_MU = 0.1
TDP_1_0_MULNG = 0.2

TDP_1_1_POS = -6.9282 -3.2806 -4
TDP_1_1_STIFFNESS = 17527.2
TDP_1_1_DAMPING = 12336.6
TDP_1_1_MU = 3
TDP_1_1_MULNG = 0.2

TDP_1_2_POS = 6.9282 -3.2806 -4
TDP_1_2_STIFFNESS = 17527.2
TDP_1_2_DAMPING = 12336.6
TDP_1_2_MU = 3
TDP_1_2_MULNG = 0.2

TDP_1_3_POS = 0 8 0
TDP_1_3_STIFFNESS = 17527.2
TDP_1_3_DAMPING = 12336.6
TDP_1_3_MU = 3
TDP_1_3_MULNG = 0.2

;<-------------------------AIRFOILS DEFINITIONS------------------------->

;<-------------------------CONTROL SURFACES DEFINITIONS------------------------->

;<-------------------------CAMERA DEFINITIONS------------------------->

;<-------------------------VIRTUAL COCKPIT DEFINITIONS------------------------->

;<-------------------------LIGHTS: BEACONS DEFINITIONS------------------------->

;<-------------------------LIGHTS: LIGHT EMITTERS DEFINITIONS------------------------->

;<-------------------------VARIABLE DRAG ITEMS DEFINITIONS------------------------->

;<-------------------------EVENTS DEFINITIONS------------------------->

;<-------------------------EXHAUST TEXTURES DEFINITIONS------------------------->

;<-------------------------PARTICLES DEFINITIONS------------------------->

I really like the ability to see the changes like the height above ground.

Last edited:

#### Donamy

Donator
Beta Tester
Confirmed and (hopefully) solved, check the attached file.
Sorry to say, but the problem is not fixed. It still will not load the dock port with jettison able checked.

When I clicked on the dock port, (trunk in the pic) I got the error shown.

#### Attachments

• dock eror.jpg
281 KB · Views: 17

#### fred18

Donator
Sorry to say, but the problem is not fixed. It still will not load the dock port with jettison able checked.

When I clicked on the dock port, (trunk in the pic) I got the error shown.

ok, then I was too quick in looking it, give me a day to check it properly

#### Donamy

Donator
Beta Tester
No hurry !! Thanks. I can still undock it the old way. But I was experimenting with events.

:thumbup:

#### fred18

Donator
So Not sure if your program but I tried the Changelander.

when testing the hover

It started to roll. once I apply horizon level it was level

I m not sure I understand it right, but if I do, it's not about VB, it's a combination of things with terrain and TD points: it's more difficult to lift off just vertical without engaging attitude control in 2016, but not much that VB can do about it I think

CAn you do this:
Code:
SetSurfaceFrictionCoeff(50, 40);
not directly, you need to set the Mu/mu_lng parameters of the touchdown points to those numbers (if you did the default points I suggest to edit the CFG manually because it's quicker than noting and input again the points)

I'm not an expert about them, rarely used them. Are they used a lot/useful? what are the most used parameters? also I suspect that it should be on a vessel basis (while actually VB sets the vessel's class parameters) so probably the best option would be to add this to the MFD that I'll add

---------- Post added at 03:19 ---------- Previous post was at 03:16 ----------

No hurry !! Thanks. I can still undock it the old way. But I was experimenting with events.

:thumbup:

I have that issue too with events. I was trying to track it down before pausing the development a couple of days ago. It's on top of my list so now that I'm resuming the work I will try to sort it out soon

#### 4throck

##### Enthusiast !
You set the brakes always on in the code (can't remember the name ATM, but there is a function for it), so when the vessel lands, it stays where it is. ...

This comes from the 2016 vs 2010 thread and might be important for VB (and perhaps TD_PT).
It seems to be a solution to reach a landed state for very light vessels. Like the Chang'e above that jumps on the surface

So can we have brakes on VB, that can default to always on ?

Last edited:

#### fred18

Donator
This comes from the 2016 vs 2010 thread and might be important for VB (and perhaps TD_PT).
It seems to be a solution to reach a landed state for very light vessels. Like the Chang'e above that jumps on the surface

So can we have brakes on VB, that can default to always on ?

Instead of making a default always on option I'd put a key command to activate "parking brakes", like in flight simulators, so it can be used by both normal addons and this kind of light addons.

I will add it with the [CTRL] + [.] key if I can (so it will be the same of FSX which can be useful to someone)

#### fred18

Donator
No hurry !! Thanks. I can still undock it the old way. But I was experimenting with events.

:thumbup:

I think I found out this time the issue with jettisonable docks saving: when I added the soft dock procedure I inadvertedly moved the line of the reload of the jettisonable parameter, now it should be fixed

This comes from the 2016 vs 2010 thread and might be important for VB (and perhaps TD_PT).
It seems to be a solution to reach a landed state for very light vessels. Like the Chang'e above that jumps on the surface

So can we have brakes on VB, that can default to always on ?

I added the parking brakes option. you can toggle parking brakes with CTRL + . (the dot, to understand each other if we have different keyboards layout it's 2 keys right of the M). A message in the hud highlights if they are on or not and they get saved and restored if when you close and reopen the scenario.

#### Attachments

• VesselBuilder1.zip
302.9 KB · Views: 28

#### 4throck

##### Enthusiast !
Thanks for the quick work on parking brakes! :thumbup:

#### Urwumpe

##### Not funny anymore
Donator
So can we have brakes on VB, that can default to always on ?

Yes. Or we could set the surface friction coefficients of the "landing gear wheels" to (absurdly) high values.

#### Donamy

Donator
Beta Tester
The dock port saving issue is fixed, and the soft dock still works also.

Was wondering if the undocking has to be spring loaded. I can think of instances where it wouldn't be desirable ?

---------- Post added at 02:07 PM ---------- Previous post was at 01:59 PM ----------

you got me there, I realized yesterady that it's missing... next thing to be added.

Anyway I'd like to promote the use of dockings or "jettisonable docks", since they have the huge advantage that docks use proper physics, while attachment do not. Jettisonable docks are something new but I deem them interesting. for those who are not accustomed: jettisonable docks are docking ports that supports just one positive docking event, it means: you con dock to them once, but when you undock they will be deleted and not available anymore.

One advantage of attachments is that they are movable.

---------- Post added at 02:35 PM ---------- Previous post was at 02:07 PM ----------

Checking the tail sitter box is not saved in the .cfg

#### fred18

Donator
Was wondering if the undocking has to be spring loaded. I can think of instances where it wouldn't be desirable ?

by "spring loaded" do you mean that when undocking a certain velocity to the vessel is applied?

Checking the tail sitter box is not saved in the .cfg

I think you are referring to the touchdown points section but that is on purpose: you set height from ground, size and tailisitting to generate a default set of points. Once done it's not needed to keep those options, you have the points themselves.

if you want to change the points you can clear the set and regenerate them with different options.

#### Donamy

Donator
Beta Tester
by "spring loaded" do you mean that when undocking a certain velocity to the vessel is applied?

Yes

I think you are referring to the touchdown points section but that is on purpose: you set height from ground, size and tailisitting to generate a default set of points. Once done it's not needed to keep those options, you have the points themselves.

if you want to change the points you can clear the set and regenerate them with different options.

Will try it, thanks.

#### Donamy

Donator
Beta Tester
It looks ok lying on it's side, but how do you get it to sit on the heatshield ?

#### Attachments

• capsule TDP.jpg
41.9 KB · Views: 29

#### fred18

Donator
It looks ok lying on it's side, but how do you get it to sit on the heatshield ?

well if the touchdown points are set correctly you have to let it fall upright and it should sit on the shield. Remember that the upright landed attitude is determined by orbiter using the first 3 touchdown points

---------- Post added at 17:24 ---------- Previous post was at 17:15 ----------

If you mean the regular dock there is a small velocity applied by orbiter core. in theory it could be customizable but it would be quite a bit of work. If you mean the soft dock then I'd say it's possible even there of course but I wouldn't like it much.

#### Donamy

Donator
Beta Tester
So the best way would be to unattach it, if you didn't want any speed applied ?

Another question, Is VB compatible with Generic Vehicle ?

#### fred18

Donator
So the best way would be to unattach it, if you didn't want any speed applied ?
at the moment the soft dock system uses 0 speed, so one way could be use the soft dock. In general yes, if you want it to be relased without speed the actual option is to use attachments. The reason why in the orbiter core undocking there is some speed applied is quite easy to see: if the vessels stay too much close they will very likely dock again making almost impossible to undock.

Another question, Is VB compatible with Generic Vehicle ?

they are both normal orbiter's vessels so I can't think of a reason why they should not. :thumbup:

Replies
16
Views
678
Replies
3
Views
217
Replies
39
Views
2K
Replies
1
Views
129
Replies
12
Views
512