promotional bannermobile promotional banner

Ad Astra Cargo Rocket [Unofficial] by SHB2

This is a Forge-compatible version of “Ad Astra Cargo Rocket [Unofficial]” by ChiyahaRe. This mod adds a cargo rocket that transports items across dimensions and enables automation.

🚀 Ad Astra Cargo Rockets

Overview

I've launched a website that automates code generation! https://shb2-dev.github.io/cargo_rocket_generator/

I'm new to modding. This mod may contain many bugs. I would really appreciate it if you could submit a pull request.

This mod adds cargo rockets to Ad Astra and, when used in conjunction with CC:tweaked, allows for the automation of interplanetary item transport.


Key Features

✨ Multiple Rocket Tiers

Each tier has a different maximum number of planets it can reach. The same range limitations apply as for AdAstra's rockets. With the addition of rocket tiers, fuel and energy consumption now increases depending on the destination.

✨ Rocket Inventory System

[v1.2.4] The rocket itself now has its own inventory (9 slots) and its own fuel/cargo fluid tanks — these are the only place the items/fuel/cargo actually live, the launchpad itself holds nothing.

✨ Pipe & Hopper Integration

The launchpad's pipe connections and hopper-accessible slots are still there exactly as before — but instead of holding their own contents, they now act as a direct window into whichever rocket is currently grounded on the pad.

✨ Rocket Scanner

[v1.2.3] A new item, the Rocket Scanner, lets you view every rocket in the world (position, dimension, flight state, inventory) from a single GUI without flying out to check on them.

✨ CC:tweaked Lua API

Scripts can now control rockets fully via the Lua API with functions like setRocketName(name), setRocketStatus(status), and more.

✨ Code Generator

Automatic script generation tool available at https://shb2-dev.github.io/cargo_rocket_generator/

✨ Customizable Configuration

Change config/ad_astra_cargo_rockets.json to customize target destination cost and fuel efficiency.

✨ Enhanced Animations

Particles and sounds for smoother launch and landing animations. Block collision detection improved for landing.


Fluid & Energy Connection

[v1.2.4] Fuel and cargo fluid live in tanks on the rocket itself, not the launchpad — but the launchpad's pipe connections work exactly as they did before. While a rocket is grounded on the pad, the launchpad's faces act as a direct window into that rocket's own tanks/inventory.

