-
Notifications
You must be signed in to change notification settings - Fork 0
PlanetData Reference
This page is the complete field reference for PlanetData JSON files, loaded from data/<namespace>/orrery_planets/*.json.
| Field | Type | Required | Description |
|---|---|---|---|
dimension |
string (resource key) | Yes | The dimension this planet corresponds to, e.g. "orrery:eris". Must match an existing dimension definition. |
planet_name |
string | Yes | Internal identifier used by Northstar's planet-name lookups (rocket destinations, etc.). |
gravity |
double | Yes | Surface gravity as a multiple of Earth's gravity. 1.0 = Earth-normal, 0.084 = Eris (~8.4%). Also drives fall damage scaling — see below. |
has_oxygen |
boolean | Yes | Whether the planet has a breathable atmosphere. |
temperature |
int | Yes | Surface temperature value, consumed by Northstar's temperature systems. |
atmosphere_cost |
int | Yes | Cost value for atmosphere-related Northstar mechanics. |
computing_cost |
int | Yes | Computing cost for navigating/landing on this planet. |
engine_constant |
double | Yes | Engine performance constant used in rocket travel calculations. |
sun_multiplier |
float | Yes | Northstar's internal sun-strength multiplier (e.g. solar panel output). Distinct from sky.sun_brightness. |
has_sky |
boolean | Yes | Whether Orrery's custom sky renderer (PlanetSkyMixin) handles this dimension's sky at all. If false, vanilla sky rendering applies. |
can_see_sky_at_day |
boolean | Yes | Whether the sky is visible during the in-game day cycle. |
has_weather |
boolean | Yes | Whether rain/snow weather can occur on this planet. |
seed_offset |
long | Yes | Offset applied to the world seed for this dimension's terrain generation. Ensures different planets sharing a base seed don't generate identical terrain. |
is_in_orbit |
boolean | Yes | Marks this dimension as an orbit-type location for Northstar's systems (as opposed to a surface). |
wind_multiplier |
float | Yes | Scales wind-related effects, where applicable. |
sky |
object | Yes if has_sky is true
|
Nested object describing sky rendering — see below. |
| Field | Type | Description |
|---|---|---|
has_stars |
boolean | Whether stars render in the sky. |
star_brightness |
float | Base star brightness. See the note on the brightness formula below. |
sun_brightness |
float | Brightness multiplier (0.0–1.0+) applied to the rendered sun disc. |
There is no separate fall damage field. PlanetFallDamageMixin computes effective fall distance as:
effectiveFallDistance = actualFallDistance * gravity
This effective distance is compared against the vanilla 3-block safe-fall threshold. A planet with gravity: 0.084 lets players fall roughly 12x further than on Earth before taking damage, since the effective distance is scaled down proportionally.
PlanetSkyMixin computes rendered star brightness as:
renderedBrightness = sky.star_brightness - (vanillaStarBrightness(partialTick) * 0.5)
vanillaStarBrightness follows the normal Minecraft day/night cycle (0 during day, ramping up at night). This means:
- During the in-game "day",
renderedBrightness ≈ sky.star_brightness(stars near full configured brightness) - During the in-game "night",
renderedBrightnessis reduced by up to 0.5 This is intentional — on an airless world, the day/night cycle doesn't represent atmospheric scattering, but the formula still produces a subtle variation tied to the cycle for visual interest.
If has_sky is true, a small sun disc is rendered using the northstar:textures/environment/baresun.png texture, tinted by sky.sun_brightness (applied as an RGB multiplier, with alpha fixed at 1.0). A sun_brightness of 1.0 is full white; lower values dim the sun toward black.
These are separate fields with separate purposes:
-
sun_multiplier— read byNorthstarPlanetsMixin, affects Northstar's gameplay mechanics (e.g. solar panel power generation) -
sky.sun_brightness— read byPlanetSkyMixin, purely visual, affects how bright the rendered sun disc appears A planet could theoretically have a visually bright sun (sky.sun_brightness: 1.0) but contribute nothing to solar power (sun_multiplier: 0.0), or vice versa. Set both according to what makes sense for the planet — for Eris, both are low/zero since it's extremely distant from the Sun.
PlanetDataLoader parses each file with PlanetData.CODEC. If a file fails to parse:
-
The specific file is skipped (logged as
[Orrery] Failed to parse planet <id>: <error>) -
Other valid files in the same reload are still loaded normally
-
The planet from the failed file will not appear in
/orreryor be recognized by any Mixin Common parse failures: -
Missing required fields
-
Wrong types (e.g. a string where a number is expected)
-
Malformed or missing
skyobject whenhas_skyistrue— note thatskyis part of the top-level codec group, so a malformedskyobject fails the entire file's parse, not just the sky portion
{
"dimension": "orrery:eris",
"planet_name": "eris",
"gravity": 0.084,
"has_oxygen": false,
"temperature": -230,
"atmosphere_cost": 0,
"computing_cost": 900,
"engine_constant": 15.0,
"sun_multiplier": 0.0,
"has_sky": true,
"can_see_sky_at_day": true,
"has_weather": false,
"seed_offset": 9,
"is_in_orbit": true,
"wind_multiplier": 0.0,
"sky": {
"has_stars": true,
"star_brightness": 1.0,
"sun_brightness": 0.6
}
}