DayTrippers Planet Generation System

Apr 17, 2025

The interstellar destination below was created using the DayTrippers Planet Generation rules (now in beta testing). Click here to generate another one.

0) {
$planetCount += rand(1,6);
$planetCountDice–;
}
return $planetCount;
}

function planetSize($planetMod) {
$planetSizeArray = array(“”, “”, “Small Rock Planet”, “Small Rock Planet”, “Asteroid”, “Moon”, “Artificial Satellite”, “Medium Rock Planet”, “Large Rock Planet”, “Gas Giant”, “Gas Giant”, “Gas Giant”, “Rogue Planet”);
$gravityModArray = array(0, 0, -3, -3, -3, -5, -2, -1, 0, 5, 5, 5, -3);
$planetSizeRoll = rand(1,6) + rand(1,6) + $planetMod;
if($planetSizeRoll < 2) { $planetSizeRoll = 2; } if($planetSizeRoll > 12) {
$planetSizeRoll = 12;
}
$planetSize = $planetSizeArray[$planetSizeRoll];
$gravityMod = $gravityModArray[$planetSizeRoll];
return array($planetSize, $gravityMod);
}

function gravity($gravityMod) {
$gravityBase = 0;
$divide = 0;
$gravityArray = array(“”, “”, “12”, “12”, “12”, “11”, “11”, “1”, “2”, “2”, “2”, “4”, “4”, “4”, “6”);
$atmoModArray = array(0, 0, -2, -2, -2, -1, -1, 0, 3, 3, 3, 5, 5, 5, 6);
$gravityRoll = rand(1,6) + rand(1,6) + $gravityMod;
if($gravityRoll < 2) { $gravityRoll = 2; } if($gravityRoll > 14) {
$gravityRoll = 14;
}
$gravityVal = $gravityArray[$gravityRoll];
if($gravityVal > 10) {
$gravityVal -= 10;
$divide = 1;
}
while($gravityVal > 0) {
$gravityBase += rand(1,6);
$gravityVal–;
}
if($divide) {
$gravity = number_format(1 / $gravityBase, 2);
} else {
$gravity = $gravityBase;
}
$atmoMod = $atmoModArray[$gravityRoll];
return array($gravity, $atmoMod);
}

function atmosphere($atmoMod, $gravity = 1) {
$atmoArray = array(“”, “”, “Atmosphere is escaping the planet”, “Atmosphere is escaping the planet”, “Atmosphere is escaping the planet”, “Extremely thin, no Oxygen”, “Chlorine”, “Carbon Dioxide”, “Nitrogen/Oxygen with heavy gases, Propane, Butane”, “Dense Air (Nitrogen/Oxygen)”, “Nitrogen/Oxygen with Ozone in Stratosphere”, “Nitrogen/Oxygen with trace toxins”, “Ammonia & Methane”, “Hydrogen & Helium”, “Exotic toxic gases”);
$waterModArray = array(0, 0, -6, -6, -6, -6, -4, -3, -2, -1, 1, 0, -4, -5, -6);
$atmosphereRoll = rand(1,6) + rand(1,6) + $atmoMod;
if($atmosphereRoll < 2) { $atmosphereRoll = 2; } if($atmosphereRoll > 14) {
$atmosphereRoll = 14;
}
$atmosphere = $atmoArray[$atmosphereRoll];
$waterMod = $waterModArray[$atmosphereRoll];
$pressure = $atmosphereRoll * $gravity;
return array($atmosphere, $waterMod, $pressure);
}

function water($waterMod) {
$waterArray = array(“”, “”, “No standing water”, “Arid rock/desert world, very little standing water”, “Arid rock/desert world, very little standing water”, “Arid rock/desert world, very little standing water”, “Semi-Arid world, water frozen or beneath surface”, “land”, “land”, “Ocean world”, “Water vapor makes up most of the atmosphere”);
$waterRoll = rand(1,6) + rand(1,6) + $waterMod;
if($waterRoll < 2) { $waterRoll = 2; } if($waterRoll > 10) {
$waterRoll = 10;
}
$water = $waterArray[$waterRoll];
return $water;
}

