Difference between revisions of "Programming Guide/Action List"

From Space Engineers Wiki
Jump to: navigation, search
m (Terminal Action and Property List)
m (Terminal Action and Property List)
 
Line 1,353: Line 1,353:
 
== Terminal Action and Property List ==
 
== Terminal Action and Property List ==
  
All terminal blocks have terminal actions and properties. Sub-interfaces share their parent interface's terminal actions and properties. Therefore, as IMyTerminalBlock has OnOff action, all blocks also have it. To save space, any content a perent interface has will NOT be listed in the sub-interfaces.  
+
All terminal blocks have terminal actions and properties. Sub-interfaces share their parent interface's terminal actions and properties. Therefore, as IMyTerminalBlock has OnOff action, all blocks also have it. To save space, any content a parent interface has will NOT be listed in the sub-interfaces.  
  
 
The tables in this wiki page had been redone (06/28/2020) to better display the information needed. The tables will show the fields and methods that have the same purposes as the terminal properties and actions. notice that not all fields or methods will be shown, only those which have terminal functions will be.  
 
The tables in this wiki page had been redone (06/28/2020) to better display the information needed. The tables will show the fields and methods that have the same purposes as the terminal properties and actions. notice that not all fields or methods will be shown, only those which have terminal functions will be.  

Latest revision as of 20:29, 22 February 2021

Contents

🚧🚧🚧 Under Construction 🚧🚧🚧
Attention - This page is currently being actively worked on, and may contain incomplete information


In addition to interface methods and properties given in the interface API, the in-game programming also provides terminal actions and terminal properties. Those terminal actions and properties behave like the options in the terminal system ingame that players can interact with.

Notice that terminal actions and properties should be obsolete, because the most block interfaces now provide API methods and properties that users can invoke.

Invoking Terminal Actions and Properties

The In-game Programming system provides methods for users to invoke the terminal properties, with a string parameter determining the name of the terminal action or property needed. Those methods belong to the IMyTerminalBlock interface. While all terminal blocks (Reactor, for example) are the sub-types of IMyTerminalBlock, they all have the methods. However, if the string parameter asks for the terminal action or property which does not exist in the given block, a NullReferenceException will be thrown[1].

In the programming namespace, the terminal actions are accessed as ITerminalAction interface and the terminal properties are ITerminalProperty.

Terminal Actions

To make the block apply action, call

block.ApplyAction(string actionName)

For example:

// Turn off a light
IMyInterior light;
// codes that you assign the actual light you want to turn off. 
light.ApplyAction("OnOff_Off"); // turn off the light

Terminal Properties

To access the terminal properties, two methods are provided. Unlike the action method above, those property methods are generic, which means a extra type parameter is needed when calling the methods.

To get a property of a block, call

block.GetValue<T>(string propertyName)

For example:

// Get the color of a light
IMyInteriorLight light;
// codes that you assign the actual light you want to get color from. 
Color color = light.GetValue<Color>("Color"); // get color

To set a property of a block, call

block.SetValue<T>(string propertyName, T property)

For example:

// Set the color of a light
Color color = new Color(50, 100, 200); // create a new color
IMyInteriorLight light;
// codes that you assign the actual light you want to set color
light.SetValue<Color>("Color", color); // set color

Terminal Action List (Old)

All terminal blocks have the following properties:

Interface name: this name is the name of the block in code, it can differ from the name as displayed in the building screen. E.g. Antenna interface name is IMyRadioAntenna - you need to use this interface if you want to get all antennas.

Parent: this is parent of the block (all blocks have IMyTerminalBlock as parent), this can be used for getting type of blocks instead of concrete block type. E.g. if you want to get all lights in grid you will use IMyLightingBlock, if you want only interior light you can use IMyInteriorLight.

Field: this is read only field available for block e.g. for IMyBeacon you can get Radius property. Based on this property you can increase/decrease radius of beacon.

Actions: these are all available actions for block with their names in game, so if you want to increase broadcast radius for antenna, you need to execute IncreaseRadius action for block.

Air Vent

