Eternal’s Tips

Seamless nudging of fuselage blocks:

As many of you know, one unit of length of fuselage block (1) is half a meter in real life. Thus, every 0.25 increment is 12.5cm.

FineTuner mod nudge works in meters. One unit in FineTuner (1) is one meter. So, to perfectly nudge that fuselage block you have shortened by, let's say, 0.5, you have divide the length difference in half. So, type 0.25 into "F-Nudge" field in FT.

Since block will often shorten from boths sides equally, you'll often have to divide by two again. So, if your block does that, nudge it by 0.125.

FineTuner ghosting

We all know the annoyance when you can't get to that hidden part you have to edit. You have to zoom through the whole lot of fuselages, and locate the small part you need. However, there's no need for that. Activate "Multi-Select" tool of FineTuner and select all parts that are in your way. Then start "Multi-Edit". After that, just click through all of those parts, right on the piece you need.

Tilting the camera:

For good in-game screenshot, sometimes you need to tilt the camera. Hold shift and drag with the right mouse button while paused.

Underwater props:

To make a prop engine work under water, edit its blade width (cordScale in XML files) above maximum allowed. Number you should input is 7 for just under the surface. If you want to place engine deeper, use bigger number.

WNP78’s Corner

XML Options

Lots of them

Value Type

Definition

String

Any text.

Number

A decimal or whole number. Can also be “Infinity”, “NegativeInfinity” and “NaN”.

Integer

A whole number.

Vector

These are used for positions, scales etc and you could refer to them as coordinates in some cases. For instance a 3d vector is expressed as “x,y,z”. Normally when talking about position, x is side to side, y is up and down, and z is forward and backwards.

Number List

A series of numbers separated by commas.

Property Name

Value Type

Remarks

Aircraft

name

string

The name of the aircraft.

url

string

This is the aircraft code of the plane when it was last uploaded. This is how the successor/auto-credit system keeps track. This can be used, for instance for entering successor challenges however be careful about using it to bypass the successor system as this carries heavy consequences on the site.

diffuseInertiaTensors

true/false

True by default. Inertia tensors are basically the “angular mass” of something. Things have a higher angular mass/inertia tensor if they are heavier or the mass is more spread out. However, having an object with a very high inertia tensor (such as a 500kg plane) connected to something with a very low inertia tensor (such as a 5g switch) can cause joint wobble. Inertia tensor diffusion fixes this by blending together the inertia tensors so they are more similar. However this can cause unintended behaviours, such as the flipping of the 5 gram switch causing the 500kg plane to rock up onto its nose. It is not recommended to switch it off unless you are having serious problems with this issue and are willing to endure/fix some joint wobble.

theme

string

The name of the current theme.

useOldDragCalculation

true/false

Defaults to false. To be completely honest I’m not overly sure what it does. I’m pretty sure it’s something to do with drag calculations on disconnected parts.

size

3d Vector

The total size of the aircraft. Recalculated by the game every time it’s saved.

boundsMin

3d Vector

Also something to do with the size but it doesn’t really matter cause it gets changed on save anyway.

xmlVersion

integer

A number used by SP to determine how newly the file was generated, to aid backwards compatibility. The latest version is 6.

Part

id

integer

A unique number that is used to reference the part elsewhere, like in connections

partType

string

This is the type of part, for instance “Wing-1”. This is useful if you want to turn a normal wing into a structural wing to strengthen it. This is done by changing the partType to “Wing-2”

position

3d Vector

This is the position of the part. The measurements are in meters.

rotation

3d Vector

This is the euler angles in degrees representing the rotation of the part.

drag

Number list

This is an array of 6 numbers each representing the drag from a certain direction. It is not very useful to edit this because the game automatically recalculates drag when you load the aircraft, meaning your changes will not take place.

centerOfMass

3d Vector

The position in meters of the part’s center of mass relative to its origin.

materials

Number list

A list of 1 to 4 numbers representing which materials are applied to the part

disableAircraftCollisions

true/false

If this is true, the part will not collide with any other parts on this aircraft.

scale

3d Vector

The scale of the part. You will probably want to set massScale too with the product of all the dimensions to make the mass realistic.

massScale