function climate() {
$climateArray = array(“”, “”, “Frozen solid; ice & rock”, “Frozen solid; ice & rock”, “Arctic conditions”, “Arctic conditions”, “Cold”, “Temperate”, “Hot”, “Greenhouse conditions”, “Greenhouse conditions”, “Wildly variable”, “Hellish”);
$precipDLArray = array(0, 0, 0, 0, 5, 5, 6, 7, 9, 8, 8, 5, 10);
$climateRoll = rand(1,6) + rand(1,6);
if($climateRoll < 2) { $climateRoll = 2; } if($climateRoll > 12) {
$climateRoll = 12;
}
$climate = $climateArray[$climateRoll];
$precipDL = $precipDLArray[$climateRoll];
return array($climate, $precipDL);
}

function biosphere() {
$biosphereArray = array(“”, “”, “Biotoxins in atmosphere”, “Biotoxins in atmosphere”, “No life”, “No life”, “Proto-organisms in suspension”, “Proto-organisms and non-mobile lifeforms”, “Non-sentient lower lifeforms”, “Sentient lifeforms”, “Sentient lifeforms”, “Highly evolved lifeforms”, “Highly evolved lifeforms”);
$biosphereRoll = rand(1,6) + rand(1,6);
$biosphere = $biosphereArray[$biosphereRoll];
return $biosphere;
}

/* BIDNEZ */

$starIndex = 0;
$starType = ‘Star’;
$stars = array();
$planetName = planetName();

$starSizeData = starSize();
/*
$stars[0][‘starSize’] = $starSizeData[0];
$stars[0][‘colorMod’] = $starSizeData[1];
$stars[0][‘planetMod’] = $starSizeData[2];
*/
$starSize = $starSizeData[0];
$colorMod = $starSizeData[1];
$planetMod = $starSizeData[2];

$starColorData = starColor($colorMod, 0); // 1=forcespecial 0=dont
$starColor = $starColorData[0];
$planetCountDice = $starColorData[1];
if($starColor == ‘Special’) {
$starSpecial = specialStar();
$starType = $starSpecial;
switch($starSpecial) {
case ‘Dwarf’ :
$starSize = ‘less than 0.1 times ‘;
$starType = ‘Dwarf Star’;
$starColorData = starColor(0);
$starColor = $starColorData[0];
if($starColor == ‘Special’) {
$starColor = ‘Black’;
}
break;
case ‘Cluster’ :
$starType = ‘Star’;
$starIndex++;
$starColorData = starColor(0);
$starColor = $starColorData[0];
if($starColor == ‘Special’) {
$starSize = ‘- tiny compared to ‘;
$starType = ‘Neutron Star’;
$starColor = ”;
}
break;
case ‘Nova’ :
$starSize = (rand(1,6) * rand(1,6) * 10) . ‘ light-years across’;
$starColor = ”;
break;
case ‘Brown Dwarf Star’ :
case ‘Pulsar’ :
case ‘Quasar’ :
case ‘Black Hole’ :
$starSize = ‘- tiny compared to ‘;
$starColor = ”;
break;
default :
$starType = ‘Star’;
break;
}
}
$stars[0][‘starSize’] = $starSize;
$stars[0][‘starType’] = $starType;
$stars[0][‘starColor’] = $starColor;

if($starIndex) {
while($starIndex > 0) {
$starSizeData = starSize();
$starSize = $starSizeData[0];
$colorMod = $starSizeData[1];
$planetMod = $starSizeData[2];
$starColorData = starColor($colorMod);
$starColor = $starColorData[0];
// $planetCountDice = $starColorData[1];
if($starColor == ‘Special’) {
$starSpecial = specialStar();
$starType = $starSpecial;
switch($starSpecial) {
case ‘Dwarf’ :
$starSize = ‘less than 0.1 times ‘;
$starType = ‘Dwarf Star’;
$starColorData = starColor(0);
$starColor = $starColorData[0];
if($starColor == ‘Special’) {
$starColor = ‘Black’;
}
break;
case ‘Cluster’ :
$starType = ‘Star’;
$starIndex++;
$starColorData = starColor(0);
$starColor = $starColorData[0];
if($starColor == ‘Special’) {
$starSize = ‘- tiny compared to ‘;
$starType = ‘Neutron Star’;
$starColor = ”;
}
break;
case ‘Nova’ :
$starSize = (rand(1,6) * rand(1,6) * 10) . ‘ light-years across’;
$starColor = ”;
break;
case ‘Brown Dwarf Star’ :
case ‘Pulsar’ :
case ‘Quasar’ :
case ‘Black Hole’ :
$starSize = ‘- tiny compared to ‘;
$starColor = ”;
break;
default :
$starType = ‘Star’;
break;
}
}
$stars[$starIndex][‘starSize’] = $starSize;
$stars[$starIndex][‘starType’] = $starType;
$stars[$starIndex][‘starColor’] = $starColor;
$starIndex–;
}
}

