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

DedsafioStarships

DedsafioStarships

DedsafioStarships is a Fabric addon for Superb Warfare ReFabricated. It adds a vertical takeoff spacecraft with an automatic cockpit door, engine sounds, and a free third-person camera.

Install Ad Astra to travel between planets. The autopilot handles takeoff, the temporal jump, atmospheric approach, and landing. Orbital views, volumetric clouds, engine flames, and reentry effects accompany the flight.

Without Ad Astra, the ship still supports automatic vertical ascent to a configured altitude. Interplanetary routes and automatic planetary landings require Ad Astra.

Start here

Server owners can enforce a destination and choose an arrival area through Server Configuration. Modpack authors can adjust flight parameters and orbital planet colors using the Datapack Reference.

This wiki documents the current Minecraft 1.21.1 build.

Installation

Use Minecraft 1.21.1, Fabric Loader 0.19.5 or later, and Java 21. Install the Fabric editions of the mods listed below.

Required mods

ModVersion used by this build
DedsafioStarships1.0.0
Superb Warfare ReFabricated1.21.1-0.8.9.2
Fabric API0.116.17+1.21.1
Veil Lib4.5.2
Forge Config API Port21.1.6
Fabric Language Kotlin1.13.2+kotlin.2.1.20
GeckoLib4.7.5
Cloth Config API15.0.140+fabric
Trinkets3.10.0

The SBW version above is required by the addon. The other versions in the table are the project’s current dependency versions; this table does not claim compatibility with every newer release.

The published SBW JAR bundles additional libraries, including Cardinal Components, Extensible Enums, and ModernKeyBinding. Keep these bundled libraries in place.

Optional interplanetary travel

Install these mods to enable planetary destinations and the full autopilot sequence:

ModVersion used by this build
Ad Astra1.16.26 for Fabric 1.21.1
Resourceful Lib3.0.12
Resourceful Config3.0.11
Common Storage Lib0.0.10

Ad Astra supplies the planets. DedsafioStarships supplies the ship’s flight sequence and visual transitions.

Installing on a client or server

  1. Create a Fabric instance for Minecraft 1.21.1 using Java 21.
  2. Put the addon and its required mods in the instance’s mods/ folder.
  3. Add Ad Astra and its dependencies if you want interplanetary travel.
  4. Launch the instance to generate configuration files.

For multiplayer, install the addon and the same dependency set on the server and every joining client. An existing shader pack is not required for the flight effects; the addon renders them through Veil.

Your First Flight

Deploy the ship

Use the Starship vehicle container from SBW to place the ship on open ground. Leave room around the wings and above the cabin. The cockpit door starts open.

Operators can also spawn the entity with:

/summon dedsafiostarships:starship ~ ~ ~

The ship uses SBW’s energy system. Check that it has energy before trying to launch.

Board and launch

  1. Interact with the ship to board the pilot seat. The door closes automatically.
  2. Press an SBW vehicle movement control to start the engine. Forward, backward, ascend, or descend input can start it.
  3. Wait through ignition. The engine start sound, camera shake, and exhaust play before the ship begins its vertical ascent.

The ship uses SBW’s vehicle key bindings. Check Minecraft’s Controls menu if you have changed them or if another mod uses the same keys.

Choose a destination

With Ad Astra installed, launch from one of its supported surface worlds. The ship rises into the orbital view before opening the destination menu.

Choose a planet to begin the jump. Choose Return to the surface to land in the current world. Closing the menu also selects a return to the current surface.

If the server has enabled starshipFixedDestination, the autopilot chooses the server’s destination and skips free selection. Departing from that planet sends you back to Earth. See Server Configuration.

Let the autopilot land

Remain aboard while the ship completes its jump and descent. It rotates into its landing position, searches for clear ground, and brakes near touchdown. After landing, the engine stops and the door opens, even if you are still seated.

Release the movement controls after touchdown before starting another flight.

Flying without Ad Astra

