To register a Body, you need to create a JSON file at data/corewithstuff/cws_planets/planetname.json

Example JSON

{
  "dimension": "modid:planet_name", // Target dimension ID.
  "display_name": "Display Name", // Display Name it will use on Fast Travel Screen
  "removed": false, // True deletes this body. Only "dimension" is read alongside it.
  "universe": "modid:universe_name", // Universe registry ID.
  "galaxy": "modid:galaxy_name", // Galaxy registry ID.
  "system": "System Name", // Solar system name in UI.
  "description": "Fast travel description.", // Fast travel menu text.
  "use_custom_lighting": true, // Enables custom mod lighting.
  "use_distant_structures": false, // True renders player builds past the view distance.
  "travel_data": {
    "unlocked_by_default": true, // True grants free access.
    "unlocking_fee": {
      "items": [
        {
          "item": "minecraft:diamond", // Required item ID.
          "amount": 8 // Required item quantity.
        }
      ],
      "scoreboards": [
        {
          "objective": "space_credits", // Scoreboard objective currency.
          "amount": 2500 // Scoreboard cost.
        }
      ],
      "advancements": [
        "minecraft:story/mine_diamond" // Required advancement.
      ]
    },
    "travel_cost": {
      "items": [
        {
          "item": "minecraft:ender_pearl", // Item consumed per trip.
          "amount": 2 // Quantity consumed per trip.
        }
      ],
      "scoreboards": [
        {
          "objective": "space_fuel", // Score deducted per trip.
          "amount": 100 // Amount deducted per trip.
        }
      ],
      "advancements": [
        "minecraft:story/enter_the_end" // Required advancement to travel.
      ]
    }
  },
  "texture": "modid:textures/environment/space_skybox.png", // Skybox texture path.
  "wormhole_texture": "modid:textures/environment/wormhole.png", // Travel screen texture path.
  "gravity_multiplier": 1.0, // Gravity scale relative to vanilla (1.0).
  "has_oxygen": true, // False causes suffocation without protection.
  "has_radiation": false, // True enables radiation damage.
  "use_sky_bodies": false, // True enables Space Bodies showing up in sky, paired with "use_core_skybox"
  "sky_latitude": 0.0, // Observer latitude in degrees. Tilts the sky bodies rotate around.
  "sky_longitude": 0.0, // Observer longitude in degrees. Offsets the sky starting angle.
  "has_acid_rain": false, // True makes rain damage exposed players.
  "is_burning": false, // True applies fire damage.
  "negates_fall_damage": false, // True disables fall damage.
  "bed_works": true, // False causes beds to explode.
  "use_core_skybox": true, // True replaces vanilla skybox.
  "environment_meteors": false, // True spawns ambient sky meteor particles. Also accepts an object with an "enabled" field.
  "hologram_in_dimension": "modid:space_dimension", // Dimension where body renders in sky.
  "planet_texture": "modid:textures/planet/planet_name.png", // Sky rendering texture.
  "planet_location": [45000.0, 10000.0, 0.0], // [x, y, z] sky coordinates. Unused if orbiting_planet is set.
  "planet_size": 1000.0, // Sky render size.
  "fast_travel_scale": 1.0, // Fast travel map scale (0.05 to 12.0).
  "body_shape": "sphere", // Geometry: sphere, cube, crystal, torus, ringworld, pyramid, octahedron, icosahedron, shard, disc.
  "atmosphere_color": "#6644AAFF", // Atmosphere color (ARGB, #AARRGGBB).
  "atmosphere_thickness": 0.2, // Atmosphere height multiplier. Also extends the landing radius.
  "atmosphere_density": 1.0, // Atmosphere visual opacity.
  "tilt_x": 23.5, // X-axis tilt in degrees.
  "tilt_y": 0.0, // Y/Z-axis tilt in degrees.
  "rotation_period_ticks": 24000, // Ticks per full rotation (24000 = 1 day). Use one rotation key only.
  "rotation_period_days": 1.0, // Days per full rotation.
  "rotation_period_years": 1.0, // Years per full rotation.
  "rotation_speed": 0.0, // Raw rotation speed (degrees/tick).
  "emissive": false, // True renders fullbright and casts light.
  "glow_color": "#FFFF830A", // Emitted light color (ARGB, #AARRGGBB).
  "glow_radius": 1.0, // Light and lens flare multiplier.
  "destruction_duration_ticks": 90, // Destruction animation length in ticks.
  "landing_radius_scale": 0.0, // Landing radius multiplier (0 = auto).
  "shadow_radius_scale": 0.0, // Shadow radius multiplier (0 = auto).
  "orbiting_planet": "modid:parent_body_dimension", // Parent dimension ID. Overrides planet_location.
  "orbit_period_ticks": 24000, // Ticks per orbit. Use one orbit key only.
  "orbit_period_days": 27.32, // Days per orbit.
  "orbit_period_years": 1.0, // Years per orbit.
  "orbit_speed": 0.0, // Raw orbit speed.
  "orbit_radius": 45000.0, // Distance from parent body.
  "orbit_phase": 0.0, // Starting angle in degrees.
  "orbit_inclination": 0.0, // Orbital tilt in degrees.
  "rings": [
    {
      "texture": "modid:textures/planet/rings.png", // Ring texture path.
      "rotation_speed": 10.0, // Rotation speed.
      "rotation_direction": "up", // Axis: up, down, north, south, east, west, diagonal.
      "destination": "modid:destination_dimension", // Dimension ID when landing on rings.
      "tilt_x": 0.0, // X-axis tilt.
      "tilt_z": 0.0, // Z-axis tilt.
      "inner_radius": 1.3, // Inner boundary relative to planet size.
      "outer_radius": 2.6, // Outer boundary relative to planet size.
      "opacity": 0.85, // Ring opacity (0.0 to 1.0). 0 also removes it from the landing volume.
      "meteor_ring": false, // True replaces texture with 3D meteors.
      "meteor_texture": "modid:textures/planet/meteor.png", // 3D meteor texture.
      "meteor_shape": "auto", // Meteor shape: auto, cube, irregular.
      "meteor_count": 768, // Meteor count (0 to 4096).
      "meteor_min_size": 1.5, // Min size in half-blocks.
      "meteor_max_size": 8.0, // Max size in half-blocks.
      "meteor_thickness": 0.12, // Vertical spread.
      "meteor_irregularity": 0.65, // Deformation factor (0.0 to 1.0).
      "meteor_seed": 0, // Generation seed (0 = auto).
      "meteor_fade_start": 0.0, // Fade start distance (0 = auto).
      "meteor_fade_end": 0.0, // Fade end distance (0 = auto).
      "meteor_collision": false, // True enables physical collisions.
      "meteor_collision_distance": 384.0, // Collision calculation radius.
      "meteor_restitution": 0.58 // Bounciness factor (0.0 to 1.25).
    }
  ],
  "planet_layers": [
    {
      "name": "solid_surface", // Identifier for configuration.
      "type": "surface", // Type: surface, ocean, clouds, shell, core, glow, custom.
      "texture": "modid:textures/planet_layers/surface.png", // Layer texture.
      "shape": "inherit", // Geometry: inherit, sphere, cube, crystal, torus, ringworld, pyramid, octahedron, icosahedron, shard, disc.
      "blend": "opaque", // Blend mode: opaque, alpha, cutout, additive.
      "radius": 1.0, // Scale multiplier relative to base planet.
      "color": "#FFFFFFFF", // ARGB tint color.
      "opacity": 1.0, // Layer transparency (0.0 to 1.0).
      "rotation_speed": 0.0, // Layer rotation speed. Scrolls the texture across the mesh, it does not spin the mesh.
      "tilt_x": 0.0, // X-axis tilt in degrees.
      "tilt_y": 0.0, // Y-axis tilt in degrees.
      "tilt_z": 0.0, // Z-axis tilt in degrees.
      "uv_scroll": [0.0, 0.0], // [U, V] scroll speed vector.
      "uv_scroll_u": 0.0, // Horizontal scroll speed.
      "uv_scroll_v": 0.0, // Vertical scroll speed.
      "emissive": false, // True ignores external light.
      "depth_write": true, // True writes to depth buffer.
      "double_sided": false, // True renders inside faces.
      "collidable": true, // True enables player collisions and landing.
      "casts_shadow": true, // True casts shadows.
      "lighting_strength": 1.0, // Direct light multiplier.
      "ambient_light": 0.22, // Unlit side illumination (0.0 to 1.0).
      "fresnel_strength": 0.08, // Edge glow strength.
      "fresnel_power": 4.0, // Edge glow sharpness.
      "specular_strength": 0.18, // Highlight reflection intensity.
      "specular_power": 64.0, // Highlight reflection sharpness.
      "alpha_cutoff": 0.1, // Cutout alpha threshold. Used when blend is cutout.
      "render_order": 100 // Sorting priority (lower renders first).
    }
  ]
}

Planet Texture Template

Sphere And Cube

sphere_template.png

Skybox Texture Template