Interface name: IMyAirVent
Parent: IMyFunctionalBlock
Fields:
bool CanPressurize { get; }
bool Depressurize { get; set; }
bool IsDepressurizing { get; } Depreciated
bool PressurizationEnabled { get; }
enum VentStatus Status { get; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off ->Toggle Block Off
Depressurize -> Depressurize On/Off
Depressurize_On -> Depressurize On
Depressurize_Off -> Depressurize Off

Advanced Rotor

Interface name: IMyMotorAdvancedStator
Parent: IMyMotorBase
Parent: IMyFunctionalBlock
Fields:
float Angle { get; }
float BrakingTorque { get; set; }
float Displacement { get; set; }
float LowerLimitDeg { get; set; }
float LowerLimitRad { get; set; }
bool RotorLock { get; set; }
float TargetVelocityRad { get; set; }
float TargetVelocityRPM { get; set; }
float Torque { get; set; }
float UpperLimitDeg { get; set; }
float UpperLimitRad { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off ->Toggle Block Off
Reverse -> Reverse
Attach -> Attach
IncreaseTorque -> Increase Torque
DecreaseTorque -> Decrease Torque
IncreaseBrakingTorque -> Increase Braking Torque
DecreaseBrakingTorque -> Decrease Braking Torque
IncreaseVelocity -> Increase Velocity
ResetVelocity -> Reset Velocity
IncreaseLowerLimit -> Increase Lower Limit
DecreaseLowerLimit -> Decrease Lower Limit
IncreaseUpperLimit -> Increase Upper Limit
DecreaseUpperLimit -> Decrease Upper Limit
IncreaseDisplacement -> Increase Rotor Displacement
DecreaseDisplacement -> Decrease Rotor Displacement

Antenna

Interface name: IMyRadioAntenna
Parent: IMyFunctionalBlock
Fields:
long AttachedProgrammableBlock { get; set; }
bool EnableBroadcasting { get; set; }
bool IgnoreAlliedBroadcast { get; set; }
bool IgnoreOtherBroadcast { get; set; }
bool IsBroadcasting { get; }
float Radius { get; set; }
bool ShowShipName { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseRadius -> Increase Broadcast radius
DecreaseRadius -> Decrease Broadcast radius
EnableBroadCast -> Toggle Broadcast On/Off
ShowShipName -> Toggle Showing Ship Name


Artificial Mass

Interface name: IMyVirtualMass
Parent: IMyFunctionalBlock
Fields: none

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off

Assembler

Interface name: IMyAssembler
Parent: IMyProductionBlock
Parent: IMyFunctionalBlock
Fields:
bool CooperativeMode { get; set; }
float CurrentProgress { get; }
bool DisassembleEnabled { get; }
MyAssemblerMode Mode { get; set; }
bool Repeating { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off
slaveMode -> Cooperative Mode On/Off

Battery

Interface name: IMyBatteryBlock
Parent: IMyFunctionalBlock
Fields:
float CurrentInput { get; }
float CurrentOutput { get; }
float CurrentStoredPower { get; }
bool HasCapacityRemaining { get; }
bool IsCharging { get; }
float MaxInput { get; }
float MaxOutput { get; }
float MaxStoredPower { get; }
bool OnlyDischarge { get; set; }
bool OnlyRecharge { get; set; }
bool SemiautoEnabled { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Recharge -> Recharge On/Off
Discharge -> Discharge On/Off
SemiAuto -> Semi-auto On/Off

Beacon

Interface name: IMyBeacon
Parent: IMyFunctionalBlock
Fields:
float Radius { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseRadius -> Increase Broadcast radius
DecreaseRadius -> Decrease Broadcast radius

Button Panel

Interface name: IMyButtonPanel
Fields:
bool AnyoneCanUse { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off

Camera

Interface name: IMyCameraBlock
Parent: IMyFunctionalBlock
Fields:
double AvailableScanRange { get; }
bool EnableRaycast { get; set; }
bool IsActive { get; }
float RaycastConeLimit { get; }
double RaycastDistanceLimit { get; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
View -> View

Cargo Containers

Interface name: IMyCargoContainer
Parent: IMyTerminalBlock
Fields: none

Actions: none

Cockpit, Control Station, Flight Seat

Interface name: IMyCockpit
Parent: IMyShipController
Fields:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
bool MainCockpit
bool HorizonIndicator

Actions:
ControlThrusters -> Control thrusters On/Off
ControlWheels -> Control wheels On/Off
HandBrake -> Handbrake On/Off
DampenersOverride -> Inertia dampeners On/Off
MainCockpit -> Main Cockpit On/Off
HorizonIndicator -> Show Horizon and Altitude On/Off

Collector

Interface name: IMyCollector
Parent: IMyFunctionalBlock
Fields:
bool UseConveyorSystem

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Connector

Interface name: IMyShipConnector
Parent: IMyFunctionalBlock
Fields:
bool ThrowOut
bool CollectAll
bool IsLocked

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
ThrowOut -> Throw Out On/Off
CollectAll -> Collect All On/Off
SwitchLock -> Switch lock

Control Panel

Interface name: IMyControlPanel
Fields: none
Actions:none

Conveyor Sorter

Interface name: IMyConveyorSorter
Fields:
bool DrainAll

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
DrainAll -> Drain All On/Off

Door

Interface name: IMyDoor
Parent: IMyFunctionalBlock
Fields:
bool Open

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Open -> Open/Close Door
Open_On -> Open Door
Open_Off -> Close Door

Drill

Interface name: IMyShipDrill
Parent: IMyFunctionalBlock
Fields:
bool UseConveyorSystem

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Gatling Gun

Interface name: IMySmallGatlingGun
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool Shoot
bool UseConveyor

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off
ShootOnce -> Shoots Once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off-> Shoot Off

Gatling Turret

Interface name: IMyLargeGatlingTurret
Parent: IMyLargeConveyorTurretBase
Parent: IMyLargeTurretBase
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool UseConveyorSystem
bool CanControl
float Range bool Shoot
bool EnableIdleMovement
bool TargetMeteors
bool TargetMoving
bool TargetMissiles
bool TargetSmallShips
bool TargetLargeShips
bool TargetCharacters
bool TargetStations
bool TargetNeutrals

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Control -> Control
IncreaseRange -> Increase Radius
DecreaseRange -> Decrease Radius
UseConveyor -> Use Conveyor System On/Off
ShootOnce -> Shoot once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off -> Shoot Off
IncreaseRange -> Increase Aiming Radius
DecreaseRange -> Decrease Aiming Radius
EnableIdleMovement -> Idle Movement On/Off
EnableIdleMovement_On -> Idle Movement On
EnableIdleMovement_Off -> Idle Movement Off
TargetMeteors -> Target meteors On/Off
TargetMeteors_On -> Target meteors On
TargetMeteors_Off -> Target meteors Off
TargetMoving -> Target moving On/Off
TargetMoving_On -> Target moving On
TargetMoving_Off -> Target moving Off
TargetMissiles -> Target missiles On/Off
TargetMissiles_On -> Target missiles On
TargetMissiles_Off -> Target missiles Off
TargetSmallShips -> Target small ships On/Off
TargetSmallShips_On -> Target small ships On
TargetSmallShips_Off -> Target small ships Off
TargetLargeShips -> Target large ship On/Off
TargetLargeShips_On -> Target large ship On
TargetLargeShips_Off -> Target large ship Off
TargetCharacters -> Target characters On/Off
TargetCharacters_On -> Target characters On
TargetCharacters_Off -> Target characters Off
TargetStations -> Target stations On/Off
TargetStations_On -> Target stations On
TargetStations_Off -> Target stations Off
TargetNeutrals -> Target neutrals On/Off
TargetNeutrals_On -> Target neutrals On
TargetNeutrals_Off -> Target neutrals Off

Gravity Generator

Interface name: IMyGravityGenerator
Parent: IMyGravityGeneratorBase
Parent: IMyFunctionalBlock
Fields:
float FieldWidth
float FieldHeight
float FieldDepth
float Gravity

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseWidth -> Increase Field width
DecreaseWidth -> Decrease Field width
IncreaseHeight -> Increase Field height
DecreaseHeight -> Decrease Field height
IncreaseDepth -> Increase Field depth
DecreaseDepth -> Decrease Field depth
IncreaseGravity -> Increase Acceleration
DecreaseGravity -> Decrease Acceleration

Grinder

Interface name: IMyShipGrinder
Parent: IMyShipToolBase
Parent: IMyFunctionalBlock
Fields: none

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Gyroscope

Interface name: IMyGyro
Parent: IMyFunctionalBlock
Fields:
float GyroPower
bool GyroOverride
float Yaw
float Pitch
float Roll

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreasePower -> Increase Power
DecreasePower -> Decrease Power
Override -> Override controls On/Off
IncreaseYaw -> Increase Yaw override
DecreaseYaw -> Decrease Yaw override
IncreasePitch -> Increase Pitch override
DecreasePitch -> Decrease Pitch override
IncreaseRoll -> Increase Roll override
DecreaseRoll -> Decrease Roll override

Interior Light

Interface name: IMyInteriorLight
Parent: IMyLightingBlock
Parent: IMyFunctionalBlock
Fields:
float BlinkIntervalSeconds { get; set; }
float BlinkLength { get; set; }
float BlinkOffset { get; set; }
Color Color { get; set; }
float Falloff { get; set; }
float Intensity { get; set; }
float Radius { get; set; }

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseRadius -> Increase Radius
DecreaseRadius -> Decrease Radius
IncreaseBlink Interval -> Increase Blink Interval
DecreaseBlink Interval -> Decrease Blink Interval
IncreaseBlink Lenght -> Increase Blink Length
DecreaseBlink Lenght -> Decrease Blink Length
IncreaseBlink Offset -> Increase Blink Offset
DecreaseBlink Offset -> Decrease Blink Offset

Interior Turret

Interface name: IMyLargeInteriorTurret
Parent: IMyLargeTurretBase
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool CanControl
float Range
bool Shoot
bool EnableIdleMovement
bool TargetMeteors
bool TargetMoving
bool TargetMissiles
bool TargetSmallShips
bool TargetLargeShips
bool TargetCharacters
bool TargetStations
bool TargetNeutrals

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Control -> Control
IncreaseRange -> Increase Radius
DecreaseRange -> Decrease Radius
ShootOnce -> Shoot once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off -> Shoot Off
IncreaseRange -> Increase Aiming Radius
DecreaseRange -> Decrease Aiming Radius
EnableIdleMovement -> Idle Movement On/Off
EnableIdleMovement_On -> Idle Movement On
EnableIdleMovement_Off -> Idle Movement Off
TargetMeteors -> Target meteors On/Off
TargetMeteors_On -> Target meteors On
TargetMeteors_Off -> Target meteors Off
TargetMoving -> Target moving On/Off
TargetMoving_On -> Target moving On
TargetMoving_Off -> Target moving Off
TargetMissiles -> Target missiles On/Off
TargetMissiles_On -> Target missiles On
TargetMissiles_Off -> Target missiles Off
TargetSmallShips -> Target small ships On/Off
TargetSmallShips_On -> Target small ships On
TargetSmallShips_Off -> Target small ships Off
TargetLargeShips -> Target large ship On/Off
TargetLargeShips_On -> Target large ship On
TargetLargeShips_Off -> Target large ship Off
TargetCharacters -> Target characters On/Off
TargetCharacters_On -> Target characters On
TargetCharacters_Off -> Target characters Off
TargetStations -> Target stations On/Off
TargetStations_On -> Target stations On
TargetStations_Off -> Target stations Off
TargetNeutrals -> Target neutrals On/Off
TargetNeutrals_On -> Target neutrals On
TargetNeutrals_Off -> Target neutrals Off

Jump Drive

Interface name: IMyJumpDrive
Parent: IMyFunctionalBlock
Fields:
bool Recharge
bool JumpDistance

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Recharge -> Recharge On/Off
Recharge_On -> Recharge On
Recharge_Off -> Recharge Off
IncreaseJumpDistance -> Increase jump distance
DecreaseJumpDistance -> Decrease jump distance

Landing Gear

Interface name: IMyLandingGear
Parent: IMyFunctionalBlock
Fields:
bool Autolock
float BreakForce

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Lock -> Lock
Unlock -> Unlock
SwitchLock -> Switch lock
Autolock -> Autolock On/Off
IncreaseBreakForce -> Increase Break Force
DecreaseBreakForce -> Decrease Break Force

Laser Antenna

Interface name: IMyLaserAntenna
Parent: IMyFunctionalBlock
Fields:
bool isPerm

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Idle -> Idle
PasteGpsCoords -> Paste coordinates
ConnectGPS -> Connect to coordinates
isPerm -> Permanent connection On/Off

Medical Room

Interface name: IMyMedicalRoom
Parent: IMyFunctionalBlock
Fields:
bool TakeOwnership
bool SetFaction
Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off

Merge Block

Interface name: IMyShipMergeBlock
Parent: IMyFunctionalBlock
Fields: none

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off

Missile Turret

Interface name: IMyMissileTurret
Parent: IMyLargeConveyorTurretBase
Parent: IMyLargeTurretBase
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool CanControl
float Range
bool Shoot
bool EnableIdleMovement
bool TargetMeteors
bool TargetMoving
bool TargetMissiles
bool TargetSmallShips
bool TargetLargeShips
bool TargetCharacters
bool TargetStations
bool TargetNeutrals

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Control -> Control
IncreaseRange -> Increase Radius
DecreaseRange -> Decrease Radius
ShootOnce -> Shoot once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off -> Shoot Off
IncreaseRange -> Increase Aiming Radius
DecreaseRange -> Decrease Aiming Radius
UseConveyor -> Use Conveyor System On/Off
EnableIdleMovement -> Idle Movement On/Off
EnableIdleMovement_On -> Idle Movement On
EnableIdleMovement_Off -> Idle Movement Off
TargetMeteors -> Target meteors On/Off
TargetMeteors_On -> Target meteors On
TargetMeteors_Off -> Target meteors Off
TargetMoving -> Target moving On/Off
TargetMoving_On -> Target moving On
TargetMoving_Off -> Target moving Off
TargetMissiles -> Target missiles On/Off
TargetMissiles_On -> Target missiles On
TargetMissiles_Off -> Target missiles Off
TargetSmallShips -> Target small ships On/Off
TargetSmallShips_On -> Target small ships On
TargetSmallShips_Off -> Target small ships Off
TargetLargeShips -> Target large ship On/Off
TargetLargeShips_On -> Target large ship On
TargetLargeShips_Off -> Target large ship Off
TargetCharacters -> Target characters On/Off
TargetCharacters_On -> Target characters On
TargetCharacters_Off -> Target characters Off
TargetStations -> Target stations On/Off
TargetStations_On -> Target stations On
TargetStations_Off -> Target stations Off
TargetNeutrals -> Target neutrals On/Off
TargetNeutrals_On -> Target neutrals On
TargetNeutrals_Off -> Target neutrals Off

Ore Detector

Interface name: IMyOreDetector
Parent: IMyFunctionalBlock
Fields:
bool BroadcastUsingAntennas

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
BroadcastUsingAntennas -> Broadcast using antennas On/Off

Oxygen Farm

Interface name: IMyOxygenFarm
Parent: IMyFunctionalBlock
Fields: none

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off

Oxygen Generator

Interface name: IMyOxygenGenerator
Parent: IMyFunctionalBlock
Fields:
bool Auto-Refill

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Refill -> Refill Bottles
Auto-Refill -> Auto-Refill On/Off

Oxygen/Hydrogen Tank

Interface name: IMyOxygenTank
Parent: IMyFunctionalBlock
Fields:
bool Stockpile
bool Auto-Refill

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Stockpile -> Stockpile On/Off
Stockpile_On -> Stockpile On
Stockpile_Off -> Stockpile Off
Refill -> Refill Bottles
Auto-Refill -> Auto-Refill On/Off

Passenger Seat

Interface name: IMyCockpit
Parent: IMyShipController
Fields:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride

Actions:
ControlThrusters -> Control thrusters On/Off
ControlWheels -> Control wheels On/Off
HandBrake -> Handbrake On/Off
DampenersOverride -> Inertia dampeners On/Off

Piston

Interface name: IMyPistonBase
Parent: IMyFunctionalBlock
Fields:
bool OnOff
bool ShowInTerminal
bool ShowInToolbarConfig
bool ShowOnHUD
float Velocity
float MinLimit "LowerLimit"
float MaxLimit "UpperLimit"
PistonStatus Status
float "Weld speed"
bool "Force weld"

Strings to be used in methods like "bool GetValueBool(string propertyId)"

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Reverse -> Reverse
Extend -> Extend
Retract -> Retract
IncreaseVelocity -> Increase Velocity
DecreaseVelocity -> Decrease Velocity
ResetVelocity -> Reset Velocity
IncreaseUpperLimit -> Increase Maximal distance
DecreaseUpperLimit -> Decrease Maximal distance
IncreaseLowerLimit -> Increase Minimal distance
DecreaseLowerLimit -> Decrease Minimal distance
IncreaseWeld speed -> Increase Safety lock speed
DecreaseWeld speed -> Decrease Safety lock speed
IncreaseMaxImpulseAxis
DecreaseMaxImpulseAxis
IncreaseMaxImpulseNonAxis
DecreaseMaxImpulseNonAxis
Force weld -> Safety override lock On/Off
Force weld
IncreaseSafetyDetach
DecreaseSafetyDetach
ShareInertiaTensor
Add Top Part

Programmable block

Interface name: IMyProgrammableBlock
Parent: IMyFunctionalBlock
Fields:
bool IsRunning

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Run -> Run
RunWithDefaultArgument -> Run with default argument

Projector

Interface name: IMyProjector
Parent: IMyFunctionalBlock
Fields:
bool OnOff
bool ShowInTerminal
bool ShowInToolbarConfig
bool ShowOnHUD
bool KeepProjection
bool ShowOnlyBuildable
float X
float Y
float Z
float RotX
float RotY
float RotZ
bool InstantBuilding
bool GetOwnership
float NumberOfProjections
float NumberOfBlocks

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
KeepProjection -> Keep Projection On/Off
IncreaseX -> Increase horizontal offset
DecreaseX -> Decrease horizontal offset
IncreaseY -> Increase vertical offset
DecreaseY -> Decrease vertical offset
IncreaseZ -> Increase forward offset
DecreaseZ -> Decrease forward offset
IncreaseRotX -> Increase Pitch
DecreaseRotX -> Decrease Pitch
IncreaseRotY -> Increase Yaw
DecreaseRotY -> Decrease Yaw
IncreaseRotZ -> Increase Roll
DecreaseRotZ -> Decrease Roll
IncreaseScale
DecreaseScale
SpawnProjection -> Spawn projection
IncreaseFontSize
DecreaseFontSize
IncreaseTextPaddingSlider
DecreaseTextPaddingSlider
IncreaseChangeIntervalSlider
DecreaseChangeIntervalSlider
PreserveAspectRatio

Reactor (Small, Large)

Interface name: IMyReactor
Parent: IMyFunctionalBlock
Fields:
bool UseConveyorSystem

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Refinery and Arc Furnace

Interface name: IMyRefinery
Parent: IMyProductionBlock
Parent: IMyFunctionalBlock
Fields:
bool UseConveyorSystem

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Reloadable Rocket Launcher

Interface name: IMySmallMissileLauncherReload
Parent: IMySmallMissileLauncherReload
Parent: IMySmallMissileLauncher
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool Shoot

Actions:
Off -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off
ShootOnce -> Shoot once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off -> Shoot Off

Remote Control

Interface name: IMyRemoteControl
Parent: IMyShipController
Fields:
bool ControlThrusters
bool ControlWheels
bool HandBrake
bool DampenersOverride
bool MainCockpit
bool HorizonIndicator
bool AutoPilot
bool CollisionAvoidance
bool DockingMode

Actions:
ControlThrusters -> Control thrusters On/Off
ControlWheels -> Control wheels On/Off
HandBrake -> Handbrake On/Off
DampenersOverride -> Inertia dampeners On/Off
MainCockpit -> Main cockpit On/Off
AutoPilot -> Autopilot On/Off
AutoPilot_On -> Autopilot On
AutoPilot_Off -> Autopilot Off
CollisionAvoidance -> Collision avoidance On/Off
CollisionAvoidance_On -> Collision avoidance On
CollisionAvoicance_Off -> Collision avoidance Off
DockingMode -> Precision mode On/Off
DockingMode_On -> Precision mode On
DockingMode_Off -> Precision mode Off
Forward -> Set front part of remote control as reference for autopilot
Backward -> Set rear part of remote control as reference for autopilot
Left -> Set left part of remote control as reference for autopilot
Right -> Set right part of remote control as reference for autopilot
Up -> Set top part of remote control as reference for autopilot
Down -> Set bottom part of remote control as reference for autopilot

Rocket Launcher

Interface name: IMySmallMissileLauncher
Parent: IMyUserControllableGun
Parent: IMyFunctionalBlock
Fields:
bool Shoot
s

Actions:
Off -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off
ShootOnce -> Shoot once
Shoot -> Shoot On/Off
Shoot_On -> Shoot On
Shoot_Off -> Shoot Off

Rotor

Interface name: IMyMotorStator
Parent: IMyMotorBase
Parent: IMyFunctionalBlock
Fields:
bool IsAttached
float Torque
float BrakingTorque
float Velocity
float LowerLimit
float UpperLimit
float Displacement

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Reverse -> Reverse
Detach -> Detach
Attach -> Attach
IncreaseTorque -> Increase Torque
DecreaseTorque -> Decrease Torque
IncreaseBrakingTorque -> Increase Braking tor.
DecreaseBrakingTorque -> Decrease Braking tor.
IncreaseVelocity -> Increase Velocity
DecreaseVelocity -> Decrease Velocity
ResetVelocity -> Reset Velocity
IncreaseLowerLimit -> Increase Lower limit
DecreaseLowerLimit -> Decrease Lower limit
IncreaseUpperLimit -> Increase Upper limit
DecreaseUpperLimit -> Decrease Upper limit
IncreaseDisplacement -> Increase Rotor displacement
DecreaseDisplacement -> Decrease Rotor displacement

Sensor

Interface name: IMySensorBlock
Parent: IMyFunctionalBlock
Fields:
float LeftExtend
float RightExtend
float TopExtend
float BottomExtend
float FrontExtend
float BackExtend
bool DetectPlayers
bool DetectFloatingObjects
bool DetectSmallShips
bool DetectLargeShips
bool DetectStations
bool DetectAsteroids
bool IsActive

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseLeft -> Increase Left extent
DecreaseLeft -> Decrease Left extent
IncreaseRight -> Increase Right extent
DecreaseRight -> Decrease Right extent
IncreaseBottom -> Increase Bottom extent
DecreaseBottom -> Decrease Bottom extent
IncreaseTop -> Increase Top extent
DecreaseTop -> Decrease Top extent
IncreaseBack -> Increase Back extent
DecreaseBack -> Decrease Back extent
IncreaseFront -> Increase Front extent
DecreaseFront -> Decrease Front extent
Detect Players -> Detect players On/Off
Detect Floating Objects -> Detect floating objects On/Off
Detect Small Ships -> Detect small ships On/Off
Detect Large Ships -> Detect large ships On/Off
Detect Stations -> Detect stations On/Off
Detect Asteroids -> Detect Asteroids On/Off

Solar Panel

Interface name: IMySolarPanel
Fields: none
Actions: none

Sound Block

Interface name: IMySoundBlock
Parent: IMyFunctionalBlock
Fields:
float Volume
float Range
bool IsSoundSelected
float LoopPeriod

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseVolumeSlider -> Increase Volume
DecreaseVolumeSlider -> Decrease Volume
IncreaseRangeSlider -> Increase Range
DecreaseRangeSlider -> Decrease Range
PlaySound -> Play
StopSound -> Stop
IncreaseLoopableSlider -> Increase Loop time
DecreaseLoopableSlider -> Decrease Loop time

Space Balls

Interface name: IMySpaceball
Parent: IMyVirtualMass
Parent: IMyFunctionalBlock
Fields:
float VirtualMass
bool EnableBroadCast

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseVirtualMass -> Increase Virtual Mass
DecreaseVirtualMass -> Decrease Virtual Mass
EnableBroadCast -> Enable broadcasting On/Off

Spherical Gravity Generator

Interface name: IMyGravityGeneratorSphere
Parent: IMyGravityGeneratorBase
Parent: IMyFunctionalBlock
Fields:
float Radius
float Gravity

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseRadius -> Increase Radius
DecreaseRadius -> Decrease Radius
IncreaseGravity -> Increase Acceleration
DecreaseGravity -> Decrease Acceleration

Spotlight

Interface name: IMyReflectorLight
Parent: IMyLightingBlock
Parent: IMyFunctionalBlock
Fields:
float Radius
float Intensity
float BlinkIntervalSeconds
float BlinkLenght
float BlinkOffset

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseRadius -> Increase Radius
DecreaseRadius -> Decrease Radius
IncreaseBlink Interval -> Increase Blink Interval
DecreaseBlink Interval -> Decrease Blink Interval
IncreaseBlink Lenght -> Increase Blink Length
DecreaseBlink Lenght -> Decrease Blink Length
IncreaseBlink Offset -> Increase Blink Offset
DecreaseBlink Offset -> Decrease Blink Offset

Text Panel, LCD, Wide LCD

Interface name: IMyTextPanel
Parent: IMyFunctionalBlock
Fields:
float FontSize
String FontColor
String BackgroundColor
float ChangeIntervalSlider

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseFontSize -> Increase Font Size
DecreaseFontSize -> Decrease Font Size
IncreaseChangeIntervalSlider -> Increase Image change interval
DecreaseChangeIntervalSlider -> Decrease Image change interval

Thruster (Ion, Hydrogen, Atmospheric)

Interface name: IMyThrust
Parent: IMyFunctionalBlock
Fields:
float Override

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseOverride -> Increase thrust override
DecreaseOverride -> Decrease thrust override

Timer Block

Interface name: IMyTimerBlock
Parent: IMyFunctionalBlock
Fields:
bool IsCountingDown
float TriggerDelay

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
IncreaseTriggerDelay -> Increase Delay
DecreaseTriggerDelay -> Decrease Delay
TriggerNow -> Trigger now
Start -> Start
Stop -> Stop

Warhead

Interface name: IMyWarhead
Fields:
bool IsCountingDown
float DetonationTime

Actions:
IncreaseDetonationTime -> Increase Detonation time
DecreaseDetonationTime -> Decrease Detonation time
StartCountdown -> Start countdown
StopCountdown -> Stop countdown
Safety -> Safety On/Off
Detonate -> Detonate

Welder

Interface name: IMyShipWelder
Parent: IMyShipToolBase
Parent: IMyFunctionalBlock

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
UseConveyor -> Use Conveyor System On/Off

Wheel Suspension (1x1, 3x3, 5x5)

Interface name: IMyMotorSuspension
Parent: IMyMotorBase
Parent: IMyFunctionalBlock
Fields:
bool Steering
bool Propulsion
float Damping
float Strength
float Friction
float Power

Actions:
OnOff -> Toggle block On/Off
OnOff_On -> Toggle block On
OnOff_Off -> Toggle block Off
Steering -> Steering On/Off
Propulsion -> Propulsion On/Off
IncreaseDamping -> Increase Damping
DecreaseDamping -> Decrease Damping
IncreaseStrength -> Increase Strength
DecreaseStrength -> Decrease Strength
IncreaseFriction -> Increase Friction
DecreaseFriction -> Decrease Friction
IncreasePower -> Increase Power
DecreasePower -> Decrease Power

Terminal Action and Property List

All terminal blocks have terminal actions and properties. Sub-interfaces share their parent interface's terminal actions and properties. Therefore, as IMyTerminalBlock has OnOff action, all blocks also have it. To save space, any content a parent interface has will NOT be listed in the sub-interfaces.

The tables in this wiki page had been redone (06/28/2020) to better display the information needed. The tables will show the fields and methods that have the same purposes as the terminal properties and actions. notice that not all fields or methods will be shown, only those which have terminal functions will be.

In the tables listed below, some properties will be displayed (not to confuse with terminal properties):

Interface Name: the name of the interface in the ingame scripting API.

Terminal Action: the names of terminal actions and their descrptions.

Method: the methods in the interface API that do the same thing as terminal actions. It is recommanded to use interface methods.

Terminal Property: the names of terminal properties.

Field: the fields in the interface API that do the same thing as terminal properties. It is recommanded to use interface fields.

IMyTerminalBlock

Description Terminal Actions Method Terminal Property Field
Toggle Show on HUD On/Off
"ShowOnHUD"

bool "ShowOnHUD"
bool ShowOnHUD {get; set;}
Show on HUD On
"ShowOnHUD_On"
Show on HUD On
"ShowOnHUD_Off"
Name


StringBuilder "Name"
string Name {get;}
Show in Inventory


bool "ShowInInventory"
bool ShowInInventory {get; set;}
Show in Terminal


bool "ShowInTerminal"
bool ShowInTerminal {get; set;}
Show in Toolbar Config


bool "ShowInToolbarConfig"
bool ShowInToolbarConfig {get; set;}

IMyCargoContainer

Cargo Container does not have it's own members except those inherited from IMyTerminalBlock.

Description Terminal Action Method Terminal Property Field

IMyFunctionalBlock

IMyFunctionalBlock is the parent of most terminal blocks. It can be turned on and off.

Description Terminal Action Method Terminal Property Field
Toggle Block On/Off
"OnOff"
void RequestEnable(bool enable) Obsolete: Use the setter of Enabled
bool "OnOff"
bool Enabled {get; set;}
Toggle Block On
"OnOff_ON"
Toggle Block Off
"OnOff_Off"
IMyAirVent
Description Terminal Action Method Terminal Property Field
Toggle Depressurize On/Off
"Depressurize"

bool "Depressurize"
bool Depressurize {get; set;}
Depressurize On
"Depressurize_On"
Depressurize Off
"Depressurize_Off"
IMyAritificialMassBlock
Description Terminal Action Method Terminal Property Field
IMyBatteryBlock
Description Terminal Action Method Terminal Property Field
Enable Auto
"Auto"

long "ChargeMode"
ChargeMode ChargeMode {get; set;}
Toggle Recharge On/Off
"Recharge"
bool OnlyRecharge {get; set;} Obsolete: Use ChargeMode instead
Toggle Discharge On/Off
"Discharge"
bool OnlyDischarge {get; set;} Obsolete: Use ChargeMode instead
IMyBeacon
Description Terminal Action Method Terminal Property Field
Increase Broadcast Radius
"IncreaseRadius"

float "Radius"
float Radius {get; set;}
Decrease Broadcast Radius
"DecreaseRadius"
Text Show On HUD


StringBuilder "HudText"
string HudText {get; set;}
IMyDoor

There are different types of doors. They have similar behaviors.

Description Terminal Action Method Terminal Property Field
Toggle Anyone Can Use On/Off
"AnyoneCanUse"

bool "AnyoneCanUse"

Toggle Door Open/Closed
"Open"
void ToggleDoor()
bool "Open"
bool Open {get;} Obsolete: Use the Status instead
DoorStatus Status {get;}
Open Door
"Open_On"
void OpenDoor()
Close Door
"Open_Off"
void CloseDoor()
IMyAdvancedDoor
Description Terminal Action Method Terminal Property Field
IMyAirtightHangarDoor
Description Terminal Action Method Terminal Property Field
IMyAirtightSlideDoor
Description Terminal Action Method Terminal Property Field
IMyProductionBlock
Description Terminal Action Method Terminal Property Field
Toggle Use Conveyor System On/Off
"UseConveyor"

bool "UseConveyor"
bool UseConveyorSystem {get; set;}
IMyAssembler
Description Terminal Action Method Terminal Property Field
Cooperative Mode On/Off
"slaveMode"

bool "slaveMode"
bool CooperativeMode {get; set;}
IMyRefinery
Description Terminal Action Method Terminal Property Field

IMyWarhead

Description Terminal Action Method Terminal Property Field
Increase Detonation Time
"IncreaseDetonationTime"

float "DetonationTime"
float DetonationTime {get; set;}
Decrease Detonation Time
"DecreaseDetonationTime"
Detonate
"Detonate"
void Detonate()


Toggle Arm Warhead On/Off
"Safety"

bool "Safety"
bool IsArmed {get; set;}
Start Countdown
"StartCountdown"
bool StartCountdown()

bool IsCountingDown {get;}
Stop Countdown
"StopCountdown
bool StopCountdown()
  1. https://github.com/malware-dev/MDK-SE/wiki/Terminal-Properties-and-Actions