The engine still starts normally and the ship ascends vertically to TakeoffAltitude, which defaults to Y=750. The destination menu and planetary landing sequence are unavailable. This altitude is a world Y coordinate, rather than a distance measured from the launch pad.

Flight and Autopilot

The full sequence requires Ad Astra and a launch world registered as a surface planet. The autopilot handles the ship’s movement throughout the route.

Flight sequence

StageWhat happens
TakeoffThe engine ignites, the camera shakes, and the ship begins ascending vertically.
Atmospheric transitThe ship continues upward through the volumetric cloud layer.
Atmosphere exitThe orbital view appears and the ship rotates for travel.
Destination selectionYou select a planet, or the server chooses its configured destination.
Temporal jumpThe jump effects start and the destination planet gradually grows in view. The server prepares the landing area.
StabilizationJump effects stop and the destination’s orbital view remains visible.
ApproachThe ship automatically rotates into its vertical landing orientation.
LandingThe ship descends through clouds, enters the destination world, and brakes above safe ground.
LandedThe engine stops and the cockpit door opens.

At the default settings, clouds start during ascent at Y=300. Their upper opening reveals the orbital view as the ship reaches space. Takeoff exhaust switches off in the orbital stages.

During descent, a heat shield effect forms beneath the ship. Close to the ground, the engine produces a landing burn and a smaller camera shake.

Cameras and cabin

The pilot’s seat follows the vertical rocket orientation. First-person view uses the cockpit camera, while third-person view supports SBW’s free camera. Use Minecraft’s perspective control and SBW’s camera controls to change your view.

The door opens when the ship is placed, closes when the pilot boards, and opens after an automatic landing. It also opens when the pilot seat is empty.

While aboard a healthy Starship, Ad Astra’s oxygen, temperature, and acid-rain checks protect the passenger. That protection ends when you leave the ship. Bring the equipment required by your destination before disembarking.

Destinations and landing sites

The destination menu lists available Ad Astra surface planets within the ship’s PlanetTier. The default tier is 4. Ad Astra’s disabled-planet settings also affect which destinations are available.

Normal travel uses Ad Astra’s arrival location as the preferred landing area. A fixed server route uses the configured X/Z area instead. The autopilot searches nearby for solid ground and enough clearance for the ship, and avoids landing inside another Starship.

The orbital planet view is a procedural visual configured by datapacks. It is not a live map of the terrain below.

Terrain transfer

The server prepares destination chunks during the jump. The actual dimension transfer happens during descent, inside the cloud layer, at Y=591 by default. The addon keeps the flight view visible through the transfer and suppresses the normal terrain-loading screen for this sequence.

See Datapack Reference before changing the cloud or transfer altitudes. Their overlap conceals the change between the orbital view and the destination terrain.

Server Configuration

Server settings use Forge Config API Port. The destination restriction is a Minecraft gamerule, so it can be enabled or disabled separately from the configured route.

Restrict destination selection

Enable the fixed route with:

/gamerule starshipFixedDestination true

The rule defaults to false. When enabled, the ship chooses the configured destination automatically after reaching orbit. Players cannot override it with a destination selection packet.

To allow free selection again:

/gamerule starshipFixedDestination false

Configure the route

Launch the world or server once to generate dedsafiostarships-server.toml. Stop the world or server before editing it, then restart to apply your settings. Use the file generated by Forge Config API Port for that instance; the development instance stores it under config/.

The default configuration is:

[autopilot]
destination = "ad_astra:moon"
arrivalX = 0
arrivalZ = 0
arrivalSpread = 64
SettingMeaning
destinationAd Astra surface dimension used by the fixed route.
arrivalXCenter X coordinate of the preferred arrival area.
arrivalZCenter Z coordinate of the preferred arrival area.
arrivalSpreadRadius, in blocks, for the random arrival offset. Allowed range: 0 to 4096.

The server determines landing Y from the terrain. Do not add a Y setting.

arrivalX and arrivalZ each accept values between -29,999,000 and 29,999,000. The landing area must also fit inside the destination world’s border.

