prepare('SHOW TABLES LIKE :table_name'); $stmt->execute([':table_name' => $tableName]); $cache[$tableName] = (bool)$stmt->fetchColumn(); } catch (Throwable $e) { $cache[$tableName] = false; } return $cache[$tableName]; } function rarity_table_columns(string $tableName): array { static $cache = []; if (isset($cache[$tableName])) return $cache[$tableName]; $cache[$tableName] = []; if (!rarity_table_exists($tableName)) return $cache[$tableName]; try { foreach (db()->query('SHOW COLUMNS FROM ' . $tableName)->fetchAll() as $col) { $cache[$tableName][$col['Field']] = true; } } catch (Throwable $e) { $cache[$tableName] = []; } return $cache[$tableName]; } function rarity_first_existing_column(array $columns, array $candidates): ?string { foreach ($candidates as $candidate) { if (isset($columns[$candidate])) return $candidate; } return null; } function rarity_normalise_value(?string $value, string $group): string { $value = trim((string)$value); if ($value === '') return 'none'; $lower = strtolower($value); if (in_array($lower, ['0', 'none', 'null', 'no', '-', 'n/a'], true)) { return 'none'; } if ($group === 'coat') { $map = [ 'c_orange' => 'c_orange', 'orange' => 'c_orange', 'c_green' => 'c_green', 'green' => 'c_green', 'c_grey' => 'c_grey', 'grey' => 'c_grey', 'gray' => 'c_grey', 'c_og_mix' => 'c_og_mix', 'fusion' => 'c_og_mix', 'og_mix' => 'c_og_mix', ]; return $map[$lower] ?? $lower; } if ($group === 'eyes') { $map = [ 'e_green' => 'e_green', 'green' => 'e_green', 'verdant' => 'e_green', 'e_orange' => 'e_orange', 'orange' => 'e_orange', 'amber' => 'e_orange', ]; return $map[$lower] ?? $lower; } return $lower; } function rarity_trait_label(string $group, string $value): string { $value = strtolower(trim($value)); if ($value === 'none') { return $group === 'coat' ? 'Unknown' : 'None'; } if ($group === 'coat') { $map = [ 'c_grey' => 'Grey', 'c_green' => 'Grass Green', 'c_orange' => 'Orange Fury', 'c_og_mix' => 'Fusion', ]; return $map[$value] ?? ucwords(str_replace(['_', '-'], ' ', preg_replace('/^c_/', '', $value))); } if ($group === 'eyes') { $map = [ 'e_green' => 'Verdant', 'e_orange' => 'Amber', ]; return $map[$value] ?? ucwords(str_replace(['_', '-'], ' ', preg_replace('/^e_/', '', $value))); } return ucwords(str_replace(['_', '-'], ' ', preg_replace('/^[a-z]_/', '', $value))); } function rarity_trait_note(string $group, string $value): string { $value = strtolower(trim($value)); $notes = [ 'coat' => [ 'c_grey' => 'Original landing form', 'c_green' => 'Green-fed line', 'c_orange' => 'Orange-fed line', 'c_og_mix' => 'Blended colour path', ], 'eyes' => [ 'e_green' => 'Green eye line', 'e_orange' => 'Orange eye line', ], 'horns' => [ 'none' => 'No horn expression', ], 'tail' => [ 'none' => 'No tail expression', ], ]; if (isset($notes[$group][$value])) return $notes[$group][$value]; if ($group === 'horns') return 'Structural horn variation'; if ($group === 'tail') return 'Structural tail variation'; return 'Registered population trait'; } function rarity_band(float $percent): string { if ($percent <= 2.0) return 'Legendary'; if ($percent <= 5.0) return 'Ultra Rare'; if ($percent <= 12.0) return 'Rare'; if ($percent <= 25.0) return 'Uncommon'; return 'Common'; } function rarity_band_class(string $label): string { $map = [ 'Common' => 'r-common', 'Uncommon' => 'r-uncommon', 'Rare' => 'r-rare', 'Ultra Rare' => 'r-ultra', 'Legendary' => 'r-legendary', ]; return $map[$label] ?? 'r-common'; } function rarity_image_url(string $group, string $value): string { if ($value === 'none') return ''; $base = '/alien/assets/images/traits/' . $group . '/' . $value . '.png'; $full = $_SERVER['DOCUMENT_ROOT'] . $base; if (is_file($full)) { return $base; } return ''; } function rarity_fetch_data(): array { $result = [ 'total' => 0, 'discovered' => 0, 'groups' => [ 'coat' => [], 'eyes' => [], 'horns' => [], 'tail' => [], ], 'error' => '', ]; $cols = rarity_table_columns('aliens'); if (!$cols) { $result['error'] = 'Aliens table not found.'; return $result; } $statusCol = rarity_first_existing_column($cols, ['status', 'state', 'core_state']); $stageCol = rarity_first_existing_column($cols, ['stage']); $coatCol = rarity_first_existing_column($cols, ['coat_code', 'coat']); $eyesCol = rarity_first_existing_column($cols, ['eye_code', 'eyes', 'eye_colour', 'eyes_code']); $hornsCol = rarity_first_existing_column($cols, ['horns_code', 'horns']); $tailCol = rarity_first_existing_column($cols, ['tail_code', 'tail']); $select = []; foreach ([$statusCol, $stageCol, $coatCol, $eyesCol, $hornsCol, $tailCol] as $col) { if ($col && !in_array($col, $select, true)) { $select[] = $col; } } if (!$select) { $result['error'] = 'No usable trait columns were found.'; return $result; } $sql = 'SELECT ' . implode(', ', $select) . ' FROM aliens'; $rows = db()->query($sql)->fetchAll(PDO::FETCH_ASSOC) ?: []; foreach ($rows as $row) { $statusRaw = strtolower(trim((string)($statusCol ? ($row[$statusCol] ?? '') : ''))); $stageRaw = strtolower(trim((string)($stageCol ? ($row[$stageCol] ?? '') : ''))); $inactiveStatuses = ['retired', 'inactive', 'deleted', 'dead', 'archived']; if (in_array($statusRaw, $inactiveStatuses, true)) continue; if ($stageRaw === 'egg' || $stageRaw === 'inactive') continue; $result['total']++; $coatValue = rarity_normalise_value($coatCol ? (string)($row[$coatCol] ?? '') : '', 'coat'); $eyesValue = rarity_normalise_value($eyesCol ? (string)($row[$eyesCol] ?? '') : '', 'eyes'); $hornsValue = rarity_normalise_value($hornsCol ? (string)($row[$hornsCol] ?? '') : '', 'horns'); $tailValue = rarity_normalise_value($tailCol ? (string)($row[$tailCol] ?? '') : '', 'tail'); foreach ([ 'coat' => $coatValue, 'eyes' => $eyesValue, 'horns' => $hornsValue, 'tail' => $tailValue, ] as $group => $value) { if (!isset($result['groups'][$group][$value])) { $result['groups'][$group][$value] = 0; } $result['groups'][$group][$value]++; } } foreach ($result['groups'] as $group => $items) { $cards = []; foreach ($items as $value => $count) { if ($result['total'] < 1) continue; $percent = ($count / $result['total']) * 100; $band = rarity_band($percent); $cards[] = [ 'value' => $value, 'label' => rarity_trait_label($group, $value), 'note' => rarity_trait_note($group, $value), 'count' => $count, 'percent' => $percent, 'band' => $band, 'band_class' => rarity_band_class($band), 'image' => rarity_image_url($group, $value), ]; } usort($cards, static function (array $a, array $b): int { return $b['count'] <=> $a['count']; }); $result['groups'][$group] = $cards; } $discovered = 0; foreach ($result['groups'] as $cards) { foreach ($cards as $card) { if ($card['value'] !== 'none') $discovered++; } } $result['discovered'] = $discovered; return $result; } $rarityData = rarity_fetch_data(); ?>
Everything you need to understand the ecosystem — care, progression, rarity, and the strange story behind the aliens.
Metariki Aliens are living collectibles within Second Life. They grow, carry inherited traits, respond to care, and build value through rarity, bloodlines, account progression, and ongoing activity.
Every alien carries structured traits such as coat, eyes, horns, and tail. These traits help define appearance, individuality, and long-term breeding potential.
Each alien belongs to a rarity tier, giving collectors a clear sense of scarcity and desirability across the wider ecosystem.
Aliens need ongoing care. Feeding is part of responsible custodianship, and the orange / green energy system influences development in meaningful ways.
Aliens progress through life stages over time, giving the collection a sense of life and continuity rather than feeling like static objects.
Your account also progresses as you take part in the ecosystem. XP reflects activity and growth, while Alien Points give players another reward layer tied to play and participation.
This adds a collector progression loop beyond simply owning the aliens themselves.
The aliens ecosystem also connects into collectibles and exploration-based play, adding another reason to log in, travel, search, and interact regularly.
This turns the project into a broader world rather than a single hatch-and-forget product.
Traits, tiers, family lines, account progress, and care systems all work together to make each alien feel like part of a larger evolving population.
You are not manufacturing them. You are discovering them, protecting them, and helping guide what happens next.
The Aliens HUD is your main control panel for your collection. It lets you view your account progress, inspect the currently selected alien, and carry out actions such as renaming, mating, movement control, retirement, and extermination.
This is your account overview page. It shows your account name, current level, title, total XP, progress bar, and Alien Points.
What’s on this page:
How to use it:
This page displays the details of the currently selected alien. It is the quickest way to inspect an alien’s identity, traits, status, and stage.
What’s on this page:
How to use it:
This page contains the main action buttons for the currently selected alien. It is where you manage name changes, movement, breeding links, retirement, and removal.
What’s on this page:
How to use it:
Breeding is one of the core parts of the aliens ecosystem, but it follows clear rules. Not every alien can breed immediately, and pairings are designed to protect bloodlines while still allowing meaningful trait development.
Breeding rules:
Food colour and breeding outcomes:
How to use this information:
The aliens world includes a collectibles game that rewards exploration around the sim. Players can search for hidden objects and earn extra Alien Points, adding another layer of activity beyond care, collecting, and breeding.
How the game works:
Why collectibles matter:
What this means for players:
No one can say with certainty where the aliens came from. What we do know is that they did not begin here. They arrived silently, carried across the dark in a strange craft that came to rest within the station that now forms the heart of the Aliens sim. Since that day, everything has changed.
The first sighting is now part of station history. A damaged vessel, unlike anything our researchers had ever catalogued, was discovered drifting on the edge of local space before being drawn into containment. Its outer shell was smooth, dark, and almost organic in appearance, as though it had been grown rather than built. Inside were living specimens: quiet, watchful beings with soft grey colouring, unknown biology, and behaviour unlike any other lifeform we had encountered.
The craft and its occupants were transferred into the station’s central laboratory, where the first controlled observations began. At first, the aliens appeared calm but difficult to understand. They showed little interest in ordinary food sources and seemed almost completely indifferent to the environments around them. For a time, our scientists feared they might weaken and disappear before anything meaningful could be learned.
Then a pattern emerged.
Through repeated tests, the research team discovered that the aliens responded only to two food groups with any consistency at all: green and orange. Not only were they drawn to these colours, they appeared to prefer them instinctively, almost as if recognising something essential within them.
The original aliens were all grey. That was their natural, untouched state when they first arrived on the station. But after sustained feeding trials, changes began to appear. Grey skin tones slowly shifted. Hints of green emerged in some lines, warm orange tones in others. What first looked like staining or reaction soon proved to be something much deeper.
The aliens were not merely consuming the food. They were responding to it, adapting to it, becoming shaped by it.
This discovery changed the entire direction of the programme. Feeding was no longer viewed as routine care alone. It became one of the first keys to understanding alien development, inheritance, and variation.
Colour was not cosmetic. Colour meant change.
As the station team continued its work, it became clear that the aliens were not only adaptable, but capable of passing their traits into future generations. Their appearance, their tendencies, and perhaps even their strengths could be influenced over time. A structured breeding programme was established to study these patterns carefully.
Since then, our scientists have continued experimenting with food sources, ingredients, and colour pathways in the hope of encouraging stronger, rarer, and more diverse alien lines. Green and orange remain the foundation of what we know so far, but they may not be the end of the story. There is growing belief within the laboratory that the original grey form may represent only the beginning of a far wider biological spectrum still waiting to be uncovered.
The greatest mystery remains unsolved: their origin.
Some researchers believe the aliens were sent deliberately — a living archive launched from a distant civilisation, carrying adaptable biological life designed to survive by bonding with new environments. Others believe the craft was never meant to arrive here at all, and that what we found was part of an ancient migration route lost far beyond any known map.
There are even those on the station who whisper a more unsettling theory: that the aliens are scouts, not survivors, and that their changing forms are not simply adaptation, but preparation.
As the programme expanded, one thing became clear. These beings could not remain the responsibility of the laboratory alone. They needed careful oversight, ethical breeding, attentive feeding, and long-term custodianship beyond the walls of the station.
That is where the community comes in.
Players have now been invited to take part in the breeding programme itself, not as simple collectors, but as trusted custodians of the aliens. With that role comes genuine responsibility. Every pairing, every feeding choice, every egg, and every generation contributes to the future of the species as we understand it.
As a custodian, you help guide bloodlines, support development, and care for living specimens whose biology is still only partly understood. Your decisions matter, and the effects of those decisions may carry forward into future generations.
With each generation, the aliens reveal a little more of themselves. New combinations may emerge. New traits may yet be awakened. What began as a mystery aboard a silent craft has become a living ecosystem — and its future is now shared between the station and those entrusted to care for it.
The station continues its research. The laboratory continues its work. And somewhere in the bloodlines of the aliens, hidden beneath grey, green, orange, and every future variation still to come, the truth of their origin may still be waiting.
This page tracks how common or rare each visible alien trait is across all registered live aliens. As the population changes, these percentages will change too, giving custodians a live view of which traits are widespread and which are becoming harder to find.
= htmlspecialchars($rarityData['error']) ?>
= htmlspecialchars($meta['desc']) ?>
No = htmlspecialchars(strtolower($meta['title'])) ?> found yet.
Percentages are calculated from currently active aliens in the database. Eggs and inactive / retired aliens are not counted in these figures.