Raw Control — kOS 1.4.0.0 documentation (2024)

If you wish to have your kOS script manipulate a vessel’s flight controls directly in a raw way, rather than relying on kOS to handle the flying for you, then this is the type of structure you will need to use to do it. This is offered as an alternative to using the combination of LOCK STEERING and LOCK THROTTLE commands. To obtain the CONTROL variable for a vessel, use its :CONTROL suffix:

SET controlStick to SHIP:CONTROL.SET controlStick:PITCH to 0.2.

Unlike with so-called “Cooked” steering, “raw” steering uses the SET command, not the LOCK command. Using LOCK with these controls won’t work. When controlling the ship in a raw way, you must decide how to move the controls in detail. Here is another example:

SET SHIP:CONTROL:YAW to 0.2.

This will start pushing the ship to rotate a bit faster to the right, like pushing the D key gently. All the following values are set between \(-1\) and \(+1\). Zero means the control is neutral. You can set to values smaller in magnitude than \(-1\) and \(+1\) for gentler control, (but be aware of the 5% null zone mentioned below):

print "Gently pushing forward for 3 seconds.".SET SHIP:CONTROL:FORE TO 0.2.SET now to time:seconds.WAIT until time:seconds > now + 3.SET SHIP:CONTROL:FORE to 0.0.print "Gently Pushing leftward for 3 seconds.".SET SHIP:CONTROL:STARBOARD TO -0.2.SET now to time:seconds.WAIT until time:seconds > now + 3.SET SHIP:CONTROL:STARBOARD to 0.0.print "Starting an upward rotation.".SET SHIP:CONTROL:PITCH TO 0.2.SET now to time:seconds.WAIT until time:seconds > now + 0.5.SET SHIP:CONTROL:PITCH to 0.0.print "Giving control back to the player now.".SET SHIP:CONTROL:NEUTRALIZE to True.

One can use SHIP:CONTROL:ROTATION and SHIP:CONTROL:TRANSLATION to see the ship’s current situation.

CONFIG:SUPPRESSAUTOPILOT

If Config:SUPPRESSAUTOPILOT is true, then none of the controlson this page will have an effect. That setting is there to providethe player with an emergency way to quickly click a toggle on thetoolbar window to force kOS to stop taking control, letting the playermove the controls manually.

Breaking Ground DLC

Please note that the Breaking Ground DLC parts that can be configuredto respond to the control axes, such as electric motors and propellorpitches, will only respond to the settings described on thepilot controls page and NOT the settings describedhere on this raw control page, nor will it respond tothe settings in lock throttle or lock steering. SQUAD designedthe Breaking Ground DLC parts to only pay attention to the player’scontrols, not autopilot controls.

5% null zone

Warning

KSP imposes a built-in 5% null zone on RCS thrusters that makes itimpossible for small raw inputs to have any effect in situationswhere RCS thrusters are the only source of control. However,kOS allows you to override KSP’s stock RCS null zone for RCS partswith a bit of trickery under the hood, using the RCS:DEADZONEsuffix of RCS parts.

Raw Flight Controls Reference

These “Raw” controls allow you the direct control of flight parameters while the current program is running.

Note

The MAINTHROTTLE requires active engines and, of course,sufficient and appropriate fuel. The rotational controls YAW,PITCH and ROW require one of the following: active reactionwheels with sufficient energy, RCS to be ON with properly placedthrusters and appropriate fuel, or control surfaces with an atmospherein which to operate. The translational controls FORE, STARBOARDand TOP only work with RCS, and require RCS to be ON withproperly placed thrusters and appropriate fuel.

Suffix

Type, Range

Equivalent Key

MAINTHROTTLE

scalar [0,1]

LEFT-CTRL, LEFT-SHIFT

YAW

scalar [-1,1]

D, A

PITCH

scalar [-1,1]

W, S

ROLL

scalar [-1,1]

Q, E

ROTATION

Vector

(YAW,PITCH,ROLL)

YAWTRIM

scalar [-1,1]

(No real effect, see below) ALT+D, ALT+A

PITCHTRIM

scalar [-1,1]

(No real effect, see below) ALT+W, ALT+S

ROLLTRIM

scalar [-1,1]

(No real effect, see below) ALT+Q, ALT+E

FORE

scalar [-1,1]

N, H

STARBOARD

scalar [-1,1]

L, J

TOP

scalar [-1,1]

I, K

TRANSLATION

Vector

(STARBOARD,TOP,FORE)

WHEELSTEER

scalar [-1,1]

A, D

WHEELTHROTTLE

scalar [-1,1]

W, S

WHEELSTEERTRIM

scalar [-1,1]

(No real effect, see below) ALT+A, ALT+D

WHEELTHROTTLETRIM

scalar [-1,1]

(No real effect, see below) ALT+W, ALT+S

NEUTRAL

Boolean

True if ship:control is doing nothing.

NEUTRALIZE

Boolean

Releases Control

SHIP:CONTROL:MAINTHROTTLE

Set between 0 and 1 much like the cooked flying LOCK THROTTLE command.

SHIP:CONTROL:YAW

This is the rotation about the “up” vector as the pilot faces forward. Essentially left \((-1)\) or right \((+1)\).

SHIP:CONTROL:PITCH

Rotation about the starboard vector up \((+1)\) or down \((-1)\).

SHIP:CONTROL:ROLL

Rotation about the longitudinal axis of the ship left-wing-down \((-1)\) or left-wing-up \((+1)\).