Side Function
Bottom Fuel tank (synced to the grounded rocket's fuel tank)
Top / Sides Cargo fluid tank (synced to the grounded rocket's cargo tank)
Any side Forge Energy (FE) input
Hopper-accessible slots The grounded rocket's 9-slot inventory
  • Connect fuel pipes to the bottom face to supply rocket fuel (e.g. ad_astra:fuel, ad_astra:cryo_fuel).
  • Connect fluid pipes to the top or side faces to transport cargo liquids.
  • Hoppers (or any item-transport mod) pointed at the launchpad insert into / extract from the rocket's inventory directly.
  • [v1.3] Filling/draining the tanks with a bucket by hand (either at the launchpad or from the rocket's own inventory screen) is no longer supported — pipes, hoppers, and the Lua API are the only ways to move fuel/cargo fluid in or out.
  • If no rocket is grounded on the pad — empty, mid-flight, or still descending — these connections have nowhere to deliver to and simply accept nothing, the same as an unconnected pipe.

Version History

[v1.4] Bug Fixes

This is a breaking change. Filling/draining the rocket's fuel and cargo tanks with a bucket has been removed. The tanks are now read-only from the player's perspective; the only way to fill or drain them is via pipes/hoppers connected to the launchpad while a rocket is grounded on it, or from a script via the Lua API.

Fixes:

  • Fixed GUI sync for inventory screens and launchpad energy bar
  • Fixed Rocket Scanner's rename text field being overwritten mid-typing
  • Fixed block-info overlay mods (e.g. Jade) showing only one fluid tank
  • Improved block updates to all neighbors when launchpad state changes
  • Various GUI polish improvements

[v1.2.4] Rocket Inventory & Automation

This is a breaking change. The rocket itself now has its own inventory and fuel/cargo fluid tanks.

Removed APIs:

  • moveItemsFromRocketToLaunchPad
  • moveItemsFromLaunchPadToRocket
  • listRocketInventory
  • listLaunchPadInventory
  • listLaunchPadInputSlotIndexes
  • listLaunchPadOutputSlotIndexes
  • loadAllItems/unloadAllItems

New Functions:

  • isRocketInventoryEmpty()boolean
  • getSecondsSinceLanded()int

Improvements:

  • Fixed long-standing bug where cargo fluid would disappear on landing
  • Fixed collision detection for descending rockets
  • Real-time sync with pipes and hoppers

[v1.2.3] Rocket Scanner & Custom Names

  • Added Rocket Scanner item for world-wide rocket tracking
  • Added setRocketName(name) Lua function
  • Added setRocketStatus(status) Lua function
  • Improved rocket state management

Rocket Launchpad Lua API

🚀 launch()

Attempt to launch the rocket currently on this launchpad.

Returns:

  • boolean: true if successful, false otherwise.

Errors:

  • "No rocket found": No rocket is currently on the launchpad.

📍 getTargetPlanetTable()

Returns a table of all planets reachable from this dimension and the minimum rocket tier needed to reach each one.

Returns:

  • table<string, int>: Table with the key being the planet and the value being the required rocket tier to reach it.

🚀 isRocketPresent()

Checks whether a rocket is present on the launchpad.

Returns:

  • boolean: true if a rocket is present, false otherwise.

🛢️ getFuel()

Returns the current fuel amount in the rocket's fuel tank. While a rocket is grounded, the launchpad's BOTTOM-face pipe writes directly into this same tank.

Returns:

  • int: Current fuel in mB.

🛢️ getMaxFuel()

Returns the maximum fuel capacity of the rocket's fuel tank.

Returns:

  • int: Maximum fuel in mB.

🛢️ getFuelType()

Returns the fluid ID of the fuel currently in the rocket's fuel tank.

Returns:

  • string: Fluid registry ID (e.g. "ad_astra:fuel"), or "empty" if the tank is empty.

🧪 getCargoFluid()

Returns the current amount of cargo fluid in the rocket's cargo tank.

Returns:

  • int: Current cargo fluid in mB.

🧪 getMaxCargoFluid()

Returns the maximum cargo fluid capacity.

Returns:

  • int: Maximum cargo fluid in mB.

🧪 getCargoFluidType()

Returns the fluid ID of the cargo fluid currently in the rocket's cargo tank.

Returns:

  • string: Fluid registry ID, or "empty" if the tank is empty.

📡 setRocketStatus(status)

Sets a custom status string on the rocket currently sitting on this launchpad. This string is shown in the Rocket Scanner GUI and takes priority over the mod's automatic wait-reason guess.

Parameters:

  • status (string): Free-form text to display. Pass an empty string to clear it and fall back to the mod's automatic inference.

Errors:

  • "No rocket found": No rocket is currently on the launchpad.

🏷️ setRocketName(name)

Sets a display name on the rocket currently sitting on this launchpad. The name is shown in the Rocket Scanner GUI's rocket list.

Parameters:

  • name (string): Name to display (max 32 characters; longer names are truncated).

Errors:

  • "No rocket found": No rocket is currently on the launchpad.

🔍 Rocket Scanner

The Rocket Scanner is a new item that lets you keep track of every cargo rocket in the world without needing to fly out and check on them manually.

Right-click with the Rocket Scanner in hand to open the scanner GUI. The left panel lists every rocket currently loaded in the world (across all dimensions), showing its name and position.

Selecting a rocket from the list shows:

  • Position & dimension — where the rocket currently is.
  • Flight stateGrounded, Ascending, or Descending.
  • Waiting on — why the rocket is sitting on the pad.
  • Fuel / Cargo fluid[v1.2.4] the current and max amount in the rocket's own tanks.
  • Inventory — every item currently aboard the rocket, slot by slot.
  • Name field — a text box to rename the rocket directly from the GUI.

The list refreshes automatically every couple of seconds while the GUI is open, or press the Refresh button to update immediately.

Note on non-Latin names: Minecraft's vanilla EditBox text field has known limitations with IME input (e.g. Japanese, Chinese, Korean) on some platforms — composed text can render incorrectly while typing. This is a Minecraft/LWJGL limitation outside the mod's control.


Additional Tags

This mod adds the itemtag denied_in_launch_pad to prevent specified items from being used in launch pads (e.g. shulker box). By using this tag, you can prevent illegal transport techniques.


Credit

Fork Source: Ad-Astra-Cargo-Rockets-Unofficial by ChiyahaRe
URL: https://github.com/ChiyahaRe/Ad-Astra-Cargo-Rockets-Unofficial

Original Fork Source: Ad Astra Cargo Rockets by BillBodkin
URL: https://modrinth.com/mod/ad-astra-cargo-rockets

The Ad Astra Cargo Rocket [Unofficial] by SHB2 Team

profile avatar
  • 1
    Followers
  • 1
    Projects
  • 110
    Downloads