Skip to main content

Adding Resources to Space Objects

This guide explains how to configure items and fluids that can be obtained through colonies or exploration missions (rovers, probes, satellites, rockets) on planets, satellites, and asteroids.


1. General Notes

  • Recipes are stored under:

    data/<namespace>/recipes/space/<colony|exploration>/<object_name>.json
  • Supported input types:

    • item → Normal Minecraft item.
    • fluid → Fluid resource.
    • tag → Item tag (ore dictionary style).
  • The inputs array can hold multiple items or fluids.

  • Quantities are integers (amount).

  • If the body (planet, satellite, asteroid) does not exist, loading will fail.


2. Colony Resources

Colonies allow production of base resources once established on a celestial body.

{
"type": "industrialupgrade:colony_resource_add",
"body": "mars",
"level": 2,
"inputs": [
{ "type": "item", "id": "minecraft:iron_ingot", "amount": 4 },
{ "type": "fluid", "id": "minecraft:water", "amount": 1000 }
]
}

Fields:

KeyTypeDescription
bodystringName of the planet, satellite, or asteroid where the colony is built.
levelshortColony level required for these resources.
inputsarrayList of resources (items, fluids, or tags).

Inputs format:

KeyTypeDescription
typestringitem, fluid, or tag.
idstringResource identifier (namespace:path).
amountintQuantity (items or fluid millibuckets).

3. Exploration Resources (Expeditions)

Exploration missions yield resources when sending rovers, probes, satellites, or rockets to bodies.

{
"type": "industrialupgrade:body_resource",
"body": "mars",
"percent": 50,
"chance": 20,
"typeRover": "rover",
"typeOperation": "add",
"inputs": [
{ "type": "item", "id": "minecraft:redstone", "amount": 3 },
{ "type": "fluid", "id": "minecraft:lava", "amount": 500 }
]
}

Fields:

KeyTypeDescription
bodystringName of the celestial body being explored.
percentintPercent progress value for resource availability.
chanceintChance (%) of successfully finding the resource.
typeRoverstringType of mission: rover, probe, satellite, rocket.
typeOperationstringOperation type (add).
inputsarrayList of resources gained if successful.

4. Supported Rover Types

Rover TypeDescription
roverGround exploration rover.
probeAutomated probe missions.
satelliteSatellite resource scanning.
rocketHeavy exploration missions.

5. Examples

Example Colony Recipe (Moon Base)

{
"type": "industrialupgrade:colony_resource_add",
"body": "moon",
"level": 1,
"inputs": [
{ "type": "item", "id": "minecraft:stone", "amount": 32 },
{ "type": "fluid", "id": "minecraft:oxygen", "amount": 500 }
]
}

Example Exploration Recipe (Asteroid Mining)

{
"type": "industrialupgrade:body_resource",
"body": "asteroid",
"percent": 70,
"chance": 35,
"typeRover": "probe",
"typeOperation": "add",
"inputs": [
{ "type": "tag", "id": "forge:ores/iron", "amount": 5 }
]
}

6. Tips & Best Practices

  1. Colonies unlock more resources at higher levels.
  2. Use percent and chance in exploration recipes to balance rarity.
  3. Choose rover types logically: satellites for scanning, rovers for mining, rockets for rare finds.
  4. Use tag inputs to make recipes more flexible.

7. Template

{
"type": "indudstrialupgrade:body_resource",
"body": "<celestial_body>",
// colony specific
"level": <short>,
// exploration specific
"percent": <int>,
"chance": <int>,
"typeRover": "<rover|probe|satellite|rocket>",
"typeOperation": "add",
"inputs": [
{ "type": "<item|fluid|tag>", "id": "<namespace:path>", "amount": <int> }
]
}

8. Conclusion

By configuring colony and exploration recipes, you can:

  • Make colonies generate items and fluids as players upgrade them.
  • Reward exploration missions with rare resources based on chance and rover type.

This adds depth and progression to space gameplay, making every mission and colony expansion meaningful.