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 field | Default | Meaning |
|---|---|---|
TakeoffAltitude | 750 | Target ascent altitude. Planetary flights also enforce a minimum of 128 blocks above the world’s build height. |
TakeoffSpeed | 10 | Vertical ascent speed. |
IgnitionTicks | 40 | Ignition delay before ascent, including the initial camera shake. |
OrbitRevealTicks | 100 | Duration of the transition into the orbital travel orientation. |
JumpTicks | 240 | Minimum jump duration. The jump can wait longer for destination terrain. |
StabilizationTicks | 80 | Pause in the destination’s orbital view after the jump. |
ApproachTicks | 120 | Duration of the rotation into landing orientation. |
LandingSpeed | 10 | Maximum vertical descent speed; the ship slows near touchdown. |
LandingSearchRadius | 32 | Search distance around the preferred arrival point. The landing search clamps this to 8 through 64 blocks. |
TerrainEntryAltitude | 591 | Descent altitude for the actual destination-world transfer, with a minimum of 128 blocks above the landing surface. |
CloudStartAltitude | 300 | Lower cloud-layer reference during ascent. |
CloudFadeOutAltitude | 580 | Altitude where the cloud opening begins during ascent. |
CloudFadeOutEndAltitude | 620 | Upper reference for the cloud transition. The departure opening continues above it. |
PlanetTier | 4 | Highest 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:
| Field | Current value | Purpose |
|---|---|---|
MaxHealth | 500 | Vehicle health. |
MaxEnergy | 5000000 | Energy capacity. |
EngineInfo.EnergyCostRate | 128 | Engine energy cost per tick. |
EngineSound | "superbwarfare:a_10a_engine" | Running engine sound. |
AllowFreeCam | true | Enables SBW’s free camera behavior. |
DestroyInfo.ExplosionDamage | 800 | Destruction explosion damage. |
DestroyInfo.ExplosionRadius | 16 | Destruction 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
}
| Field | Format | Purpose |
|---|---|---|
dimension | Namespaced dimension ID | The planet whose orbital appearance to change. |
land_color | Six-digit RGB hex string without # | Procedural land color. |
water_color | Six-digit RGB hex string without # | Procedural water color. |
atmosphere_color | Six-digit RGB hex string without # | Atmosphere color. |
sea_level | Number from 0 to 1 | Water threshold in the procedural planet view. Defaults to 0 if omitted. |
clouds | Number from 0 to 1 | Cloud 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.