The Vehicle Remote Interface is a peripheral device available for CraftOS. Type "help peripheral" to learn about using the Peripheral API to connect with peripherals. When a Vehicle Remote Interface is connected, peripheral.getType() will return "vehicle".
All methods here involving time are using the units of seconds.
All methods here involving angles are using the units of degrees.
The bounds for the flap angle, angles and their trims can be found by calling "getConstants()".
The maximum value for angle cooldowns is 6.35 seconds.
Cooldown of an angle is the time that has to pass until the angle is reset to 0.

Methods exposed by the Vehicle Remote Interface:
isAvailable(): boolean
- Check whether a vehicle is connected to the interface

getLocation(): decimal, decimal, decimal, integer
- Get the X, Y and Z coordinates, as well as the ID of the dimension the vehicle's in

getVelocity(): decimal, decimal, decimal, decimal
- Get the X, Y, Z motion and the vehicle's velocity

getRotation(): decimal, decimal, decimal
- Get the X (pitch), Y (yaw) and Z (roll) angles

getUniqueIds(): string, string
- Get the entity UUID and the vehicle UUID

getFuel(): string, integer, integer
- Get the name of fluid in the fluid tank, fluid level and max fluid level

isBeingFueled(): boolean
- Check whether the vehicle is being fueled

getDefinition(): table
- Get the JSON definition

getOwner(): string
- Get the UUID of the owner

getMass(): integer
- Get the mass in the units of kilograms

getElectricPower(): decimal
- Get the electric power of the battery

getEngines(): table{engineId: integer = details: table}
- Get the details of all engines

getWheels(): table{table...}
- Get the details of all wheels

getPassengers(): table{table{["uuid"]: string, ["name"]: string, ["controller"]: boolean}...}
- Get the passengers

isLocked(): boolean
- Check whether the vehicle is locked

setLocked(value: boolean)
- Set the locked status of the vehicle

getThrottle(): decimal
- Get the throttle, range 0 to 1

setThrottle(value: decimal)
- Set the throttle, range 0 to 1

getBrakeLevel(): decimal
- Get the brake level, range 0 to 1

setBrakeLevel(value: decimal)
- Set the brake level, range 0 to 1

isParkingBrakeActive(): boolean
- Check whether the parking brake is active on the vehicle

setParkingBrakeActive(value: boolean)
- Set the state of the parking brake

setMagnetoActive(engineId: integer, value: boolean)
- Set the magneto state on the specified engine

setStarterActive(engineId: integer, value: boolean)
- Set the electric starter state on the specified engine

shiftUp()
- Shift the gears up

shiftNeutral()
- Switch the gears to neutral

shiftDown()
- Shift the gears down

getInteractionVariableStates(): table{name: string = value: boolean}
- Get the states of the interaction variables on the vehicle
- These variables aren't called "interaction variables" by Immersive Vehicles itself, but is rather a name I thought would be the most fitting for them
- The interaction variables are normally changed by interacting with the vehicle physically (e.g. opening/closing doors)

setInteractionVariableActive(name: string, value: boolean)
- Set the state of an interaction variable. What they are is described in the getInteractionVariableStates documentation
- The available interaction variables can be acquired by calling getInteractionVariableStates

getLights2(): table{light: vehiclelight = value: boolean}
- Get the states of all lights

setLightActive(light: vehiclelight, value: boolean)
- Set the state of a light
- The available lights can be acquired by calling getLights

isHornActive(): boolean
- Check whether the horn is active

setHornActive(value: boolean)
- Set the state of the horn

isThrustReversed(): boolean
- Check whether reverse thrust is enabled

setThrustReversed(value: boolean)
- Set the state of the reverse thrust on the vehicle

getAutopilotState(): boolean, decimal, decimal
- Get whether the autopilot is active, it's target altitude and speed

setAutopilotActive(value: boolean)
- Set the state of autopilot

getFlapAngle(): integer, decimal, integer
- Get the target angle, the current angle and the selected notch of the flaps

setFlapNotch(value: integer)
- Set the flap notch to the specified value

getAileronTrim(): integer
- Get the aileron trim

setAileronTrim(value: integer)
- Set the aileron trim

getAileronAngle(): decimal, decimal
- Get the actual aileron angle and the left cooldown

setAileronAngle(value: decimal, cooldown: decimal)
- Set the aileron angle

getElevatorTrim(): integer
- Get the elevator trim

setElevatorTrim(value: integer)
- Set the elevator trim

getElevatorAngle(): decimal, decimal
- Get the actual elevator angle and the left cooldown

setElevatorAngle(value: decimal, cooldown: decimal)
- Set the elevator angle

getRudderTrim(): integer
- Get the rudder trim

setRudderTrim(value: integer)
- Set the rudder trim

getRudderAngle(): decimal, decimal
- Get the actual rudder angle and the left cooldown

setRudderAngle(value: decimal, cooldown: decimal)
- Set the rudder angle

getLandingGearState(): boolean, integer
- Get whether the landing gear is deployed and it's movement time

setLandingGearDeployed(value: boolean)
- Set the state of the landing gear

getCustomVariables(): table{variableName: string = value: boolean}
- Get the states of the custom variables

setCustomVariableActive(variableName: string, value: boolean)
- Set the state of a custom variable
- The available custom variables can be acquired by calling getCustomVariables

attachTrailer(): boolean, {string...}?
- Attempt to attach a trailer. Returns true if a trailer was attached, or false and an array of possible issues otherwise

detachTrailer()
- Detach the trailer

getTextEntries(): table{textEntryName: string = value: string}
- Get the text entries

setTextEntry(textEntryName: string, value: string)
- Set the value of a text entry

getSelectedBeacon(): string
- Get the name of the selected beacon

setSelectedBeacon(value: string)
- Set the selected beacon by it's name

getGuns(): table{key: number = details: table}
- Get the details of all guns

getConstants(): table{constantName: string = value: integer}
- Get the values of Immersive Vehicles constants

getLights(): table{light: string = value: boolean}
- DEPRECATED! Use getLights2 instead
- This method returns the legacy light names

getDoors(): table{doorId: string = value: boolean}
- DEPRECATED! Use getInteractionVariableStates instead
- This method is an alias for getInteractionVariableStates

setDoorOpen(doorId: string, value: boolean)
- DEPRECATED! Use setInteractionVariableActive instead
- This method is an alias for setInteractionVariableActive

isAutopilotActive(): boolean
- DEPRECATED! Use getAutopilotState instead
- This method returns the autopilot state

getCruiseState(): boolean, decimal
- DEPRECATED! Use getAutopilotState instead
- This method returns the autopilot state and the desired speed

setCruiseActive(value: boolean)
- DEPRECATED! Use setAutopilotActive instead
- This method is an alias for setAutopilotActive

setFlapAngle(value: decimal)
- DEPRECATED! Use setFlapNotch instead
- This method chooses the flap notch closest to the provided angle

getTrailer()
- DEPRECATED! An alternative to this method may be added in the future
- This method always returns nothing

attachTrailer(): false, "no_trailer_nearby"
- DEPRECATED! An alternative to this method may be added in the future
- This method always returns false, "no_trailer_nearby"

detachTrailer()
- DEPRECATED! An alternative to this method may be added in the future
- This method does nothing