Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tutosrive/Constellations/llms.txt

Use this file to discover all available pages before exploring further.

Each entry in a constellation’s starts array defines one star vertex in the graph. These properties serve two purposes: they control graph topology (which stars are connected and at what cost) and they govern the donkey’s resource changes when it visits, eats, or researches at a star. Understanding every field lets you craft constellations that are challenging, rewarding, or precisely balanced.

Star Properties

id
number
required
A unique integer identifier for this star within the file. The id is used exclusively in linkedTo references to form edges — it is not the runtime key. At load time, GraphController.load_graph() builds an id → label map and resolves all starId values to their corresponding label strings.
label
string
required
A single-character string shown inside the star node in the graph UI (e.g. "A", "B", "G"). Labels must be unique across the entire file because they become the primary vertex keys in the Graph data structure.
linkedTo
array
required
An array of connection objects that define directed edges from this star to its neighbours. Each object must contain:
  • starId (number) — the id of the target star.
  • distance (number) — the edge weight used by both the Dijkstra shortest-path algorithm and the longest-path finder.
See Connection Objects below for the full structure.
radius
number
The star’s visual radius used when rendering the node in the graph canvas. This value is purely cosmetic and has no effect on gameplay or path calculations. Typical values range from 0.3 to 1.0.
timeToEat
number
The amount of grass (in kg) the donkey consumes when it eats at this star. Eating is only possible when the donkey’s health is below 50 % and above 0 %. The donkey’s grass_stored is reduced by this value, and amountOfEnergy is recovered.
amountOfEnergy
number
The energy percentage gained when the donkey successfully eats at this star. The engine always treats this as a positive gain (negative values are converted via abs()). Energy is capped at 100.
researchTime
number
The number of time units spent researching this star. Together with energyPerResearchTime, this determines the total energy cost of a research action: energy_cost = researchTime × energyPerResearchTime.
energyPerResearchTime
number
Energy points deducted per unit of research time. See researchTime for the combined cost formula.
healthImpact
number
Health percentage change applied to the donkey after it completes research at this star. Positive values restore health; negative values damage it. The result is clamped to the range [0, 100].
ageImpact
number
Years added to (or subtracted from) the donkey’s age after research is completed. Negative values effectively rejuvenate the donkey. Age is clamped to a minimum of 0.
coordenates
object
required
A {"x": number, "y": number} object specifying the star’s pixel position on the canvas. The renderer uses these coordinates to place the node and to draw edges between connected stars. Note the field name is spelled coordenates (one i) — this is the canonical spelling in the source data.
hypergiant
boolean
When true, arriving at this star immediately opens a teleportation dialog that lets the donkey jump to a different star. If the player chooses to teleport, the donkey’s energy is boosted to min(100, energy × 1.5) and its grass supply is doubled before the jump. Additionally, when the donkey eats at a hypergiant star, it receives a +10 health bonus on top of the normal eating effect (capped at 100). Hypergiant stars are rendered in gold in the graph UI, making them visually distinct from standard stars.

Connection Objects (linkedTo)

Each element of the linkedTo array is an object with exactly two fields:
{
  "starId": 3,
  "distance": 5
}
FieldTypeDescription
starIdnumberThe id of the target star this edge leads to.
distancenumberThe edge weight — used as the cost metric by both the Dijkstra shortest-path algorithm and the longest-path-with-donkey algorithm. Higher distances cost more energy, health, and grass.
To create a bidirectional connection between two stars, add a matching linkedTo entry in each star’s array pointing back to the other. Most constellations in the bundled templates use bidirectional edges.

Example Star

The following is a complete star object taken from the bundled Constellations.json template. Star G (id 7) is a hypergiant — note the hypergiant: true flag, the notably positive healthImpact, and the long-range connections it offers.
{
  "id": 7,
  "label": "G",
  "linkedTo": [
    { "starId": 2, "distance": 6 },
    { "starId": 3, "distance": 9 },
    { "starId": 5, "distance": 15 },
    { "starId": 8, "distance": 3 }
  ],
  "radius": 0.5,
  "timeToEat": 2,
  "amountOfEnergy": 4,
  "researchTime": 1,
  "energyPerResearchTime": 2,
  "healthImpact": 10,
  "ageImpact": 3,
  "coordenates": { "x": 460, "y": 140 },
  "hypergiant": true
}
Hypergiant stars (rendered in gold) open a teleportation dialog on arrival that lets you jump to a distant part of the graph instantly, boosting the donkey’s energy (×1.5, capped at 100) and doubling its grass supply before the jump. If the donkey can eat at a hypergiant star, it also receives +10 health on top of the normal eating effect. Because hypergiant stars also tend to carry strong healthImpact bonuses through research, routing through one can rescue a donkey that would otherwise die mid-path — plan your routes to pass through them when health is low.

Build docs developers (and LLMs) love