🚀 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:
moveItemsFromRocketToLaunchPadmoveItemsFromLaunchPadToRocketlistRocketInventorylistLaunchPadInventorylistLaunchPadInputSlotIndexeslistLaunchPadOutputSlotIndexesloadAllItems/unloadAllItems
New Functions:
isRocketInventoryEmpty()—booleangetSecondsSinceLanded()—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:trueif successful,falseotherwise.
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:trueif a rocket is present,falseotherwise.
🛢️ 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 state —
Grounded,Ascending, orDescending. - 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
EditBoxtext 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