$planetCount = planetCount($planetCountDice);
$romanArray = array(”, ‘I’, ‘II’, ‘III’, ‘IV’, ‘V’, ‘VI’, ‘VII’, ‘VIII’, ‘IX’, ‘X’, ‘XI’, ‘XII’, ‘XIII’, ‘XIV’, ‘XV’, ‘XVI’, ‘XVII’, ‘XVIII’);
$planetNumber = rand(1,$planetCount);
$romanNumber = $romanArray[$planetNumber];

$planetSizeData = planetSize($planetMod);
$planetSize = $planetSizeData[0];
$gravityMod = $planetSizeData[1];

$gravityData = gravity($gravityMod);
$gravity = $gravityData[0];
$atmoMod = $gravityData[1];

$atmosphereData = atmosphere($atmoMod, $gravity);
$atmosphere = $atmosphereData[0];
$waterMod = $atmosphereData[1];
$pressure = $atmosphereData[2];

$water = water($waterMod);
if($water == ‘land’) {
$watercover = (rand(1,6)+3)*10;
$landcover = 100 – $watercover;
$water = $landcover . ‘% land, ‘ . $watercover . ‘% water’;
}

$climateData = climate();
$climate = $climateData[0];
$precipDL = $climateData[1];

$biosphere = biosphere();

/* DISPLAY */

echo ‘STELLAR SYSTEM ‘ . strtoupper($planetName) . ‘
‘;
$i = 1;
switch(count($stars)) {
case 5 :
echo ‘Pentary System:’;
break;
case 4 :
echo ‘Quadrary System:’;
break;
case 3 :
echo ‘Trinary System:’;
break;
case 2 :
echo ‘Binary System:’;
break;
default :
break;
}
foreach($stars AS $thing) {
if(count($stars) > 1) {
echo ‘
‘ . $i . ‘. ‘;
}
if($thing[‘starColor’] AND $thing[‘starColor’] == ‘Orange’) {
echo ‘An ‘;
} else {
echo ‘A ‘;
}
if($thing[‘starColor’]) {
echo $thing[‘starColor’] . ‘ ‘;
}
echo $thing[‘starType’] . ‘ ‘;
echo $thing[‘starSize’];
if($thing[‘starType’] != ‘Nova’) {
echo ‘the size of Sol’;
}
$i++;
}
echo ‘
‘;
echo ‘with ‘ . $planetCount;
if($planetCount == 1) {
echo ‘ planet in orbit.
‘;
} else {
echo ‘ planets in orbit.
‘;
}
echo ‘
‘ . strtoupper($planetName) . ‘ ‘ . $romanNumber . ‘
‘;
echo ‘TYPE: ‘ . $planetSize . ‘
‘;
echo ‘GRAVITY: ‘ . $gravity . ‘ G
‘;
echo ‘ATMOSPHERE: ‘ . $atmosphere . ‘
‘;
echo ‘PRESSURE: ‘ . $pressure . ‘ Earth atmospheres
‘;
if($planetSize != ‘Gas Giant’) {
echo ‘WATER: ‘ . $water . ‘
‘;
}
echo ‘CLIMATE: ‘ . $climate . ‘
‘;
echo ‘PRECIP DL: ‘ . $precipDL . ‘
‘;
echo ‘BIOSPHERE: ‘ . $biosphere . ‘
‘;

?>


‘;
?>

DayTrippers is a Surreal Science Fiction Reality-Hopping OSR RPG. Now available at RPGnow.com.

Explore More Insights

Software for the Paranoid

Hackers and Trackers and Tags, oh my! Hey, we're not gonna candy-coat it: CyberSpace is a dangerous place. If the hakkas don't get you, the trakkas certainly will. Didn't your momma tell you to always use protection? The links on this page lead to resources and...

read more
An Interview With Game Creator Tod Foley

An Interview With Game Creator Tod Foley

by Gloria Stern Tod Foley is a game designer, consultant and technical director. He has authored many role playing games, including CyberSpace, the RPG. You may know him as the editor of PIX-elation, or as the panelist at the Electronic Cafe or numerous other industry...

read more

The Aleph Current

Archives of the Aleph Email List. May 93 Jun 93 Jul 93 Aug 93 Sep 93 Oct 93 Nov 93 Dec 93 Aleph Docs alephfixion.txt fixionscrytch.txt psychodegradable Fixion

read more