number

A number which the mass of the part is multiplied by. Be careful with setting parts to 0 mass, especially all of them.

health

number

The initial health of the part. This is normally 100. Setting it to “Infinity” is a fun way to cheat.

dragScale

number

Allows you to tweak how much a drag a part produces. For instance a value of 0.5 would be half the drag.

calculateDrag

true/false

Setting this to false will disable all drag for the part. It is better than setting dragScale to 0, because it will mean that the part does not even have to calculate drag, leading to increased performance.

AdaptiveBlock

state

number

It has the current state of the adaptive block. Don’t even ask how it works.

AdaptiveNoseCone

scale

3d Vector

The scale of the nosecone. Kind of obsolete with part scaling.

Airbrake

nothing

BeaconLight

activationGroup

integer

The activation group that activates the beacon.

designerBlinkProgram

string

The designer name for the blink pattern, by default “Steady”

input

string

The name of an input (“Roll”, “Throttle”) etc that the light will only turn on if it’s more/less than 0. Or “None”.

showHalo

true/false

Whether or not the “halo” should be shown around the light.

blinkProgram

number list

A list of numbers representing the blink pattern. Each number is a time in seconds. It will first turn the light on, then wait an amount of time specified by the first number, then off and wait for the second number, then on and wait the third number, and so on, until it reaches the end of the list when it loops back to the start.

CameraVantage

viewMode

string

Can be “None”, “FirstPerson”, “Chase”, “Orbit”, “Flyby”.

autoOrient

true/false

Whether or not the camera should rotate it’s view so that it’s the right way up.

lookAtCockpit

true/false

If true, the camera will track the player’s cockpit

autoZoomOnCockpit

true/false

Used in conjunction with lookAtCockpit, the camera will zoom in on the cockpit if this is true. (I’m not sure if this actually works)

autoCenterCamera

true/false

If true, the camera will move back to the center when you stop dragging to rotate the view.

CarEngine

power

number

The amount of horses powering the engine.

Cockpit

primaryCockpit

true/false

Whether or not this cockpit is the primary cockpit of the aircraft.

ControlSurface

start

number

The distance from the wing root that the control surface starts.

end

number

The distance from the wing root that the control surface ends.

inputId

string

This is a string representing the input the surface is bound to. Strangely and annoyingly, there are less options for what you can set it to than InputControllers and BeaconLights. The options are:

Roll Pitch Yaw VTOL Trim

invert

true/false

If this is set to true, the direction of movement will be inverted.

maxDeflectionDegree

number

The maximum extent to which the control surface will rotate (usually 35) in degrees.

activationGroup

integer

The activation group that has to be activated for the control to move. If it is 0 (default), it will be always activated.

activationGroupLocksInput

true/false

If true, then the control will stay in the same place as it was when it is deactivated. If false, it will return to central.

trim

string

Can be “on”, “inverted” or “off”.

CowlFlaps & EngineNozzleFlaps

nothing

(so many people ask what these do, all it does is controls the little flaps on the big propeller engine, and the nozzle on the afterburning jet respectively. They have no settings)

Detacher

enabled

true/false

Whether or not the detacher component is enabled (duh).

group

integer

The activation group that activates the detacher

detachForce

number

The force applied when the detacher is activated. Note this breaks Newton’s third law because it only applies the force to one side.

detacherUiMaxForce

number

The max force allowed in the designer. Usually 10000. This will impact your detachForce. I think.

Engine

powerMultiplier

number

The engine’s power will be multiplied by this.

exhaustScale

3d Vector

This is the scale of the exhaust effect. I recommend keeping all scales the same, because the scale is on the global axis (meaning it does not follow the plane as it rotates).

exhaustStartColorOverridePrimary

RGBA colour

The colour of the primary exhaust effect.

exhaustStartColorOverrideSecondary

RGBA colour

The colour of the secondary exhaust effect.

EngineThrustPort

exhaustScale

number

This is the scale of the exhaust effect. I recommend keeping all scales the same, because the scale is on the global axis (meaning it does not follow the plane as it rotates).

exhaustStartColorOverridePrimary

RGBA colour

The colour of the exhaust effect.

FloatingPart