For example, to send ships toward an area on Mars:

[autopilot]
destination = "ad_astra:mars"
arrivalX = 1200
arrivalZ = -800
arrivalSpread = 96

Each flight chooses a random point within that radius. The safe landing search can move the final position nearby, so the radius is not a strict boundary for touchdown. Random offsets reduce clustering; they do not reserve a unique landing pad for every ship.

The safe landing search radius is a separate datapack setting, LandingSearchRadius. See Datapack Reference.

Return to Earth

With the rule enabled, departing from the configured planet sends the ship to Earth (minecraft:overworld). The return area follows Ad Astra’s recorded arrival information, with arrivalSpread applied around it.

For the default route, this produces:

Earth -> Moon -> Earth

The configured arrivalX and arrivalZ apply to the selected planet, rather than replacing the Earth return coordinates.

Unavailable destinations

The configured dimension must exist, be an available Ad Astra surface destination, and be within the ship’s tier. If it is unavailable, the ship stays in orbit and reports an error. It does not fall back to unrestricted destination selection.

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.

Troubleshooting

Fabric reports missing or incompatible mods

Check the Installation tables and use the Fabric 1.21.1 editions. The addon requires SBW 1.21.1-0.8.9.2 and Java 21.

If Fabric reports missing extensibleenums, mkb, or Cardinal Components, check that you installed the full published SBW JAR. These libraries are bundled in that release. A development classpath and a normal launcher installation can resolve nested libraries differently.

The ship does not launch

Board the pilot seat, check the ship’s energy and health, and press an SBW vehicle movement control. The default ignition delay is two seconds. Check the Controls menu for conflicting key bindings if the engine does not respond.

After an automatic landing, release the movement controls before pressing one again to restart.

The ship rises but no destination menu appears

The planetary sequence requires Ad Astra. It also requires a launch dimension registered by Ad Astra as a surface planet. Without those conditions, the ship uses its vertical ascent behavior.

If starshipFixedDestination is enabled, the absence of a selection menu is expected: the server chooses the destination. See Server Configuration.

A planet is missing from the menu

Check that its dimension exists on the server, that Ad Astra has not disabled it, and that its tier does not exceed the ship’s PlanetTier. Space dimensions are not offered as surface landing destinations.

The ship reports an unavailable configured destination

Check destination in dedsafiostarships-server.toml. It must name an available Ad Astra surface dimension within the ship’s tier. The default is ad_astra:moon.

When a fixed route is invalid, the ship remains in orbit instead of allowing a different destination.

No safe landing site was found

The search needs a solid, dry 3-by-3 ground area with no leaves beneath the landing point, plus an unobstructed area about 10 blocks wide and 7 blocks tall. It also checks the world border and nearby Starships.

Move the configured arrival center to more open ground, or adjust LandingSearchRadius within its supported range. Dense buildings, oceans, steep terrain, and occupied landing areas can prevent a safe arrival.

The jump waits longer than expected

JumpTicks is a minimum duration. The server waits for destination chunks before proceeding. If preparation fails, the ship reports an error and remains in orbit.

Check the server log and the availability of the destination world. Newly generated terrain can take longer to prepare than an area that already exists.

Flight effects are missing or a shader fails to load

Confirm that Veil Lib 4.5.2 is installed. Check logs/latest.log for shader compilation or resource-loading errors. If you use other rendering mods or shader packs, include their names and versions when reporting the issue.

A datapack change does not appear

Check /datapack list, run /reload, and inspect the log for JSON errors. Match the file path, namespace, and field capitalization shown in Datapack Reference. Keep the full vehicle definition when overriding starship.json.

Start a new flight to assess changed timing or altitude settings.

Reporting a problem

Include Minecraft, Fabric Loader, SBW, Veil, Ad Astra, and addon versions, along with logs/latest.log and any crash report. Describe the launch dimension, selected destination, flight stage, and relevant datapack or server settings. For visual issues, include the camera perspective and a screenshot or short recording.