{"id":48477,"date":"2026-06-02T15:21:34","date_gmt":"2026-06-02T12:21:34","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/"},"modified":"2026-06-02T15:21:34","modified_gmt":"2026-06-02T12:21:34","slug":"create-aeronautics-thrusters-and-things","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/","title":{"rendered":"Create Aeronautics: Thrusters and Things"},"content":{"rendered":"<p>![title_text](https:\/\/cdn.modrinth.com\/data\/cached_images\/cb50d533e4501df3bdbc3388ef375ddb5fa43e6b.png)<\/p>\n<p># \ud83c\udf89 NOW WITH PONDERS!<\/p>\n<p>## Showcase<\/p>\n<details>\n<summary>Spoiler<\/summary>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/lWIy_6SdxhA\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<\/details>\n<p>> Take your Create Aeronautics contraptions to the next level.<\/p>\n<p>Join the Discord!<\/p>\n<p>Realtime live Issue Tracker!<\/p>\n<p>Realtime Roadmap for planned features and what I&#8217;m currently working on!<\/p>\n<p>**Create Thrusters and Things** adds propulsion, steering, power, and control systems built for ships, aircraft, and advanced moving machines. Build anything from a simple hover platform to a fully scriptable flight rig.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd27 What you can build now<\/p>\n<p>| | |<br \/>\n|&#8212;|&#8212;|<br \/>\n| \ud83d\udd25 | Fuel-powered and energy-powered thruster systems |<br \/>\n| \ud83c\udfaf | Steerable propulsion setups with specialised bearings |<br \/>\n| \ud83d\udd79\ufe0f | Manual flight controls with joystick input and controller channels |<br \/>\n| \u2699\ufe0f | Smart mechanical routing with dual-lane gearbox behavior |<br \/>\n| \u26a1 | Full power loops with generation, transfer, and motor output |<br \/>\n| \ud83e\udd1d | Utility systems for docking, grabbing, and automation |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83e\uddf1 New Blocks<\/p>\n<p>| Block | Block | Block |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| Thruster | Thruster Bearing | Analogue Joystick |<br \/>\n| Contraption Controller | Industrial Alternator | Smart Gearbox |<br \/>\n| Advanced Data Link | Andesite Cable | Industrial Motor |<br \/>\n| Variable Transmission | Claw | Physics Gantry |<br \/>\n| Powered Zipline |<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83c\udf92 New Items<\/p>\n<p>**Upgrades**<br \/>\n&#8211; Processing Upgrades \u2014 Smoking, Smelting, Haunting *(Tiers 1\u20134)*<br \/>\n&#8211; Propulsion Upgrades *(Tiers 1\u20134)*<\/p>\n<p>**Tools &#038; Accessories**<br \/>\n&#8211; Thruster Lens<br \/>\n&#8211; Physics Staff<br \/>\n&#8211; Physics Goggles<br \/>\n&#8211; Contraption Network Linker<br \/>\n&#8212;<\/p>\n<p>## \u2728 Feature Highlights<\/p>\n<p>&#8211; \ud83c\udfa8 **Color your thruster plume\/beam** with dyes for custom builds.<br \/>\n&#8211; \ud83d\udd07 **Run thrusters in quieter Peaceful mode** for cleaner visuals and reduced noise.<br \/>\n&#8211; \ud83d\udd06 **Switch between classic fuel and Focused FE beam** operation with the Thruster Lens.<br \/>\n&#8211; \ud83d\udd17 **Feed fuel and FE through mounted bearing\/gimbal assemblies** for distributed propulsion setups.<br \/>\n&#8211; \ud83d\udd00 **Use Smart Gearbox** in passthrough or servo workflows for advanced control layouts.<br \/>\n&#8211; \ud83d\uddb1\ufe0f **Flip face output direction** on Smart Gearbox with simple right-click interaction.<br \/>\n&#8211; \ud83d\udcc9 **Slow down rotation with redstone** using the Variable Transmission.<br \/>\n&#8211; \ud83d\udce6 **Bulk process faster and more efficiently** by placing depots or belts along the sides of the thruster plume\/beam and in front of it to process everything around it!<br \/>\n&#8211; \ud83d\uddfa\ufe0f **Add and store up to 15 maps** inside the Navigation table at once, and pick one to set the table&#8217;s navigation to at any time!<br \/>\n&#8211; \ud83e\udd7d **Use the Physics Goggles** to see real-time physics information and contraption diagrams for any contraption you look at!<br \/>\n&#8211; \ud83d\udedc **Use the Contraption Network Linker** to wirelessly control redstone capable blocks from the Contraption Controller without needing redstone links!<br \/>\n&#8211; \ud83e\uddf0 **Tom&#8217;s Simple Storage** Wireless terminal compatibility with Aeronautics has been added!<br \/>\n&#8211; And so much more!<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcbb Automation Ready<\/p>\n<p>**CC:Tweaked** peripheral support for major systems, including thrusters, bearings, gearbox, joystick, controller, and more. Control single devices or orchestrate attached thruster groups from code.<\/p>\n<p>> \ud83d\udcd6 ComputerCraft peripheral snippets for all you programmers!<\/p>\n<p>&#8212;<\/p>\n<p>*Build bigger. Fly farther. Automate everything.*<\/p>\n<details>\n<summary>Spoiler<\/summary>\n<p># Create Thrusters &#038; Things \u2014 ComputerCraft API<\/p>\n<p>This document covers every ComputerCraft peripheral exposed by this addon.<\/p>\n<p>## Getting Started<\/p>\n<p>ComputerCraft peripherals let you control mod blocks from Lua scripts running on a Computer or Pocket Computer. To connect to a block, place the computer next to it (or use a Wired Modem) and use `peripheral.find()` or `peripheral.wrap()`:<\/p>\n<p>&#8220;`lua<br \/>\nlocal t = peripheral.find(&#8220;thruster&#8221;)<br \/>\nif t then<br \/>\n  t.setEnabled(true)<br \/>\n  t.setThrottle(0.5)<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>Blocks default to `&#8221;auto&#8221;` mode, which means they&#8217;ll respond to whatever input is present \u2014 redstone, computer, or manual. You can lock a block to a specific control mode through its GUI or via `setControlMode()` if you want to prevent other inputs from interfering.<\/p>\n<p>&#8212;<\/p>\n<p>## Peripherals<\/p>\n<p>| Type string | Block |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `thruster` | Thruster |<br \/>\n| `thruster_bearing` | Thruster Bearing |<br \/>\n| `bidirectional_gearbox` | Smart Gearbox |<br \/>\n| `analogue_contraption_controller` | Contraption Controller |<br \/>\n| `analogue_joystick` | Analogue Joystick |<br \/>\n| `claw` | Claw |<br \/>\n| `rope_winch_cable` | Rope Winch Cable (when a Claw is attached) |<\/p>\n<p>&#8212;<\/p>\n<p>## 1. Thruster<\/p>\n<p>**Type:** `&#8221;thruster&#8221;`<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `setThrottle(throttle)` | \u2014 | Sets throttle. Range `0.0` to `1.0`. Throws if out of range. |<br \/>\n| `getThrottle()` | `number` | Returns current throttle. |<br \/>\n| `clearThrottleOverride()` | \u2014 | Removes the computer throttle override, returning control to redstone or auto. |<br \/>\n| `setEnabled(enabled)` | \u2014 | Enables or disables the thruster. |<br \/>\n| `isEnabled()` | `boolean` | |<br \/>\n| `isActive()` | `boolean` | Whether the thruster is actively firing. |<br \/>\n| `getFuel()` | `number` (mB) | Current fuel level. |<br \/>\n| `getFuelCapacity()` | `number` (mB) | Maximum fuel capacity. |<br \/>\n| `getFuelType()` | `string` | Fluid ID of current fuel, or empty string. |<br \/>\n| `getBurnTimeSeconds()` | `number` | Estimated burn time remaining. |<br \/>\n| `getThrust()` | `number` | Target thrust value. |<br \/>\n| `getRealThrust()` | `number` | Actual thrust being applied. |<br \/>\n| `getLiftCapacity()` | `number` | Max lift this thruster can provide. |<br \/>\n| `getAirflow()` | `number` | Current airflow value. |<br \/>\n| `getRedstoneSignal()` | `number` (`0`\u2013`15`) | Incoming redstone signal strength. |<br \/>\n| `getControlMode()` | `string` | Current mode: `auto`, `redstone`, or `computer`. |<br \/>\n| `setControlMode(mode)` | \u2014 | Set control mode. |<br \/>\n| `getName()` | `string` | Custom display name. |<br \/>\n| `setName(name)` | \u2014 | Set a custom display name. |<br \/>\n| `isSoulMode()` | `boolean` | Whether soul mode (peaceful\/quiet operation) is enabled. |<br \/>\n| `setSoulMode(enabled)` | \u2014 | Toggle soul mode. |<br \/>\n| `getStatus()` | `table` | Full status snapshot (see below). |<\/p>\n<p>### `getStatus()` return shape<\/p>\n<p>&#8220;`lua<br \/>\n{<br \/>\n  enabled = boolean,<br \/>\n  throttle = number,<br \/>\n  computerThrottle = number,<br \/>\n  controlMode = string,<br \/>\n  fuel = number,<br \/>\n  fuelCapacity = number,<br \/>\n  fuelType = string,<br \/>\n  burnTimeSeconds = number,<br \/>\n  thrust = number,<br \/>\n  realThrust = number,<br \/>\n  liftCapacity = number,<br \/>\n  airflow = number,<br \/>\n  active = boolean,<br \/>\n  soulMode = boolean,<br \/>\n  redstoneSignal = number,<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal t = peripheral.find(&#8220;thruster&#8221;)<br \/>\nif t then<br \/>\n  t.setControlMode(&#8220;computer&#8221;)<br \/>\n  t.setEnabled(true)<br \/>\n  t.setThrottle(0.75)<br \/>\n  print(&#8220;Real thrust:&#8221;, t.getRealThrust())<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 2. Thruster Bearing<\/p>\n<p>**Type:** `&#8221;thruster_bearing&#8221;`<\/p>\n<p>Controls the bearing&#8217;s pivot angle and steering mode, and manages any thrusters attached to it as a group. Most thruster methods accept either a specific thruster ID or `&#8221;all&#8221;` to target every attached thruster at once.<\/p>\n<p>### Bearing control<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `getName()` \/ `setName(name)` | `string` \/ \u2014 | Custom display name. |<br \/>\n| `getFacing()` \/ `setFacing(direction)` | `string` \/ \u2014 | Facing direction. |<br \/>\n| `getPivotAngle()` | `number` (degrees) | Current pivot angle. |<br \/>\n| `setPivotAngle(angleDeg)` | \u2014 | Set pivot angle directly (servo\/computer mode). |<br \/>\n| `clearPivotOverride()` | \u2014 | Remove computer pivot override. |<br \/>\n| `getServoInputAngle()` | `number` (degrees) | Target angle from servo input. |<br \/>\n| `getBearingControlMode()` | `string` | Current mode: `auto`, `redstone`, `computer`, or `servo`. |<br \/>\n| `setBearingControlMode(mode)` | \u2014 | Set bearing control mode. |<br \/>\n| `getMinAngle()` \/ `setMinAngle(angleDeg)` | `number` \/ \u2014 | Minimum allowed pivot angle. |<br \/>\n| `getMaxAngle()` \/ `setMaxAngle(angleDeg)` | `number` \/ \u2014 | Maximum allowed pivot angle. |<br \/>\n| `getForwardSignal()` | `number` | Redstone signal on forward face. |<br \/>\n| `getBackwardSignal()` | `number` | Redstone signal on backward face. |<\/p>\n<p>### Thruster discovery<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `listThrusters()` | `table` | All attached thrusters keyed by ID (see below). |<br \/>\n| `getThrusterCount()` | `number` | How many thrusters are attached. |<br \/>\n| `getOwnedThrusters()` | `string[]` | List of thruster IDs. |<br \/>\n| `ids()` | `string[]` | List of thruster aliases. |<br \/>\n| `thrusterAlias(idOrAlias, alias)` | \u2014 | Assign an alias to a thruster for easier targeting. |<br \/>\n| `getNetworkInfo()` | `table` | Full network summary. |<\/p>\n<p>`listThrusters()` return shape:<br \/>\n&#8220;`lua<br \/>\n{<br \/>\n  [&#8220;id&#8221;] = {<br \/>\n    alias = string,<br \/>\n    pos = {x, y, z},<br \/>\n    fuelType = string,<br \/>\n    controlMode = string,<br \/>\n    enabled = boolean,<br \/>\n    throttle = number,<br \/>\n  }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Per-thruster control<\/p>\n<p>All of these accept a thruster ID, an alias, or `&#8221;all&#8221;`. When `&#8221;all&#8221;` is used, read methods return a table keyed by thruster ID.<\/p>\n<p>| Method | Returns |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `setThrottle(id, throttle)` | \u2014 (accepts `0.0`\u2013`1.0` or `0`\u2013`100`) |<br \/>\n| `getThrottle(id)` | `number` or map |<br \/>\n| `getThrottleMap(id)` | always a map |<br \/>\n| `setEnabled(id, enabled)` | \u2014 |<br \/>\n| `isEnabled(id)` | `boolean` or map |<br \/>\n| `getFuel(id)` | `number` or map |<br \/>\n| `getFuelCapacity(id)` | `number` or map |<br \/>\n| `getFuelType(id)` | `string` or map |<br \/>\n| `getBurnTimeSeconds(id)` | `number` or map |<br \/>\n| `getControlMode(id)` | `string` or map |<br \/>\n| `setControlMode(id, mode)` | \u2014 (`auto`, `redstone`, or `computer`) |<br \/>\n| `getThrust(id)` | `number` or map |<br \/>\n| `getRealThrust(id)` | `number` or map |<br \/>\n| `getLiftCapacity(id)` | `number` or map |<br \/>\n| `getAirflow(id)` | `number` or map |<br \/>\n| `isActive(id)` | `boolean` or map |<br \/>\n| `isSoulMode(id)` | `boolean` or map |<br \/>\n| `setSoulMode(id, enabled)` | \u2014 |<br \/>\n| `clearThrottleOverride(id)` | \u2014 |<br \/>\n| `getRedstoneSignal(id)` | `number` or map |<br \/>\n| `getThrusterStatus(id)` | telemetry table, or map of tables for `&#8221;all&#8221;` |<\/p>\n<p>### Assembly totals<\/p>\n<p>| Method | Returns |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `getTotalRealThrust()` | `number` |<br \/>\n| `getTotalLiftCapacity()` | `number` |<br \/>\n| `getStatus()` | Full bearing + thruster snapshot (see below) |<\/p>\n<p>`getStatus()` return shape:<br \/>\n&#8220;`lua<br \/>\n{<br \/>\n  facing = string,<br \/>\n  forwardSignal = number,<br \/>\n  backwardSignal = number,<br \/>\n  controlMode = string,<br \/>\n  servoInputAngle = number,<br \/>\n  pivotAngle = number,<br \/>\n  targetAngle = number,<br \/>\n  minAngle = number,<br \/>\n  maxAngle = number,<br \/>\n  totalRealThrust = number,<br \/>\n  totalLiftCapacity = number,<br \/>\n  thrusterCount = number,<br \/>\n  thrusters = table, &#8212; same shape as listThrusters()<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal b = peripheral.find(&#8220;thruster_bearing&#8221;)<br \/>\nif b then<br \/>\n  b.setBearingControlMode(&#8220;servo&#8221;)<br \/>\n  b.setPivotAngle(22.5)<br \/>\n  b.setThrottle(&#8220;all&#8221;, 80)<br \/>\n  local net = b.getNetworkInfo()<br \/>\n  print(&#8220;Thrusters:&#8221;, net.thrusterCount)<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 3. Smart Gearbox<\/p>\n<p>**Type:** `&#8221;bidirectional_gearbox&#8221;`<\/p>\n<p>The Smart Gearbox has two operating modes. In **passthrough** mode it routes two independent rotation speeds through its lanes. In **servo** mode it drives each output face to a precise angle.<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `getMode()` \/ `setMode(mode)` | `string` \/ \u2014 | Current operating mode. |<br \/>\n| `isServoMode()` | `boolean` | |<br \/>\n| `hasGyroSource()` | `boolean` | Whether a Gyroscope Link is providing input. |<br \/>\n| `getLaneMode(axis)` \/ `setLaneMode(axis, mode)` | `string` \/ \u2014 | Get or set mode for a lane. Axis accepts `x`, `east_west`, `east-west`, `ew`, `z`, `north_south`, `north-south`, or `ns`. |<br \/>\n| `isReverseMode()` | `boolean` | |<br \/>\n| `getSpeed()` | `number` | |<br \/>\n| `getLaneSpeed(axis)` | `number` | Speed of a specific lane. |<br \/>\n| `getSignal(face)` | `number` | Redstone signal on a face. Accepts `north`, `south`, `east`, `west`. |<br \/>\n| `getFaceAngle(face)` \/ `setFaceAngle(face, angle)` | `number` \/ \u2014 | Get or set the target angle for a face. |<br \/>\n| `getFaceMaxAngle(face)` \/ `setFaceMaxAngle(face, angle)` | `number` \/ \u2014 | Get or set the maximum angle limit for a face. |<br \/>\n| `clearFaceAngle(face?)` | \u2014 | Clear the angle override for a face, or all faces if omitted. |<br \/>\n| `clearFaceMaxAngle(face?)` | \u2014 | Clear the max angle limit for a face, or all faces if omitted. |<br \/>\n| `getStatus()` | `table` | Full status snapshot (see below). |<\/p>\n<p>`getStatus()` return shape:<br \/>\n&#8220;`lua<br \/>\n{<br \/>\n  servoMode = boolean,<br \/>\n  gyroSource = boolean,<br \/>\n  mode = string,<br \/>\n  reverseMode = boolean,<br \/>\n  speed = { north_south = number, east_west = number },<br \/>\n  laneModes = { north_south = string, east_west = string },<br \/>\n  signals = { north = number, south = number, east = number, west = number },<br \/>\n  angles = { north = number, south = number, east = number, west = number },<br \/>\n  maxAngles = { north = number, south = number, east = number, west = number },<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal gb = peripheral.find(&#8220;bidirectional_gearbox&#8221;)<br \/>\nif gb then<br \/>\n  gb.setMode(&#8220;servo&#8221;)<br \/>\n  gb.setFaceAngle(&#8220;north&#8221;, 30)<br \/>\n  gb.setFaceMaxAngle(&#8220;north&#8221;, 60)<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 4. Contraption Controller<\/p>\n<p>**Type:** `&#8221;analogue_contraption_controller&#8221;`<\/p>\n<p>The Contraption Controller manages named channels, each of which can be configured with different input behaviors like latching, stepping, or momentary press. Channels output a value from `0.0` to `1.0` that maps to a redstone signal strength.<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `getName()` \/ `setName(name)` | `string` \/ \u2014 | Custom display name. |<br \/>\n| `listChannels()` | `string[]` | Names of all configured channels. |<br \/>\n| `getChannel(name)` | `table` | Current state of a channel. |<br \/>\n| `setChannel(name, value)` | \u2014 | Set a channel value directly. Range `0.0`\u2013`1.0`. |<br \/>\n| `getChannelMode(name)` \/ `setChannelMode(name, mode)` | `string` \/ \u2014 | Get or set the channel&#8217;s behavior mode. |<br \/>\n| `getChannelConfig(name)` | `table` | Full channel configuration. |<br \/>\n| `setChannelConfig(name, configTable)` | \u2014 | Update channel configuration (see keys below). |<br \/>\n| `press(name)` | \u2014 | Simulate pressing a channel. |<br \/>\n| `release(name)` | \u2014 | Simulate releasing a channel. |<br \/>\n| `tap(name)` | \u2014 | Simulate a quick press and release. |<br \/>\n| `reset(name)` | \u2014 | Reset a channel to its default state. |<br \/>\n| `resetAll()` | \u2014 | Reset all channels. |<br \/>\n| `getAxis(name)` | `table` | State of a named axis. |<br \/>\n| `getAllSignals()` | `table` | Current output values for all channels. |<\/p>\n<p>### `setChannelConfig` keys<\/p>\n<p>| Key | Type | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `mode` | `string` | Channel behavior mode. |<br \/>\n| `min`, `max` | `number` | Output range. |<br \/>\n| `riseRate`, `fallRate` | `number` | How fast the value ramps up or down. |<br \/>\n| `stepAmount` | `number` | Step size for step mode. |<br \/>\n| `deadzone`, `smoothing` | `number` | Input filtering. |<br \/>\n| `debounceTicks`, `repeatIntervalTicks` | `number` | Timing values (integer). |<br \/>\n| `resetToZero` | `boolean` | Whether to return to zero on release. |<br \/>\n| `repeatWhileHeld` | `boolean` | Whether to keep firing while held. |<br \/>\n| `value` | `number` | Sets the channel value directly. |<br \/>\n| `frequencyA`, `frequencyB` | `string` | Item IDs for wireless link frequencies (e.g. `&#8221;minecraft:iron_nugget&#8221;`). Blank string to clear. |<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal c = peripheral.find(&#8220;analogue_contraption_controller&#8221;)<br \/>\nif c then<br \/>\n  c.setChannelMode(&#8220;throttle_up&#8221;, &#8220;latch&#8221;)<br \/>\n  c.setChannel(&#8220;throttle_up&#8221;, 1.0)<br \/>\n  print(textutils.serialize(c.getAllSignals()))<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 5. Analogue Joystick<\/p>\n<p>**Type:** `&#8221;analogue_joystick&#8221;`<\/p>\n<p>The joystick outputs tilt values to redstone links and can be wrapped as a peripheral for naming. For reading live tilt values in code, wrap the bound redstone links as peripherals or read their outputs via the Contraption Controller.<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `getName()` | `string` |<br \/>\n| `setName(name)` | \u2014 |<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal j = peripheral.find(&#8220;analogue_joystick&#8221;)<br \/>\nif j then j.setName(&#8220;Pilot Stick&#8221;) end<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 6. Claw<\/p>\n<p>**Type:** `&#8221;claw&#8221;`<\/p>\n<p>The Claw grips and releases physics sub-levels. Signal strength controls grip \u2014 `15` means the claw will never drop its load, `0` means fully open. The drop chance scales with how low the signal is.<\/p>\n<p>The Claw can also detect and target nearby connector blocks for precise docking.<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `setSignal(signal)` | \u2014 | Set grip strength. Range `0`\u2013`15`. |<br \/>\n| `clearSignalOverride()` | \u2014 | Remove computer signal override. |<br \/>\n| `open()` | \u2014 | Fully open the claw (signal 0). |<br \/>\n| `close()` | \u2014 | Fully close the claw (signal 15). |<br \/>\n| `release()` | \u2014 | Release the held sub-level. |<br \/>\n| `getSignal()` | `number` | Current effective signal. |<br \/>\n| `getComputerSignal()` | `number` | Computer override value. `-1` means no override. |<br \/>\n| `isHolding()` | `boolean` | Whether the claw is holding a sub-level. |<br \/>\n| `getHeldConnectorPos()` | `{x,y,z}` or `nil` | Position of the connector being held. |<br \/>\n| `getSelectedConnectorPos()` | `{x,y,z}` or `nil` | Position of the targeted connector. |<br \/>\n| `getNearestConnector()` | `{x,y,z}` or `nil` | Nearest connector within default range. |<br \/>\n| `getNearestConnectorInRange(range)` | `{x,y,z}` or `nil` | Nearest connector within a given range. |<br \/>\n| `getConnectorsInRange(range)` | `[{x,y,z}, &#8230;]` | All connectors within range. |<br \/>\n| `getConnectorsInRangeLimited(range, limit)` | `[{x,y,z}, &#8230;]` | All connectors within range, up to a limit. |<br \/>\n| `isConnectorInRange(x,y,z)` | `boolean` | Whether a connector is within default range (3). |<br \/>\n| `isConnectorInRangeWithRadius(x,y,z,range)` | `boolean` | Whether a connector is within a given range. |<br \/>\n| `selectConnector(x,y,z)` | `boolean` | Target a specific connector for gripping. |<br \/>\n| `clearSelectedConnector()` | \u2014 | Clear the targeted connector. |<br \/>\n| `getStatus()` | `table` | Full status snapshot (see below). |<\/p>\n<p>`getStatus()` return shape:<br \/>\n&#8220;`lua<br \/>\n{<br \/>\n  signal = number,<br \/>\n  computerSignal = number,<br \/>\n  holding = boolean,<br \/>\n  heldPos = {x=number, y=number, z=number} | nil,<br \/>\n  selectedPos = {x=number, y=number, z=number} | nil,<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal claw = peripheral.find(&#8220;claw&#8221;)<br \/>\nif claw then<br \/>\n  local p = claw.getNearestConnectorInRange(5)<br \/>\n  if p then claw.selectConnector(p.x, p.y, p.z) end<br \/>\n  claw.close()<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## 7. Rope Winch Cable (Claw passthrough)<\/p>\n<p>**Type:** `&#8221;rope_winch_cable&#8221;`<\/p>\n<p>Only registered when the Rope Winch has a Claw attached. Exposes the same control surface as the Claw peripheral directly, so you can control the claw through the winch cable without needing a direct connection to the claw itself. All claw methods throw `&#8221;no claw connected to this rope winch&#8221;` if the attachment is missing.<\/p>\n<p>### Methods<\/p>\n<p>| Method | Returns |<br \/>\n|&#8212;|&#8212;|<br \/>\n| `isConnected()` | `boolean` |<br \/>\n| `getRemoteType()` | `&#8221;claw&#8221;` or `&#8221;none&#8221;` |<\/p>\n<p>Plus all Claw methods listed in section 6. Note that position methods return `{}` instead of `nil` when there is no result, unlike the direct Claw peripheral which returns `nil`.<\/p>\n<p>### Example<\/p>\n<p>&#8220;`lua<br \/>\nlocal rw = peripheral.find(&#8220;rope_winch_cable&#8221;)<br \/>\nif rw and rw.isConnected() then<br \/>\n  rw.open()<br \/>\n  local s = rw.getStatus()<br \/>\n  print(&#8220;Holding:&#8221;, s.holding)<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p># Create Thrusters &#038; Things \u2014 External Compat ComputerCraft API<\/p>\n<p>This document covers native ComputerCraft peripherals that this addon exposes for external Simulated and Aeronautics block entities.<\/p>\n<p>## Getting Started<\/p>\n<p>Wrap or find a peripheral by its type string:<\/p>\n<p>&#8220;`lua<br \/>\nlocal burner = peripheral.find(&#8220;hot_air_burner&#8221;)<br \/>\nif burner then<br \/>\n  print(&#8220;Signal:&#8221;, burner.getSignal())<br \/>\n  print(&#8220;Gas output:&#8221;, burner.getGasOutput())<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>Most peripherals below use a shared reflection-backed helper surface. `directional_gearshift` is the exception: it now has its own purpose-built API with gearshift-specific methods instead of the generic signal\/range\/color set.<\/p>\n<p>## Peripherals<\/p>\n<p>| Type string | External block entity id(s) | Block |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `laser_pointer` | `simulated:laser_pointer` | Simulated Laser Pointer |<br \/>\n| `laser_sensor` | `simulated:laser_sensor`, `simulated:ir_sensor` | Simulated Laser Sensor |<br \/>\n| `analogue_transmission` | `simulated:analogue_transmission`, `simulated:simple` | Simulated Analogue Transmission |<br \/>\n| `redstone_accumulator` | `simulated:redstone_accumulator` | Simulated Redstone Accumulator |<br \/>\n| `redstone_inductor` | `simulated:redstone_inductor` | Simulated Redstone Inductor |<br \/>\n| `redstone_magnet` | `simulated:redstone_magnet` | Simulated Redstone Magnet |<br \/>\n| `optical_sensor` | `simulated:optical_sensor` | Simulated Optical Sensor |<br \/>\n| `docking_connector` | `simulated:docking_connector` | Simulated Docking Connector |<br \/>\n| `altitude_sensor` | `simulated:altitude_sensor` | Simulated Altitude Sensor |<br \/>\n| `hot_air_burner` | `aeronautics:adjustable_burner` | Aeronautics Hot Air Burner |<br \/>\n| `steam_vent` | `aeronautics:steam_vent` | Aeronautics Steam Vent |<br \/>\n| `mounted_potato_cannon` | `aeronautics:mounted_potato_cannon` | Aeronautics Mounted Potato Cannon |<\/p>\n<p>### `directional_gearshift`<\/p>\n<p>&#8220;`lua<br \/>\nlocal gearshift = peripheral.find(&#8220;directional_gearshift&#8221;)<br \/>\nif gearshift then<br \/>\n  gearshift.setOutputs(true, false)<br \/>\n  print(&#8220;Left:&#8221;, gearshift.isLeftPowered(), &#8220;Right:&#8221;, gearshift.isRightPowered())<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `setLeft(powered)` | \u2014 | Set the left-side gearshift input\/output state. |<br \/>\n| `setRight(powered)` | \u2014 | Set the right-side gearshift input\/output state. |<br \/>\n| `setOutputs(left, right)` | \u2014 | Set both left and right states together. |<br \/>\n| `clear()` | \u2014 | Clears both gearshift states back to off. |<br \/>\n| `isLeftPowered()` | `boolean` | Current left state. |<br \/>\n| `isRightPowered()` | `boolean` | Current right state. |<br \/>\n| `getRotationModifier(face)` | `number` | Returns the rotation modifier for a face name like `north`, `south`, `east`, or `west`. |<br \/>\n| `getStatus()` | `table` | Returns `leftPowered`, `rightPowered`, `sourceFacing`, `blockPos`, and `className`. |<\/p>\n<p>`directional_gearshift` is now the recommended pattern for blocks that have distinct left\/right behavior; the controller and CC layers both map to those explicit sides rather than a generic `setSignal()` call.<\/p>\n<p>&#8212;<\/p>\n<p>## Common Method Surface<\/p>\n<p>Every non-gearshift type above exposes the methods below.<\/p>\n<p>| Method | Returns | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `getName()` | `string` | Custom name if exposed by target block entity, otherwise empty string. |<br \/>\n| `setName(name)` | \u2014 | Sets custom name when supported. |<br \/>\n| `getSignal()` | `number` (`0`-`15`) | Reads signal-like value from the block entity. |<br \/>\n| `setSignal(signal)` | \u2014 | Writes signal-like value when writable (`0`-`15`). Throws if unsupported. |<br \/>\n| `isPowered()` | `boolean` | Whether block is currently powered\/active. |<br \/>\n| `getRange()` | `number` | Laser\/sensor range for compatible blocks. |<br \/>\n| `setRange(range)` | \u2014 | Set range for compatible blocks. Throws if unsupported. |<br \/>\n| `hasHit()` | `boolean` | Sensor hit status for compatible sensor blocks. |<br \/>\n| `getDistance()` | `number` | Hit distance \/ blocked distance when available; `-1` if unavailable. |<br \/>\n| `getColor()` | `number` | Laser color as RGB integer when available. |<br \/>\n| `setColor(color)` | \u2014 | Set RGB laser color (`0x000000` to `0xFFFFFF`). Throws if unsupported. |<br \/>\n| `isRainbow()` | `boolean` | Rainbow laser mode for compatible blocks. |<br \/>\n| `setRainbow(enabled)` | \u2014 | Toggle rainbow mode. Throws if unsupported. |<br \/>\n| `getAirPressure()` | `number` | Atmospheric pressure for altitude-capable devices; `-1` if unavailable. |<br \/>\n| `getWorldHeight()` | `number` | World height from block sensor API when exposed. |<br \/>\n| `getGasOutput()` | `number` | Gas output for burner\/vent blocks; `0` if unavailable. |<br \/>\n| `getState()` | `string` | Machine state enum\/string if present, else `&#8221;unknown&#8221;`. |<br \/>\n| `isBlocked()` | `boolean` | Blocked-state indicator for cannon-style devices. |<br \/>\n| `getBlockedLength()` | `number` | Blocked penetration distance where exposed. |<br \/>\n| `getFacing()` | `string` | Facing direction if available from API or block state. |<br \/>\n| `getPosition()` | `table` | `{ x, y, z }` block position. |<br \/>\n| `getClassName()` | `string` | Runtime Java class name backing this peripheral. |<br \/>\n| `getStatus()` | `table` | Full merged status snapshot (see below). |<br \/>\n| `methods()` | `string[]` | Human-readable list of method signatures. |<br \/>\n| `help(method?)` | `table` or `string` | Documentation map, or single method help string. |<\/p>\n<p>### `getStatus()` return shape<\/p>\n<p>&#8220;`lua<br \/>\n{<br \/>\n  type = string,<br \/>\n  name = string,<br \/>\n  signal = number,<br \/>\n  powered = boolean,<br \/>\n  range = number,<br \/>\n  hasHit = boolean,<br \/>\n  distance = number,<br \/>\n  worldHeight = number,<br \/>\n  airPressure = number,<br \/>\n  gasOutput = number,<br \/>\n  state = string,<br \/>\n  facing = string,<br \/>\n  blocked = boolean,<br \/>\n  blockedLength = number,<br \/>\n  color = number,<br \/>\n  rainbow = boolean,<br \/>\n  position = { x = number, y = number, z = number },<br \/>\n  className = string,<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## Block-Specific Notes<\/p>\n<p>### Laser devices<\/p>\n<p>`laser_pointer`, `laser_sensor`, and `optical_sensor` are the best fit for:<\/p>\n<p>&#8211; `getRange()` \/ `setRange(range)`<br \/>\n&#8211; `hasHit()` \/ `getDistance()`<br \/>\n&#8211; `getColor()` \/ `setColor(color)`<br \/>\n&#8211; `isRainbow()` \/ `setRainbow(enabled)`<\/p>\n<p>### Altitude and atmospheric devices<\/p>\n<p>`altitude_sensor`, `hot_air_burner`, and `steam_vent` provide the most useful results for:<\/p>\n<p>&#8211; `getWorldHeight()`<br \/>\n&#8211; `getAirPressure()`<br \/>\n&#8211; `getGasOutput()`<\/p>\n<p>### Mounted Potato Cannon<\/p>\n<p>`mounted_potato_cannon` is the primary user of:<\/p>\n<p>&#8211; `isBlocked()`<br \/>\n&#8211; `getBlockedLength()`<br \/>\n&#8211; `getState()`<\/p>\n<p>### Redstone machines<\/p>\n<p>`analogue_transmission`, `redstone_accumulator`, `redstone_inductor`, and `redstone_magnet` primarily expose:<\/p>\n<p>&#8211; `getSignal()`<br \/>\n&#8211; `isPowered()`<br \/>\n&#8211; `getState()`<br \/>\n&#8211; `getStatus()`<\/p>\n<p>&#8212;<\/p>\n<p>## Example Scripts<\/p>\n<p>### 1) Laser Pointer Control<\/p>\n<p>&#8220;`lua<br \/>\nlocal p = peripheral.find(&#8220;laser_pointer&#8221;)<br \/>\nif p then<br \/>\n  p.setSignal(15)<br \/>\n  p.setColor(0x00FF66)<br \/>\n  p.setRainbow(false)<br \/>\n  print(textutils.serialize(p.getStatus()))<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>### 2) Altitude Monitoring<\/p>\n<p>&#8220;`lua<br \/>\nlocal a = peripheral.find(&#8220;altitude_sensor&#8221;)<br \/>\nif a then<br \/>\n  while true do<br \/>\n    print(&#8220;Height:&#8221;, a.getWorldHeight(), &#8220;Pressure:&#8221;, a.getAirPressure())<br \/>\n    sleep(0.5)<br \/>\n  end<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>### 3) Burner + Vent Snapshot<\/p>\n<p>&#8220;`lua<br \/>\nlocal burner = peripheral.find(&#8220;hot_air_burner&#8221;)<br \/>\nlocal vent = peripheral.find(&#8220;steam_vent&#8221;)<\/p>\n<p>if burner then print(&#8220;Burner gas:&#8221;, burner.getGasOutput()) end<br \/>\nif vent then print(&#8220;Vent gas:&#8221;, vent.getGasOutput()) end<br \/>\n&#8220;`<\/p>\n<p>### 4) Cannon Safety Polling<\/p>\n<p>&#8220;`lua<br \/>\nlocal c = peripheral.find(&#8220;mounted_potato_cannon&#8221;)<br \/>\nif c then<br \/>\n  print(&#8220;Blocked:&#8221;, c.isBlocked(), &#8220;Length:&#8221;, c.getBlockedLength(), &#8220;State:&#8221;, c.getState())<br \/>\nend<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## Error Behavior<\/p>\n<p>Write operations that are unsupported by a specific block throw a Lua error rather than silently failing.<\/p>\n<p>Examples:<\/p>\n<p>&#8211; `setSignal()` on a block without writable signal fields\/methods<br \/>\n&#8211; `setRange()` on a non-range block<br \/>\n&#8211; `setColor()` on a non-laser block<br \/>\n&#8211; `setRainbow()` on a non-rainbow block<\/p>\n<p>Use `getClassName()` and `help()` in scripts to dynamically adapt behavior for mixed block fleets.<\/p>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>A create aeronautics addon that adds new ways to control and interact with physics contraptions<\/p>\n","protected":false},"featured_media":48478,"template":"","meta":{"_minecraft_slug":"create-aeronautics-thrusters-and-things","_minecraft_project_id":"Sza3GgEL","_minecraft_author":"Rieno","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":4988,"_minecraft_follows":11,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"create-aeronautics-thrusters-and-things.zip","_minecraft_size_bytes":18290986,"_minecraft_version_count":10,"_minecraft_updated_at":"2026-05-16T12:25:36.617929Z","_minecraft_date_created":"2026-05-06T05:54:22.097432Z","_minecraft_date_modified":"2026-05-16T05:02:06.101642Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/create-aeronautics-thrusters-and-things","_minecraft_icon_attachment_id":48478,"_minecraft_imported_at":"2026-06-02T12:21:34+00:00","_minecraft_import_hash":"7c708f6e4ccb72f019aa33fafe35bbe6","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[89,158,869,92],"mod_loader":[160],"minecraft_version":[37],"class_list":["post-48477","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-game-mechanics","mod_category-neoforge","mod_category-transportation","mod_category-utility","mod_loader-neoforge","minecraft_version-1-21-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create Aeronautics: Thrusters and Things - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create Aeronautics: Thrusters and Things - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A create aeronautics addon that adds new ways to control and interact with physics contraptions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/\",\"name\":\"Create Aeronautics: Thrusters and Things - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp\",\"datePublished\":\"2026-06-02T12:21:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/create-aeronautics-thrusters-and-things\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Aeronautics: Thrusters and Things\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create Aeronautics: Thrusters and Things - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/","og_locale":"en_US","og_type":"article","og_title":"Create Aeronautics: Thrusters and Things - Minecraft","og_description":"A create aeronautics addon that adds new ways to control and interact with physics contraptions","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/","name":"Create Aeronautics: Thrusters and Things - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp","datePublished":"2026-06-02T12:21:34+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/create-aeronautics-thrusters-and-things-icon-758651c1b5ee2543cd24a84040170813d2ae7b98_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/create-aeronautics-thrusters-and-things\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Create Aeronautics: Thrusters and Things"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/48477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/48478"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=48477"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=48477"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=48477"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=48477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}