SHIP:CONTROL:ROTATION

This is a Vector object containing (YAW, PITCH, ROLL) in that order.

SHIP:CONTROL:YAWTRIM

This has no real effect and is just here for completeness.

IF you really want to control TRIM, use SHIP:CONTROL:PILOTYAWTRIMfrom the suffixes in the Pilot control section instead.

The reason why this trim does nothing and you have to use the pilottrim instead is because KSP only looks at the trim when its part ofthe pilot’s own control structure, not an autpilot’s control structure.

Warning:Setting this value can cause :NEUTRAL toreturn false negatives by confusing the system about where the “atrest” point of the controls are.

SHIP:CONTROL:PITCHTRIM

This has no real effect and is just here for completeness.

IF you really want to control TRIM, use SHIP:CONTROL:PILOTPITCHTRIMfrom the suffixes in the Pilot control section instead.

The reason why this trim does nothing and you have to use the pilottrim instead is because KSP only looks at the trim when its part ofthe pilot’s own control structure, not an autpilot’s control structure.

Warning:Setting this value can cause NEUTRAL toreturn false negatives by confusing the system about where the “atrest” point of the controls are.

SHIP:CONTROL:ROLLTRIM

This has no real effect and is just here for completeness.

IF you really want to control TRIM, use SHIP:CONTROL:PILOTROLLTRIMfrom the suffixes in the Pilot control section instead.

The reason why this trim does nothing here is because KSP only looks at thetrim when its part of the pilot’s own control structure, not anautpilot’s control structure.

Warning:Setting this value can cause NEUTRAL toreturn false negatives by confusing the system about where the “atrest” point of the controls are.

SHIP:CONTROL:FORE

Controls the translation of the ship forward \((+1)\) or backward \((-1)\).Note that this control has a game-enforced 5% null zone thatkOS doesn’t seem to be able to change.

SHIP:CONTROL:STARBOARD

Controls the translation of the ship to the right \((+1)\) or left \((-1)\) from the pilot’s perspective.Note that this control has a game-enforced 5% null zone thatkOS doesn’t seem to be able to change.

SHIP:CONTROL:TOP

Controls the translation of the ship up \((+1)\) or down \((-1)\) from the pilot’s perspective.Note that this control has a game-enforced 5% null zone thatkOS doesn’t seem to be able to change.

SHIP:CONTROL:TRANSLATION

Controls the translation as a Vector (STARBOARD, TOP, FORE).Note that each axis of this this control vector has agame-enforced 5% null zone that kOS doesn’t seem to beable to change.

SHIP:CONTROL:WHEELSTEER

Turns the wheels left \((-1)\) or right \((+1)\).

SHIP:CONTROL:WHEELTHROTTLE

Controls the wheels to move the ship forward \((+1)\) or backward \((-1)\) while on the ground.

SHIP:CONTROL:WHEELSTEERTRIM

This has no real effect and is just here for completeness.

IF you really want to control TRIM, use SHIP:CONTROL:PILOTYAWTRIMfrom the suffixes in the Pilot control section instead.

The reason why this trim does nothing here is because KSP only looks at thetrim when its part of the pilot’s own control structure, not anautpilot’s control structure.

Warning:Setting this value can cause NEUTRAL toreturn false negatives by confusing the system about where the “atrest” point of the controls are.

SHIP:CONTROL:WHEELTHROTTLETRIM

This has no real effect and is just here for completeness.

IF you really want to control TRIM, use SHIP:CONTROL:PILOTYAWTRIMfrom the suffixes in the Pilot control section instead.

The reason why this trim does nothing here is because KSP only looks at thetrim when its part of the pilot’s own control structure, not anautpilot’s control structure.

Warning:Setting this value can cause NEUTRAL toreturn false negatives by confusing the system about where the “atrest” point of the controls are.

SHIP:CONTROL:NEUTRAL
SHIP:CONTROL:NEUTRALIZE

These used to be two suffixes but they are now synonyms who’s meaningchanges depending on if you set or get them.

Getting:

if (SHIP:CONTROL:NEUTRAL) is true when the raw controls are at rest.

Setting:

set SHIP:CONTROL:NEUTRALIZE TO TRUE. causes the raw controls to let go.Setting it to false has no effect.

Warnings:

Although it has no effect, setting a raw control TRIM value CAN causeNEUTRAL to return false when the control is at rest. For example,if you do SET SHIP:CONTROL:YAWTRIM to 0.1.` then when the controlsare at rest, ``SHIP:CONTROL:NEUTRAL will return false because the yawposition of 0 is differing from its trim position of 0.1.

The two terms NEUTRAL and NEUTRALIZE are synonyms. (They used tobe two separate suffixes, one for getting and one for setting, butthat made no sense so they were combined but both spellings wereretained for backward compantiblity with old scripts.)

Unlocking controls

Setting any one of SHIP:CONTROL values will prevent player from manipulating that specific control manually. Other controls will not be locked.To free any single control, set it back to zero. To give all controls back to the player you must execute:

SET SHIP:CONTROL:NEUTRALIZE to TRUE.

Advantages/Disadvantages

The control over RCS translation requires the use of Raw control. Also, with raw control you can choose how gentle to be with the controls and it can be possible to control wobbly craft better with raw control than with cooked control.

Raw Control — kOS 1.4.0.0 documentation (2024)
Top Articles
Latest Posts
Article information

Author: Fr. Dewey Fisher

Last Updated:

Views: 6579

Rating: 4.1 / 5 (42 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.