enabled

true/false

Whether or not it is floaty like a boaty.

FuelTank

fuel

number

How much fuel the tank contains.

capacity

number

How much fuel the tank has space for. (I that recommend these two values are kept the same)

Fuselage (all)

version

integer

The version of fuselage. Just leave it as it is. It won’t harm you

frontScale

2d Vector

The size in half-meters of the front section.

rearScale

2d Vector

The size in half-meters of the rear section.

offset

3d Vector

The position of the front section relative to the rear section in half meters. The values are for Run, Rise then Length.

deadWeight

number

The amount of deadweight in the fuselage, in kilograms.

buoyancy

number

How floaty it is.

fuelPercentage

number

How full it is of fuel (it’s not actually percentage, it’s 0 to 1)

cornerTypes

number list

A list of 8 numbers specifying which corner type each corner is.

Fuselage (Cone)

autoSizeOnConnected

true/false

Whether or not the cone should auto-resize when connected to a fuselage.

Fuselage (Inlet)

inletSlant

number

From -1 to 1, how slanted the inlet is.

inletThicknessFront

number

How thick the inlet is at the front. From 0 to 1.

inletThicknessRear

number

How thick the inlet is at the rear. From 0 to 1.

Gyroscope

activationGroup

integer

The activation group that activates the gyroscope.

autoOrient

true/false

Whatever the hell this does.

stability

number

One of the multipliers for gyro authority. Don’t ask me.

speed

number

Another one of the multipliers for gyro authority. Don’t ask me.

yawPower

number

How much power it has on the yaw axis.

pitchRange

number

The amount of degrees it can pitch to.

rollRange

number

The amount of degrees it can roll to.

Inlet

nothing

InputController

activationGroup

integer

An activation group (0-8). It’s behaviour depends on zeroOnDeactivate.

invert

true/false

This will invert the InputController. Behaviour depends on invertType.

min

number

This is the minimum value the output will reach. You can set it to 0 on a rotator (normally -1) to stop it from rotating in one direction but not the other.

max

number

This is the maximum value that the output will reach. You can use this to scale the output.

input

string

The input axis name. Can be:

Roll

Pitch

Yaw

Throttle

VTOL

Trim

Brake

LandingGear

FireGuns

FireWeapons

LaunchCountermeasures

Activate1

Activate2

Activate8

zeroOnDeactivate

true/false

If true, the InputController will return 0 when it is deactivated, otherwise it will stay at it’s current value

invertType

string

Can be “Axis” or “Output”. If “Axis”, then the input axis will be inverted, then the min/max calculation will be done. If “Output”, then the min/max calculation will be done first, then the output will be inverted.

If you want to know more about InputControllers, read this post by SP developer Nathan Mikeska. This was made when the InputControllers were updated and made more advanced.

JointRotator

range

number

The angle in degrees the rotator can rotate.

speed

number

How fast the rotator rotates.

damperMultiplier

number

This increases the damper. This is very useful for rotators that wobble when you move them. To remove wobble, increase this is powers of 10 (10,100,1000) until it stops wobbling. Too much damper will cause it to rotate too slowly.

disableBaseMesh

true/false

If true, the base mesh (only on small/hinge rotators) will be hidden.

LandingGear (all)

damper

number

The damper (friction) on the wheel suspension.

sensitivity

number

The turning sensitivity of the wheel.

spring

number

The suspension’s strength.

turningEnabled

true/false

Whether or not the wheel can turn.

flipped

true/false

Whether or not the gear is horizontally flipped (ie, if rear landing gear gets mirrored)

Parachute

activationGroup

integer

The activation group that deploys the parachute.

size

number

The scale of the parachute.

style

string

Pattern. Can be “V. Striped”, “H. Striped” or “Checkered”.

Piston

preventBreaking

true/false

If true it makes the spring more strong.

cycle

true/false

If true, the piston will constantly move in and out.

extend

true/false

If false, the piston will start extended.

range

number

How far the piston extends.

speed

number

How quickly the piston extends.

PropEngineAdvanced

power

number

How many newtons of force it gives.

maxRpm

number

The maximum speed the propeller can safely reach.

propellerCount

integer

How many blades the prop has

