Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Datapack Reference

The ship’s vehicle definition uses SBW’s datapack system. DedsafioStarships reads its additional flight fields from the same EngineInfo object using SBW’s JSON reader. Planet appearances use separate files under starship_planets/.

Create a pack

For Minecraft 1.21.1, use data pack format 48. A pack that overrides the ship and Earth’s orbital appearance has this structure:

starship-settings/
  pack.mcmeta
  data/
    dedsafiostarships/
      sbw/
        vehicles/
          starship.json
      starship_planets/
        earth.json

Create pack.mcmeta at the pack’s root:

{
  "pack": {
    "pack_format": 48,
    "description": "Starship flight settings"
  }
}

Place the folder in the world’s datapacks/ directory. Run /reload and use /datapack list to confirm the pack is enabled. Start a new flight after changing settings; avoid reloading flight data midway through a trip.

Override the vehicle

Copy the addon’s full vehicle definition into your pack at:

data/dedsafiostarships/sbw/vehicles/starship.json

The original is included at that path inside the mod JAR. In the project, it is under src/main/resources/.

Keep the rest of the copied definition, including seats, collision boxes, and engine type. Edit the fields you need inside EngineInfo. An EngineInfo fragment by itself is not a complete vehicle definition.

Flight fields

JSON field names are case-sensitive. Durations use game ticks, with 20 ticks per second at the normal server tick rate. Speeds use blocks per second. Altitudes use world Y coordinates.

EngineInfo fieldDefaultMeaning
TakeoffAltitude750Target ascent altitude. Planetary flights also enforce a minimum of 128 blocks above the world’s build height.
TakeoffSpeed10Vertical ascent speed.
IgnitionTicks40Ignition delay before ascent, including the initial camera shake.
OrbitRevealTicks100Duration of the transition into the orbital travel orientation.
JumpTicks240Minimum jump duration. The jump can wait longer for destination terrain.
StabilizationTicks80Pause in the destination’s orbital view after the jump.
ApproachTicks120Duration of the rotation into landing orientation.
LandingSpeed10Maximum vertical descent speed; the ship slows near touchdown.
LandingSearchRadius32Search distance around the preferred arrival point. The landing search clamps this to 8 through 64 blocks.
TerrainEntryAltitude591Descent altitude for the actual destination-world transfer, with a minimum of 128 blocks above the landing surface.
CloudStartAltitude300Lower cloud-layer reference during ascent.
CloudFadeOutAltitude580Altitude where the cloud opening begins during ascent.
CloudFadeOutEndAltitude620Upper reference for the cloud transition. The departure opening continues above it.
PlanetTier4Highest Ad Astra planet tier the ship can select.
EngineStartSound"superbwarfare:a_10a_engine_start"Sound played when the engine starts.

For example, these values inside the existing EngineInfo object make ignition last three seconds and the jump last at least sixteen seconds:

"IgnitionTicks": 60,
"JumpTicks": 320

These two lines are an editing example, not a complete JSON file. Keep the surrounding object and all other vehicle settings.

Use finite numeric values, positive speeds and durations, and an ascending cloud range. Keep the terrain transfer inside the descent cloud layer if you want it concealed. Changing only the transfer altitude can expose the world change.

Other SBW vehicle settings

These fields are already present in the full vehicle definition:

FieldCurrent valuePurpose
MaxHealth500Vehicle health.
MaxEnergy5000000Energy capacity.
EngineInfo.EnergyCostRate128Engine energy cost per tick.
EngineSound"superbwarfare:a_10a_engine"Running engine sound.
AllowFreeCamtrueEnables SBW’s free camera behavior.
DestroyInfo.ExplosionDamage800Destruction explosion damage.
DestroyInfo.ExplosionRadius16Destruction explosion radius.

The EngineType is AirShip. The automatic flight behavior is implemented by the addon around that engine.

Planet appearances

To change Earth’s orbital view, override:

data/dedsafiostarships/starship_planets/earth.json

The default file is:

{
  "dimension": "minecraft:overworld",
  "land_color": "83934b",
  "water_color": "165384",
  "atmosphere_color": "4d9be0",
  "sea_level": 0.48,
  "clouds": 0.5
}
FieldFormatPurpose
dimensionNamespaced dimension IDThe planet whose orbital appearance to change.
land_colorSix-digit RGB hex string without #Procedural land color.
water_colorSix-digit RGB hex string without #Procedural water color.
atmosphere_colorSix-digit RGB hex string without #Atmosphere color.
sea_levelNumber from 0 to 1Water threshold in the procedural planet view. Defaults to 0 if omitted.
cloudsNumber from 0 to 1Cloud coverage in the orbital planet view. Defaults to 0 if omitted.

clouds controls the orbital planet’s appearance. The volumetric clouds around the ship use the EngineInfo altitude fields instead. These files do not change a world’s actual terrain, weather, or oceans.

The addon includes earth.json, moon.json, mars.json, venus.json, mercury.json, and glacio.json. Override the existing file for the planet you want to change. Adding an appearance file does not register a new Ad Astra destination.