diameter

number

The diameter in meters of the prop

chordScale

number

The wideness of the blades

pitchControlType

string

Can be “Fixed”, “Manual” or “Auto”

propellerPitch

number

The fixed pitch of the prop (this is also added to the manual input)

propellerPitchScale

number

The scale of the manual input

throttleControlType

string

Can be “Fixed”, “Manual” or “Auto”

reverseRotation

true/false

If this is true, the prop will rotate in the other direction (but will give thrust in the same direction as before)

propellerType

string

Can be “Scimitar”, “Warbird” or “Cessna”

ReactionControlNozzle

autoAssignType

true/false

type

string

can be “Auto”, “Pitch”, “Roll” or “Yaw”

reverse

true/false

True if auto assigned, else false.

activationGroup

integer

THe activation group that activates the RCN.

ResizableShape

size

number

The scale of the shape

bounciness

number

How bouncy it is (0-1)

friction

number

How much friction there is.

attachPointPosition

3d Vector

The relative position of the attach point.

I guess this is useful for... things...

ResizableWheel

turningAngle

number

The angle in degrees the steering goes to

engineId

integer

The part ID of the engine it is linked to.

direction

string

“Normal” or “Reversed”

size

number

The overall scale of the wheel

width

number

The x axis scale of the wheel

tire

string

The type of tire. Can be “Normal” or “Reversed”.

damper

number

See entry for suspension

spring

number

enableSuspension

true/false

Whether or not suspension is enabled

enableAutoTraction

true/false

If this is true, both tractionForward and tractionSideways will be set to 1.

turningRate

number

How quickly the wheel turns.  (degrees/second)

maxAngularVelocity

number

The maximun angular velocity the wheel can rotate at. A low value may limit top speed.

brakeTorque

number

The amount of torque applied when braking.

slipForwardExtremum

number

These are values that define the wheel’s traction. For more information on how these work, look at unity’s documentation for them here (scroll down to “Wheel Friction Curves”)

slipForwardAsymptote

number

slipSidewaysExtremum

number

slipSidewaysAsymptote

number

tractionForward

number

tractionSideways

number

  Rotator

(not to be confused with JointRotator, Rotator is only present on things like VTOL Nozzoles)

enabled

true/false

Whether or not the rotator is enabled.

Suspension

damper

number

The damper (friction) of the spring.

spring

number

The strength of the spring.

Wheel

See LandingGear

Wing

angleOfAttack

number

This literally does absolutely nothing at all.

[root/tip]

[Leading/Trailing]Offset

number

These are the distances between the attach points at both ends and the front and back (leading/trailing) edges of the wing.

tipPosition

3d vector

The offset of the wing tip attach point from the root attach point. The Y axis in this is the length of the wing, X is dihedral and Z is slant forward/backward.

hingeDistance

number

How long all control surfaces are.

fuelPercentage

number

Not a percentage but a decimal between 0 and 1 of how full the wing is of fuel.

allowControlSurfaces

true/false

Whether or not the “Add Control Surface” button should be shown in the designer.

airfoil

string

A name relating to the different aerofoil types. If you’re really into aerodynamics, here are the technical names for the choices:
“Flat Bottom”    :“ NACA23016”

“Semi-Symmetric” :” NACA23015”

“Symmetric”      : ”NACA0009”

These are all 4 or 5 digit NACA codes which you can read up on here.

wingPhysicsEnabled

true/false

If this is false, the wing will not actually act like a wing.

inverted

true/false

This gets automatically set so the wing knows which way up it is.

WingLandingGear

See LandingGear

Bomb, Missile, RocketPod and RocketWeapon

activationGroup

integer

The activation group that activates the weapon.

firingDelay

number

The time in seconds between launches.

Missile

lockTime

number

How long the missile takes to acquire a lock. (seconds)

maxRange

number

The maximum lock range of the missile (meters)

minRange

number

The minimum lock range of the missile (meters)

maxTargetingAngle

number

The maximum angle at which a missile can acquire a lock. (degrees)

maxSpeed

number

The maximum/target speed a missile can reach. (m/s)

maxFuelTime

number

How long the fuel will last for. (seconds)

maxForwardThrustForce

number

How much force the missile’s engine provides.

maxHeadingAngleAdjustmentRate

number

The maximum speed at which the missile rotates.

maxVelocityAngleAdjustmentRate

number

How quickly the missile starts to move in the direction it’s pointing

proximityDetonationRangeMin

number

The minimum range for proximity detonation. (meters)

proximityDetonationRangeMax

number

The maximum range for proximity detonation. (meters)

killCam

true/false

Whether or not the kill camera is enabled.

function

string

Can be “AirToAir” or “AirToSurface”. Do not mix missiles of same part type but different functions. (ie, do not have an air to air inferno and an air to surface inferno).

RocketWeapon

finMode

string

Can be “Static”, “Deployed” or “None”.

selfDestructTimer

number

Time in seconds, after which the missile will self-destruct (timer starts when rocket fired).

burnTimer

number

Time in seconds, after which the missile will run out of fuel (timer starts when rocket fired). Note that the trail and engine effects stay even when the thrust stops.

CounterMeasureDispenser

activationGroup

integer

The activation group that activates the dispenser.

type

string

The type of countermeasure: can be “Chaff” or “Flares”

launchForce

number

The speed in m/s that flares will be ejected at

ammo

integer

The amount of flares in the dispenser

Gun

ammoCount

integer

Does absolutely nothing. Still in the code, though..

burstCount

integer

The amount of rounds in a burst.

timeBetweenBursts

number

How long the pause is between bursts (seconds)

muzzleVelocity

number

How fast bullets leave the gun (m/s)

roundsPerSecond

number

How many rounds are fired per seconds (though, there is a limit to how many rounds can be fired - one per physics update, which is not linked to framerate but is linked to physics quality and slow motion).

tracerColor

colour

The colour of the bullet. By default, it’s yellow.

spread

number

How spread out the bullets are. 0 for completely accurate. It is applied by adding an extra velocity vector which is the spread * 10 in a random direction

lifetime

number

How long in seconds the bullet will exist for after being fired.

damage

number

How much damage the bullets do (parts usually start off with 100 health)

impactForce

number

The impulse force which is applied when the bullet hits something.

bulletScale

3d Vector

The scale applied to the bullets.

muzzleFlash

true/false

If false, there will be no muzzle flash.

activationGroup

integer

The activation group that activates the gun.

-\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/-

Mod’s Advisory Sheet

TRUTH (kindof )

If you flat-spin, just give up, you’re gone.

KINDNESS + TIP

When building, try to keep the part count low for those on Mobile!

Useful tip for reducing part counts: Use random objects and resize them for details!

A GOOD TIP FOR BEGINNERS

When in doubt, add weight to the front of your plane if it is unstable.

CONTROL

I think the best controller for SimplePlanes is the keyboard, a joystick is usually just overkill due to the way the physics are in SP. Just a keyboard and mouse, always the best, in my opinion.

WIND

Do you hear that? That’s the wind! Try it out sometime, it can come in handy when testing how far you can push your plane’s agility! It’s in the ESC menu. Good luck testing!

COLOR

Colors. Colors are not the same. Colors aren’t the same in designer as they are in-game. Before you publish a plane, be sure to check the colors in-game! Make double sure!

MUTING

I hear so many things! How do I get these sounds out of my head!? Press M!

RED IS LINK - BLUE IS EXAMPLE - NOW ADD A GIF!

Want to add a .gif to your plane’s description? I’ll tell you how!

First step, record a clip. Now once you’ve recorded a clip, you can go and edit it! Make it around 256x144 to fit nicely in your description. Make sure to save in .mp4.

Done with editing and all that good stuff? Great! Let’s convert it!

Go to a site like "Online Convert". Once you’ve done that, you will want to go to "Imgur".

Click the upload button and then find your .gif file you’ve saved from.

Done with that? Good. Find the link, the direct link, by right clicking the .gif and opening in a new tab. Does the link you just open end with .gif or .gifv? Copy that.

Now go to your description, this will work just like a photo. ![TextHere](LinkHere.gif)

Make sure to remove the v at the end if it ends like .gifv, otherwise SimplePlanes description will not show the .gif.

-/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\-